diff --git a/.dockerignore b/.dockerignore index e69de29b..67e81461 100644 --- a/.dockerignore +++ b/.dockerignore @@ -0,0 +1,4 @@ +banner.png +# Test directories - ignore all target and data directories +tests/**/target/ +tests/**/data/ \ No newline at end of file diff --git a/.envrc b/.envrc new file mode 100644 index 00000000..1024d0e6 --- /dev/null +++ b/.envrc @@ -0,0 +1,100 @@ +#!/bin/bash +GO111MODULE=on + +BTSG_ROOT=$(pwd) +export BTSG_ROOT + +KIND_VERSION=0.11.1 +ROOT_DIR=${BTSG_ROOT} + +BTSG_DEVCACHE_BASE=${BTSG_ROOT}/.cache +BTSG_DEVCACHE=${BTSG_DEVCACHE_BASE} +BTSG_DEVCACHE_BIN=${BTSG_DEVCACHE}/bin +BTSG_DEVCACHE_INCLUDE=${BTSG_DEVCACHE}/include +BTSG_DEVCACHE_VERSIONS=${BTSG_DEVCACHE}/versions +BTSG_DEVCACHE_NODE_MODULES=${BTSG_DEVCACHE} +BTSG_DEVCACHE_NODE_BIN=${BTSG_DEVCACHE_NODE_MODULES}/node_modules/.bin +BTSG_RUN=${BTSG_DEVCACHE}/run + +direnv_version_major=$(direnv version | cut -d "." -f1 | tr -d '\n') +direnv_version_minor=$(direnv version | cut -d "." -f2 | tr -d '\n') + +if [[ $direnv_version_major -lt 2 ]] || [[ $direnv_version_major -eq 2 ]] && [[ $direnv_version_minor -lt 32 ]]; then + echo -e "\033[31munsupported direnv version $(direnv version) < 2.32.x" + exit 1 +fi + +if [[ "$SHELL" == "bash" ]]; then + if [ "${BASH_VERSINFO:-0}" -lt 4 ]; then + echo -e "\033[31mthe environment needs BASH 4 or above" >&2 + exit 1 + fi +fi + +if ! has make ; then + echo "make is not installed"; exit 1 +fi + +if ! has unzip ; then + echo "unzip is not installed"; exit 1 +fi + +if ! has wget ; then + echo "wget is not installed"; exit 1 +fi + +if ! has curl ; then + echo "curl is not installed"; exit 1 +fi + +if ! has npm ; then + echo "npm is not installed"; exit 1 +fi + +if ! has jq ; then + echo "jq is not installed"; exit 1 +fi + +if ! has readlink ; then + echo "readlink is not installed"; exit 1 +fi + +if ! has lz4 ; then + echo "lz4 is not installed"; exit 1 +fi + +if [ -z "$GOPATH" ]; then + GOPATH=$(go env GOPATH) + export GOPATH +fi + +dotenv +dotenv_if_exists dev.env + +TOOLS=${BTSG_ROOT}/scripts/release/tools.sh +SEMVER=${BTSG_ROOT}/scripts/release/semver.sh + +GOTOOLCHAIN=$(${TOOLS} gotoolchain) +GOTOOLCHAIN_SEMVER=$(echo "${GOTOOLCHAIN}" | sed 's/go*/v/' | tr -d '\n') + +if [[ "$OSTYPE" == "darwin"* ]]; then + # on MacOS disable deprecation warnings security framework + CGO_CFLAGS=-Wno-deprecated-declarations + + export CGO_CFLAGS +fi + +export SEMVER +export GOTOOLCHAIN +export GOTOOLCHAIN_SEMVER + +PATH_add "$BTSG_DEVCACHE_NODE_BIN" +PATH_add "$BTSG_DEVCACHE_BIN" + +BTSG_DIRENV_SET=1 +BTSG=$BTSG_DEVCACHE_BIN/BTSG + +export BTSG_DIRENV_SET +export BTSG + +make cache \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 00000000..6d679612 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a report to help us squash bugs! +labels: bug +--- + +### What went wrong? + + + +### Steps to reproduce + + + +### Definition of "done" + + \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/enhancement.md b/.github/ISSUE_TEMPLATE/enhancement.md new file mode 100644 index 00000000..8440b501 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/enhancement.md @@ -0,0 +1,25 @@ +--- +name: Enhancement +about: A request for a new feature, or to enhance existing functionality +labels: enhancement +--- + +### Description + + + +### Definition of "done" + + \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE b/.github/PULL_REQUEST_TEMPLATE new file mode 100644 index 00000000..d4216ecd --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE @@ -0,0 +1,18 @@ + + +* [ ] Referenced an issue explaining the need for the change +* [ ] Updated all relevant documentation in docs +* [ ] Updated all code comments where relevant +* [ ] Wrote tests +* [ ] Added entry in `.changelog/` \ No newline at end of file diff --git a/.github/workflows/gitopia-mirror.yml b/.github/workflows/gitopia-mirror.yml new file mode 100644 index 00000000..84185951 --- /dev/null +++ b/.github/workflows/gitopia-mirror.yml @@ -0,0 +1,20 @@ +name: Mirror to Gitopia + +# on: +# push: +# branches: +# - '**' + +# jobs: +# build: +# runs-on: ubuntu-latest + +# steps: +# - uses: actions/checkout@v2 +# with: +# fetch-depth: 0 +# - name: Push to Gitopia mirror +# uses: gitopia/gitopia-mirror-action@v0.4.0 +# with: +# gitopiaWallet: "${{ secrets.GITOPIA_WALLET }}" +# remoteUrl: "gitopia://gitopia1dlpc7ps63kj5v0kn5v8eq9sn2n8v8r5z9jmwff/gitopia" \ No newline at end of file diff --git a/.github/workflows/interchaintest-e2e.yml b/.github/workflows/interchaintest-e2e.yml index faf90c18..f79d6331 100644 --- a/.github/workflows/interchaintest-e2e.yml +++ b/.github/workflows/interchaintest-e2e.yml @@ -14,7 +14,7 @@ permissions: packages: write env: - GO_VERSION: 1.23.0 + GO_VERSION: 1.24.5 TAR_PATH: /tmp/bitsong-docker-image.tar IMAGE_NAME: bitsong-docker-image @@ -27,10 +27,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Go ${{ env.GO_VERSION }} - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version: ${{ env.GO_VERSION }} cache-dependency-path: interchaintest/go.sum @@ -39,7 +39,7 @@ jobs: uses: docker/setup-buildx-action@v3 - name: Build and export - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . tags: bitsong:local @@ -51,28 +51,29 @@ jobs: name: ${{ env.IMAGE_NAME }} path: ${{ env.TAR_PATH }} - e2e-tests: + ict-tests: needs: build-docker runs-on: ubuntu-latest strategy: matrix: # names of `make` commands to run tests test: - - "e2e-basic" - - "e2e-pfm" - # - "e2e-polytone" - # - "e2e-upgrade" + - "ict-basic" + - "ict-pfm" + - "ict-polytone" + - "ict-ibc-hooks" + # - "ict-upgrade" fail-fast: false steps: - name: Set up Go ${{ env.GO_VERSION }} - uses: actions/setup-go@v4 + uses: actions/setup-go@v6 with: go-version: ${{ env.GO_VERSION }} cache-dependency-path: interchaintest/go.sum - name: checkout chain - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Download Tarball Artifact uses: actions/download-artifact@v4 diff --git a/.github/workflows/push-docker-image.yml b/.github/workflows/push-docker-image.yml index d2145583..639321a8 100644 --- a/.github/workflows/push-docker-image.yml +++ b/.github/workflows/push-docker-image.yml @@ -8,11 +8,11 @@ # bitsongofficial/go-bitsong:X # is updated to X.Y.Z # bitsongofficial/go-bitsong:latest # is updated to X.Y.Z # -# bitsongofficial/go-bitsong-e2e:vX.Y.Z # is pushed -# bitsongofficial/go-bitsong-e2e:X.Y.Z # is pushed -# bitsongofficial/go-bitsong-e2e:X.Y # is updated to X.Y.Z -# bitsongofficial/go-bitsong-e2e:X # is updated to X.Y.Z -# bitsongofficial/go-bitsong-e2e:latest # is updated to X.Y.Z +# bitsongofficial/go-bitsong-ict:vX.Y.Z # is pushed +# bitsongofficial/go-bitsong-ict:X.Y.Z # is pushed +# bitsongofficial/go-bitsong-ict:X.Y # is updated to X.Y.Z +# bitsongofficial/go-bitsong-ict:X # is updated to X.Y.Z +# bitsongofficial/go-bitsong-ict:latest # is updated to X.Y.Z # # All the images above have support for linux/amd64 and linux/arm64. @@ -22,7 +22,7 @@ env: DOCKER_REPOSITORY: bitsongofficial/go-bitsong RUNNER_BASE_IMAGE_DISTROLESS: gcr.io/distroless/static-debian12 RUNNER_BASE_IMAGE_NONROOT: gcr.io/distroless/static-debian12:nonroot - RUNNER_BASE_IMAGE_ALPINE: alpine:3.21 + RUNNER_BASE_IMAGE_ALPINE: alpine:3.22 on: release: @@ -37,7 +37,7 @@ jobs: steps: - name: Check out the repo - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up QEMU uses: docker/setup-qemu-action@v3 @@ -65,7 +65,7 @@ jobs: - name: Build and push id: build_push_image - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: file: Dockerfile context: . diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index ff7beaee..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,139 +0,0 @@ -# Special thanks to @RiccardoM (https://github.com/riccardoM) -# https://github.com/desmos-labs/desmos/blob/master/.github/workflows/release.yml - -name: Release -# Release workflow builds the binaries for a release, and then publishes them to a newly created GitHub release. - -on: - push: - # Sequence of patterns matched against refs/tags - tags: - - "v[0-9]+.[0-9]+.[0-9]+" # Push events to matching v*, i.e. v1.0, v20.15.10 - - "v[0-9]+.[0-9]+.[0-9]+-rc*" # Push events to matching v*, i.e. v1.0-rc1, v20.15.10-rc5 - -jobs: - release: - runs-on: ubuntu-latest - steps: - - name: Checkout πŸ›ŽοΈ - uses: actions/checkout@v3 - - - name: Setup Go 🧰 - uses: actions/setup-go@v3 - with: - go-version: 1.23 - - - name: Unshallow - run: git fetch --prune --unshallow --tags --force - - - name: Create release πŸ“œ - uses: goreleaser/goreleaser-action@v3.0.0 - with: - args: release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - build-macos: - name: Build MacOS binary - runs-on: macos-10.15 - steps: - - name: Checkout πŸ›ŽοΈ - uses: actions/checkout@v3 - - - name: Unshallow - run: git fetch --prune --unshallow --tags --force - - - name: Set variables - run: | - echo "VERSION=$(git describe --always | sed 's/^v//')" >> $GITHUB_ENV - - name: Setup Go 🧰 - uses: actions/setup-go@v3 - with: - go-version: 1.23 - - - name: Build the binary 🏭 - run: | - LEDGER_ENABLED=true make build - mv build/bitsongd "build/bitsongd-$VERSION-darwin-amd64" - - name: Upload the artifacts πŸ“€ - uses: actions/upload-artifact@v4 - with: - name: "darwin-amd64" - path: "build/*darwin*amd64*" - - build-linux: - name: Build Linux binaries - runs-on: ubuntu-18.04 - strategy: - matrix: - go-arch: ["amd64", "arm64"] - steps: - - name: Checkout πŸ›ŽοΈ - uses: actions/checkout@v3 - - - name: Fetch tags - run: git fetch --prune --unshallow --tags --force - - - name: Set variables - run: | - echo "VERSION=$(git describe --always | sed 's/^v//')" >> $GITHUB_ENV - - name: Setup Go 🧰 - uses: actions/setup-go@v3 - with: - go-version: 1.23 - - - name: Compute diff πŸ“œ - uses: technote-space/get-diff-action@v6.1.0 - id: git_diff - with: - PATTERNS: | - **/**.go - go.mod - go.sum - - name: Build πŸ”¨ - run: | - GOARCH=${{ matrix.go-arch }} LEDGER_ENABLED=true make build - mv build/bitsongd "build/bitsongd-$VERSION-linux-${{ matrix.go-arch }}" - - name: Upload the linux/amd64 artifact πŸ“€ - uses: actions/upload-artifact@v4 - with: - name: "linux-amd64" - path: "build/*linux*amd64*" - - - name: Upload the linux/arm64 artifact πŸ“€ - uses: actions/upload-artifact@v4 - with: - name: "linux-arm64" - path: "build/*linux*arm64*" - - build-windows: - name: Build Windows binary - runs-on: windows-latest - steps: - - name: Setting up dependencies - run: | - choco install make - - name: Checkout πŸ›ŽοΈ - uses: actions/checkout@v3 - - - name: Fetch tags - run: git fetch --prune --unshallow --tags --force - - - name: Set variables - run: | - Add-Content -Path $env:GITHUB_ENV -Value "VERSION=$(git describe --always | sed 's/^v//')" - - name: Setup Go 🧰 - uses: actions/setup-go@v3 - with: - go-version: 1.23 - - - name: Build the binary 🏭 - run: | - make LEDGER_ENABLED=true build - echo "build/bitsongd-$env:VERSION-$env:COMMIT-windows-amd64.exe" - mv build/bitsongd.exe "build/bitsongd-$env:VERSION-windows-amd64.exe" - - name: Upload the artifacts πŸ“€ - uses: actions/upload-artifact@v4 - with: - name: "windows-amd64" - path: "build/*windows*amd64*" diff --git a/.gitignore b/.gitignore index 208c93b8..40b1c7f8 100644 --- a/.gitignore +++ b/.gitignore @@ -47,9 +47,21 @@ dependency-graph.png contract_tests/* buf-stamp +# Test related data state_export.json +upgradeHandlerDebug.json +go-bitsong +bins +go-bitsong/* +test-keys* +*.json +abstract +.env +target +artifacts +# Proto related github.com* gogoproto* target/ \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 79bddacc..3a196867 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,115 +1,323 @@ - +- add x/fantoken MsgServiceHandler - ([160f17a](https://github.com/bitsongofficial/go-bitsong/commit/160f17a4014769936848f9aebbd3f7685ab4601e)) - hard-nett +- wire in v024 upgradehandler - ([ad31d93](https://github.com/bitsongofficial/go-bitsong/commit/ad31d93cb56adac2caf9b84627d5097e98ac243c)) - hard-nett +- wire 08-wasm & 07-tendermint light clients into cilentKeeper, use pointers for our AppKeepers struct - ([d32f36e](https://github.com/bitsongofficial/go-bitsong/commit/d32f36e9068e10ec752aa6f15a1a2cc88649c4c3)) - hard-nett +- revert bankKeeper pointer for now, improve pointer use throughout app - ([0756c5c](https://github.com/bitsongofficial/go-bitsong/commit/0756c5c45a3ce20abce57be2884d815d97606df8)) - hard-nett +- revert to proper ics4Middleware keeper initialization sequence - ([54feebf](https://github.com/bitsongofficial/go-bitsong/commit/54feebfbf8432417714309dbae472ec92eb9aa74)) - hard-nett +- remove x/cadence - ([62c6b84](https://github.com/bitsongofficial/go-bitsong/commit/62c6b8434cc20c97d6d287c72b385ebdaf0dd982)) - hard-nett -# Changelog -## [v0.20.0] - -## Added -- v020 upgrade handler - -## Fixed -- certain delegators inability to claim rewards after v018 patch - -## [v0.19.0] -### Added -- new ci tests for wasm,packetforwardmiddleware & polytone (ibc-callbacks) -- Introduced a Makefile for managing Docker-related tasks, including commands for building various Docker images. -- Added functionality for validating CosmWasm contracts in a new testing framework. -- Enhanced configuration capabilities for the Bitsong application with additional parameters. -- Introduced commands for verifying slashed delegators and calculating discrepancies in delegator rewards. -- Added a new Makefile for managing a local testnet environment for the Bitsong blockchain. -- Introduced a new script for automating the downloading of Polyone contract. -- Improved docker commands - -### Fixed -- Registered legacy gov msgs -- Register ModuleBasics GrpcGatewayRoutes - -### Removed -- versioning of app go module -- removed randomGenesisAccounts as param on new apps auth module registration - -## [v0.18.x] -### Added -- Interchaintest package support added -- New CI support to build & release docker image -- New CI support to run interchain tests -- New script at `scripts/test_node.sh` that is a basic script to test setting up and starting a node. -### Improvements -- Improved Makefile cli top-level command scripting -- Replaced tendermint with cometbft -- Bumped wasmd to `v0.45.0` -- Bumped Cosmos-SDK to `v0.47.8` -- Bumped IBC-Go to `v7.4.0` -- Bumped Paket-Forward-Middleware to `v7.1.3` -- Reformatted app test suite - -### Depreceated -- remove `x/merkledrop` module - -### State Breaking -- Bumped required minimum Go version to `v1.22` - -## [v0.16.0] -### Bug fixes -- patch for v0.16.0 that fixed Packet Forward Middleware bug. - -## [v0.15.0] - 2024-03-06 -- Updated Cosmos-sdk to v0.45.16 for improved stability and security -- Upgraded ibc-go to v4.4.2 for enhanced interoperability between different blockchain networks -- Replaced Tendermint with CometBFT -- Upgraded Cosmwasm to v0.33.0 for advanced smart contract functionality -- Replaced strangelove-ventures/packet-forward-middleware with cosmos/ibc-apps/middleware/packet-forward-middleware - -## [v0.14.0] - 2023-02-07 -- fix(authz): Add Binary Codec support to MinValCommissionDecorator -- fix(authz): Add MinValCommissionDecorator test - -## [v0.13.0] - 2023-01-23 -- Updated Cosmos-sdk to v0.45.11 for improved stability and security -- Upgraded ibc-go to v3.3.1 for enhanced interoperability between different blockchain networks -- Tendermint upgraded to v0.34.24 for better performance and bug fixes -- Integrated Cosmwasm v0.29.2 for advanced smart contract functionality -- Added new command init-from-state which allows for easy initialization of private validator, p2p, genesis, and application configuration, as well as replacement of exported state. - -## [v0.11.0] -2022-07-01 - -* (fantoken) introduce the [fantoken module](./x/fantoken/spec) -* (merkledrop) introduce the [merkledrop module](./x/merkledrop/spec) -* (app) bump [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) to [v0.45.6](https://github.com/cosmos/cosmos-sdk/tree/v0.45.6) -* (app) bump [ibc](https://github.com/cosmos/ibc-go) to [v3.0.0](https://github.com/cosmos/ibc-go/tree/v3.0.0) -* (app) bump [tendermint](https://github.com/tendermint/tendermint) to [v0.34.19](https://github.com/tendermint/tendermint/tree/v0.34.19) -* (app) bump [packet-forward-middleware](https://github.com/strangelove-ventures/packet-forward-middleware) to [v2.1.1](github.com/strangelove-ventures/packet-forward-middleware/tree/v2.1.1) -* (app) update swagger to reflect new modules -* (app) small fixs Makefile \ No newline at end of file +--- + +## [0.23.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.22.0..v0.23.0) - 2025-06-23 + +### βš™οΈ Miscellaneous + +- v023 unit tests - ([915094e](https://github.com/bitsongofficial/go-bitsong/commit/915094e03aed4402a9d81ea95418d8e06885e031)) - hard-nett +- - resolve v018-v021 issues (#278) - ([cf7a58c](https://github.com/bitsongofficial/go-bitsong/commit/cf7a58c6f3c274e9153f0f907ebfa8b88e58cf97)) - Hard-Nett +- go mod tidy - ([028b79e](https://github.com/bitsongofficial/go-bitsong/commit/028b79e1e8fee997b67cdc63157e0d2db8f61c17)) - hard-nett +- fantoken basic tests - ([48fbae7](https://github.com/bitsongofficial/go-bitsong/commit/48fbae762d63209ddaaf8bb23ff25da004984963)) - hard-nett +- fix test addr - ([03379ea](https://github.com/bitsongofficial/go-bitsong/commit/03379ea25165c98a391838f178ca6350d5802528)) - hard-nett +- go mod tidy - ([6bcd4ec](https://github.com/bitsongofficial/go-bitsong/commit/6bcd4ec9f49c9cca49dce7de5fe83f0c34c3ba03)) - hard-nett +- set resolveDenom to false, remove v022 custom patch from init-from-mainnet - ([a899c13](https://github.com/bitsongofficial/go-bitsong/commit/a899c1388cd02f473e050accc07051f8880a7563)) - hard-nett + +### πŸ› Bug fixes + +- add cosmos.msg.v1.service to protos - ([24820a3](https://github.com/bitsongofficial/go-bitsong/commit/24820a3ebdad599503095ebf45ff1479bc5bebe7)) - hard-nett +- remove external community pool support - ([0645ca9](https://github.com/bitsongofficial/go-bitsong/commit/0645ca9307a172b864fecbf66d51b1f824aefc64)) - hard-nett +- set feepool to reflect updated balance - ([831d0ee](https://github.com/bitsongofficial/go-bitsong/commit/831d0ee582d651e1dbc27715c740e38ad01225bc)) - hard-nett + +--- + +## [0.22.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.21.6..v0.22.0) - 2025-05-18 + +### βš™οΈ Miscellaneous + +- - resolve v018-v021 issues (#278) - ([cf7a58c](https://github.com/bitsongofficial/go-bitsong/commit/cf7a58c6f3c274e9153f0f907ebfa8b88e58cf97)) - Hard-Nett + +--- + +## [0.21.6](https://github.com/bitsongofficial/go-bitsong/compare/v0.21.5..v0.21.6) - 2025-03-13 + +### βš™οΈ Miscellaneous + +- upgrade ibc to 8.7.0 (#281) - ([fbdc845](https://github.com/bitsongofficial/go-bitsong/commit/fbdc84594b0a65d2bbe1da4381f71932efa7efed)) - Angelo RC + +--- + +## [0.20.2](https://github.com/bitsongofficial/go-bitsong/compare/v0.20.1..v0.20.2) - 2024-12-27 + +### βš™οΈ Miscellaneous + +- V0.20.2 (#252) - ([e49371a](https://github.com/bitsongofficial/go-bitsong/commit/e49371a6876f650fc908ee376337606b2f57f3b5)) - Hard-Nett + +--- + +## [0.18.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.17.0..v0.18.0) - 2024-11-27 + +### βš™οΈ Miscellaneous + +- cosmos-sdk@v0.47, wasmd@v0.46, ibc-go@v7, (#235) - ([50b4082](https://github.com/bitsongofficial/go-bitsong/commit/50b4082736a68cdde098cf36edd7c7a70d9fdae6)) - Hard-Nett + +--- + +## [0.17.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.16.0..v0.17.0) - 2024-08-21 + +### πŸ› Bug fixes + +- Remove IBCFeeKeeper and replace with ChannelKeeper in app.go (#234) - ([6caaf5f](https://github.com/bitsongofficial/go-bitsong/commit/6caaf5fdba8e7ce41e8a9d44654c141f85c9c38f)) - Angelo RC + +--- + +## [0.16.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.15.0..v0.16.0) - 2024-08-09 + +### βš™οΈ Miscellaneous + +- pfm v4 (#232) - ([cf24787](https://github.com/bitsongofficial/go-bitsong/commit/cf247879efb67393a5e230244146456ae5638238)) - Angelo RC +- add node service handler (#233) - ([608415a](https://github.com/bitsongofficial/go-bitsong/commit/608415adfd0d5fedb081c369268461541b3fe4e4)) - Sergey + +--- + +## [0.14.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.14.0-alpha.1..v0.14.0) - 2023-02-07 + +### βš™οΈ Miscellaneous + +- add v014 upgrade handler - ([e5847ac](https://github.com/bitsongofficial/go-bitsong/commit/e5847ac0b4f0319811d62140f4e438d33163ad0d)) - angelorc + +### πŸ› Bug fixes + +- **(authz)** Add MinValCommissionDecorator test - ([62fe771](https://github.com/bitsongofficial/go-bitsong/commit/62fe771e0ef98c2849d75495d9fb6b2df52d2489)) - angelorc +- **(authz)** Add MinValCommissionDecorator test - ([a6b3d76](https://github.com/bitsongofficial/go-bitsong/commit/a6b3d76bd00650dae0fc6c9323723ce4ffa547a5)) - angelorc + +--- + +## [0.14.0-alpha.1](https://github.com/bitsongofficial/go-bitsong/compare/v0.13.0..v0.14.0-alpha.1) - 2023-02-04 + +### πŸ› Bug fixes + +- **(authz)** Add Binary Codec support to MinValCommissionDecorator - ([8b3cc2e](https://github.com/bitsongofficial/go-bitsong/commit/8b3cc2eeb0ef48624ebf4517c6f6dce285798f5a)) - angelorc + +--- + +## [0.13.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.12.1.1..v0.13.0) - 2023-01-24 + +### πŸ› Bug fixes + +- go.sum - ([ecf29a7](https://github.com/bitsongofficial/go-bitsong/commit/ecf29a742bebfd9c037a9aeadb4e4ac85d4bcd4b)) - angelorc + +--- + +## [0.12.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.11.0..v0.12.0) - 2022-10-14 + +### βš™οΈ Miscellaneous + +- fix incorrect license (#148) - ([604e886](https://github.com/bitsongofficial/go-bitsong/commit/604e886d8cc31df68d5c5abdd39a0836c2a3c420)) - Christophe Camel +- bump cosmos-sdk and go - ([66608bf](https://github.com/bitsongofficial/go-bitsong/commit/66608bfaa0ed8bed4c08827b3d2dee5cc437bf3c)) - angelorc + +### πŸ› Bug fixes + +- **(docker)** fix and push the new docker images - ([a7d1a18](https://github.com/bitsongofficial/go-bitsong/commit/a7d1a1893b8050c1679889cd507f59a56c197b51)) - angelorc + +--- + +## [0.11.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.11.0-rc0..v0.11.0) - 2022-07-01 + +### βš™οΈ Miscellaneous + +- **(app)** default fee for merkledrop and fantoken is 1_000_000_000ubtsg - ([f92cb0e](https://github.com/bitsongofficial/go-bitsong/commit/f92cb0eced47db4bc9fdba21a16a2e1a1b9ebf85)) - angelorc + +--- + +## [0.11.0-rc0](https://github.com/bitsongofficial/go-bitsong/compare/v0.10.0..v0.11.0-rc0) - 2022-07-01 + +### βš™οΈ Miscellaneous + +- **(app)** change golang version to gorelease - ([820b9d9](https://github.com/bitsongofficial/go-bitsong/commit/820b9d95c0cb87d2f39ade62a667d45ee5d3cc38)) - angelorc + +--- + +## [0.10.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.8.0..v0.10.0) - 2022-01-31 + +### βš™οΈ Miscellaneous + +- change module minter for prop 6 - ([f84631f](https://github.com/bitsongofficial/go-bitsong/commit/f84631fd0721084772c1b4c77063af2c318bf3e0)) - angelorc +- change module minter for prop 6 - ([290f06c](https://github.com/bitsongofficial/go-bitsong/commit/290f06c9562b640dd4419f4170ee876b6149773b)) - angelorc +- ante handle val min commission - ([e4ffcf3](https://github.com/bitsongofficial/go-bitsong/commit/e4ffcf35e3e72b3257430a33a9401fc512db77a4)) - angelorc + +--- + +## [0.8.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.8.0-rc1..v0.8.0) - 2021-10-05 + +### βš™οΈ Miscellaneous + +- add consensus_params.evidence.max_bytes in migrate genesis cmd - ([df4b8e4](https://github.com/bitsongofficial/go-bitsong/commit/df4b8e4f9ad8b43371c24d8e1a7746e9e1c20f12)) - Angelo +- swagger - ([995a19f](https://github.com/bitsongofficial/go-bitsong/commit/995a19f33d39d7c4156569215e2f6b9e057589ec)) - Angelo +- workflow - ([860f893](https://github.com/bitsongofficial/go-bitsong/commit/860f893138fffdd5c8812299a45c2b4d58a8bf14)) - Angelo + +--- + +## [0.8.0-dev](https://github.com/bitsongofficial/go-bitsong/compare/v0.7.0-rc1..v0.8.0-dev) - 2021-06-23 + +### βš™οΈ Miscellaneous + +- add fantoken module - ([617af5e](https://github.com/bitsongofficial/go-bitsong/commit/617af5e374c27187f612d8c505d9566bca103b05)) - sarawut +- app name, tx cli, package path - ([a1f43ff](https://github.com/bitsongofficial/go-bitsong/commit/a1f43ffdfbcc1093d793a5ef1dccd2528765d2df)) - Angelo +- genesis overwrite - ([4a343ac](https://github.com/bitsongofficial/go-bitsong/commit/4a343ac0aa5543987a164f5c18b5dbe424181be1)) - sarawut +- fix mint fantoken amount #56 - ([555b7db](https://github.com/bitsongofficial/go-bitsong/commit/555b7dbb73ecc10347b8241d02b08901867fe158)) - sarawut + +--- + +## [0.7.0-rc1](https://github.com/bitsongofficial/go-bitsong/compare/v0.6.0-beta1..v0.7.0-rc1) - 2021-03-20 + +### βš™οΈ Miscellaneous + +- default crisis GenesisState - ([276f739](https://github.com/bitsongofficial/go-bitsong/commit/276f739d2193d031a32e418723b1f136fd2cd112)) - Angelo + +--- + +## [0.5.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.4.0..v0.5.0) - 2020-08-06 + +### βš™οΈ Miscellaneous + +- query shares - ([ca226c0](https://github.com/bitsongofficial/go-bitsong/commit/ca226c0ca156754432a98d9368c06e3ec5fa43a3)) - Angelo + +### πŸš€ New features + +- add/remove share to track - ([00c29e3](https://github.com/bitsongofficial/go-bitsong/commit/00c29e33c36a2a8b531366d8cf3452ff43fefe55)) - Angelo + +--- + +## [0.4.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.3.1..v0.4.0) - 2020-08-04 + +### βš™οΈ Miscellaneous + +- mint & burn to content module - ([00f43cc](https://github.com/bitsongofficial/go-bitsong/commit/00f43cc848ee8d840438e3a856c080889e1e3c95)) - Angelo +- content module (add/stream/download) - ([d998273](https://github.com/bitsongofficial/go-bitsong/commit/d998273587ec7156790f749d136692f8bb5fadc4)) - Angelo +- content module (add/stream/download) - ([4f376f7](https://github.com/bitsongofficial/go-bitsong/commit/4f376f786ce312b2b01cd40b912599a64bef7576)) - Angelo +- content module add rights holders - ([517f544](https://github.com/bitsongofficial/go-bitsong/commit/517f5442cd128032e1f739a982553e67649dd38a)) - Angelo +- integration player module - ([59f9e24](https://github.com/bitsongofficial/go-bitsong/commit/59f9e24d26e4f4321fa5720bb2f5cbe65f689fe0)) - Angelo +- tokenize rights - ([3112161](https://github.com/bitsongofficial/go-bitsong/commit/31121617f7ba50d701d0298af84006519b05de43)) - Angelo + +--- + +## [0.3.0-dev-1](https://github.com/bitsongofficial/go-bitsong/compare/v0.2.1..v0.3.0-dev-1) - 2019-12-05 + +### βš™οΈ Miscellaneous + +- Add song pool parameter - ([103b5f3](https://github.com/bitsongofficial/go-bitsong/commit/103b5f34761fe505fe289034a890dbfdd0d0ff94)) - Angelo +- Renamed SongsPool to Rewards - ([987bff4](https://github.com/bitsongofficial/go-bitsong/commit/987bff4fea52183e1167d58bb43f53b91af24cbf)) - Angelo +- Added Play Struct - ([158ed63](https://github.com/bitsongofficial/go-bitsong/commit/158ed635f2bac1e1ad7c35a7f308900bc2b0bc39)) - Angelo +- Add get and set Play to keeper - ([d8f39fb](https://github.com/bitsongofficial/go-bitsong/commit/d8f39fba6b172da6a792955e629fa3bf189620fa)) - Angelo +- Refactor, added initial tests - ([b6730d2](https://github.com/bitsongofficial/go-bitsong/commit/b6730d28a35ad3c9485aa46fbffa35a7e87330ec)) - Angelo +- Continuos implementations and tests - ([706c96b](https://github.com/bitsongofficial/go-bitsong/commit/706c96bc8f0bcb0377324cbc7744f48f09e7eb94)) - Angelo +- Add GetUserPower to Keeper - ([4fe9092](https://github.com/bitsongofficial/go-bitsong/commit/4fe90928b31c51228bef441e66602b41d8050f79)) - Angelo +- Breaking changes! - ([65cc4bc](https://github.com/bitsongofficial/go-bitsong/commit/65cc4bc729302a90b8ae19671d8f0ae8b2c2d150)) - Angelo +- fix genesis params - ([886df73](https://github.com/bitsongofficial/go-bitsong/commit/886df733217f1b398824bedb2d26cf63b3f4920a)) - Angelo +- Added play get/set to keeper - ([ac3c8f4](https://github.com/bitsongofficial/go-bitsong/commit/ac3c8f47c75f6571e5fde15e6d795e47d376c0a0)) - Angelo +- added SavePlay to keeper - ([9523519](https://github.com/bitsongofficial/go-bitsong/commit/952351972a2107a78a5ff4f91c9e43a89d517894)) - Angelo +- added tests - ([0b1a4e9](https://github.com/bitsongofficial/go-bitsong/commit/0b1a4e9ad3abe8f1a431ae457ef49416acb5549d)) - Angelo +- GetAllPlays keeper - ([44debf0](https://github.com/bitsongofficial/go-bitsong/commit/44debf0f6a77eb732824f379af29e606d5e60b55)) - Angelo +- Fix cli tx PublishTrack - ([a4a5f41](https://github.com/bitsongofficial/go-bitsong/commit/a4a5f419a89a7011c58fe19453521bae70dbfb49)) - Angelo +- Removed duplicated events - ([cd0e96b](https://github.com/bitsongofficial/go-bitsong/commit/cd0e96b6c7fad0f8fedacede90c076f4668b404c)) - Angelo +- Fix cli tx PlayTrack - ([4b4cb49](https://github.com/bitsongofficial/go-bitsong/commit/4b4cb49e95c8f8d74199fdde7dd1d416d15ecf70)) - Angelo +- Renamed SavePlay to PlayTrack - ([feb85f6](https://github.com/bitsongofficial/go-bitsong/commit/feb85f64eda47f662976abe87125ee55a95fcce9)) - Angelo +- Extended Cosmos-SDK Distribution Module - ([61719c0](https://github.com/bitsongofficial/go-bitsong/commit/61719c0a4818641ee1c0d5a7cff6aa58e9c3e0ef)) - Angelo +- Play Pool Rewards!!! - ([e2a9c77](https://github.com/bitsongofficial/go-bitsong/commit/e2a9c77745b097711db5c95a0e96f9a5d9723b61)) - Angelo +- Initial abci implementation - ([0a6c8fa](https://github.com/bitsongofficial/go-bitsong/commit/0a6c8fac9a4aa40e63897db3802446d01643fe72)) - Angelo +- ABCI initial logic to pay rewards - ([c3760e6](https://github.com/bitsongofficial/go-bitsong/commit/c3760e61ce329ce68ce9988903a5986652d8c28e)) - Angelo +- Tests improvements - ([d92aef7](https://github.com/bitsongofficial/go-bitsong/commit/d92aef75b289a3df022070d1fe39ac7951819ae7)) - Angelo +- test abci reward - ([62a2480](https://github.com/bitsongofficial/go-bitsong/commit/62a2480ca7d48f6539288a12967ef5aa9b80a64e)) - Angelo +- Continuous abci implementation - ([f636c01](https://github.com/bitsongofficial/go-bitsong/commit/f636c015f14bbf20bbfbbb14d0659f4caa87cfa2)) - Angelo +- AllocateTokens completed (need tests) - ([900a457](https://github.com/bitsongofficial/go-bitsong/commit/900a457b5cebd8bf0ce559c05f83b0500f48342e)) - Angelo +- abci (pay rewards) wip - ([220913f](https://github.com/bitsongofficial/go-bitsong/commit/220913ff3e967dfe47658085779cd7b115d48f4f)) - Angelo +- Continous implementations - ([170b6fd](https://github.com/bitsongofficial/go-bitsong/commit/170b6fda6be9c23b21078fc3f803f76e56e6dbdf)) - Angelo +- fix pay fee - ([d79ef57](https://github.com/bitsongofficial/go-bitsong/commit/d79ef57488cf9d5614c2259289905abebd99c670)) - Angelo + +--- + +## [0.1.0](https://github.com/bitsongofficial/go-bitsong/compare/v0.0.2..v0.1.0) - 2019-07-10 + +### βš™οΈ Miscellaneous + +- bitsong-testnet-1 - ([bd6d3ec](https://github.com/bitsongofficial/go-bitsong/commit/bd6d3eca2a4ec453e07fd1ff5370d4e34022dd2b)) - Angelo + +### πŸš€ New features + +- gentx for alessiotreglia - ([2080ee6](https://github.com/bitsongofficial/go-bitsong/commit/2080ee6389c4ef68364807f6942170acd04ec2e3)) - Alessio Treglia +- gentx for validator-center - ([e8a0e61](https://github.com/bitsongofficial/go-bitsong/commit/e8a0e613bdc0ca4b20ef20651b555bb3371a267e)) - zartus2019 +- gentx for ManaComm - ([03b733c](https://github.com/bitsongofficial/go-bitsong/commit/03b733cb9c24d96ed916d597c5474ca5f737747b)) - ManaComm +- gentx for BitGlad - ([9269406](https://github.com/bitsongofficial/go-bitsong/commit/92694069aec55cb3365746ee4a8c1cc55e1e4126)) - BitGlad1 +- gentx for BitAngel - ([3ead0e0](https://github.com/bitsongofficial/go-bitsong/commit/3ead0e0d7e3120bd55e90b74b940f83fa5730086)) - root +- gentx for - ([c44dde6](https://github.com/bitsongofficial/go-bitsong/commit/c44dde66793a084fab1c94c04c157051daa8ac4a)) - Ubuntu +- gentx for mikmik - ([9d36be1](https://github.com/bitsongofficial/go-bitsong/commit/9d36be1884b0df771e8ec7985d4909d2ada86045)) - Alessio Treglia +- gentx for ondin - ([ae604de](https://github.com/bitsongofficial/go-bitsong/commit/ae604de755d4c68485d5154798d51ce3cf592629)) - Ondin777 +- gentx for darkeyesz - ([160ce90](https://github.com/bitsongofficial/go-bitsong/commit/160ce901cefd7ea78a83129f6b749b711228a9aa)) - root +- gentx for anamix - ([a6a1d99](https://github.com/bitsongofficial/go-bitsong/commit/a6a1d992af0ca89032e48e2858198f4f89a42163)) - dbpatty +- gentx for redpenguin - ([9b0df8f](https://github.com/bitsongofficial/go-bitsong/commit/9b0df8f8a594c91a5f40ba443dba72ceaa58e18f)) - redpenguin-validator +- gentx for UbikCapital - ([a96a1d8](https://github.com/bitsongofficial/go-bitsong/commit/a96a1d8a3bb2a6350c6a13eae076a69da69660b8)) - root +- gentx for Simply VC - ([29625b2](https://github.com/bitsongofficial/go-bitsong/commit/29625b2b7151213c35ea4329877b3d59b12e2272)) - Simply VC +- gentx for genesislab - ([dab8b0b](https://github.com/bitsongofficial/go-bitsong/commit/dab8b0bd15c08c2076ceb07af842368fb1315dcd)) - i7495 +- gentx for lxgn - ([7b5546c](https://github.com/bitsongofficial/go-bitsong/commit/7b5546ccc361792be7c4b8abdfced975ec240292)) - root +- gentx for bitcat - ([6f8b053](https://github.com/bitsongofficial/go-bitsong/commit/6f8b0530d7844a354fc6866c900a5bbb397d2473)) - Bit Cat +- gentx for GioStake - ([c4530fb](https://github.com/bitsongofficial/go-bitsong/commit/c4530fb0cf0af1b383431dbf258c3e5925020a27)) - ilgio +- gentx for gota - ([4a9d3a6](https://github.com/bitsongofficial/go-bitsong/commit/4a9d3a6c94a56484077093f1bde9389c7105f662)) - Ubuntu +- gentx for funky-validator - ([5256222](https://github.com/bitsongofficial/go-bitsong/commit/52562229544477d9e7f469d98b6bec1cce0743f1)) - zenfunkpanda +- gentx for zx - ([06d5157](https://github.com/bitsongofficial/go-bitsong/commit/06d5157958214c9e7c188e85e81b8f3555e43778)) - Juan Leni +- gentx for sebytza05 - ([9b45c45](https://github.com/bitsongofficial/go-bitsong/commit/9b45c4540f932111fea12464b168b44b0af62dd6)) - dirmansebastian +- gentx for commercio.network - ([a4b4e33](https://github.com/bitsongofficial/go-bitsong/commit/a4b4e33348bdc59b03db55c1e693e89cfc8c0736)) - marcotradenet +- gentx for mintonium - ([90d6362](https://github.com/bitsongofficial/go-bitsong/commit/90d6362b3637b881a095df8ab23989d5aab6c649)) - jaygaga +- gentx for forbole - ([4f27aac](https://github.com/bitsongofficial/go-bitsong/commit/4f27aac20e81176bf7cc63ca54e4ec2a74c07a1e)) - Kwun Yeung +- gentx for POS-Bakerz - ([3e7b06b](https://github.com/bitsongofficial/go-bitsong/commit/3e7b06b64f18c2ccc9cea06f1f129906a28c8292)) - root + +--- + +## [0.0.1] - 2019-07-02 + +### βš™οΈ Miscellaneous + +- readme, license - ([e6e4c24](https://github.com/bitsongofficial/go-bitsong/commit/e6e4c24800244da9494cab86f2634d827719174e)) - Angelo +- Song module - ([69efcb1](https://github.com/bitsongofficial/go-bitsong/commit/69efcb1515927e1ea6b85012cb72c1f25c30af5f)) - Angelo +- Song module - ([b35ab6e](https://github.com/bitsongofficial/go-bitsong/commit/b35ab6e3c69ff7c072134a04ad068704b3eee836)) - Angelo +- Song module - ([080a1b5](https://github.com/bitsongofficial/go-bitsong/commit/080a1b5bbc7ec157ffcccdd422e3b73255ab910a)) - Angelo +- Song module - ([f5831e7](https://github.com/bitsongofficial/go-bitsong/commit/f5831e7d4b7c8ffb78537c9128749e7c021f6b71)) - Angelo +- added Content, TotalReward. RedistribuitionSplitRate - ([0da2c84](https://github.com/bitsongofficial/go-bitsong/commit/0da2c8435784eefab81429ee20701580c583c46a)) - Angelo +- minor fix - ([7aeb263](https://github.com/bitsongofficial/go-bitsong/commit/7aeb2637e0615c34a12fe7168482811d7b77f62a)) - Angelo +- WIP - ([53edb13](https://github.com/bitsongofficial/go-bitsong/commit/53edb131442eaa9914f07797d7d285b09a93f9ca)) - Angelo +- initial implementation - ([5343eb0](https://github.com/bitsongofficial/go-bitsong/commit/5343eb0a8386f91e66b92789b7f8f529fecc8ab5)) - Angelo +- command line - ([ef96c3d](https://github.com/bitsongofficial/go-bitsong/commit/ef96c3df036128bbb82b6dd19fb2622d23f081ff)) - Angelo + +### πŸš€ New features + +- init command - ([a4872fa](https://github.com/bitsongofficial/go-bitsong/commit/a4872fa9671c1d31178cec393a96329f7c30e439)) - Angelo + + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..32f4228e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# Contributing +## Decision Making +## Issues +## Pull Requests +## Forking +## Changelog + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 8274b757..1579d98c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # docker build . -t bitsongofficial/go-bitsong:latest # docker run --rm -it bitsongofficial/go-bitsong:latest /bin/sh -FROM golang:1.23-alpine AS go-builder +FROM golang:1.24-alpine AS go-builder # this comes from standard alpine nightly file # https://github.com/rust-lang/docker-rust-nightly/blob/master/alpine3.12/Dockerfile @@ -19,7 +19,7 @@ WORKDIR /code ADD go.mod go.sum ./ # Cosmwasm - Download correct libwasmvm version -RUN ARCH=$(uname -m) && WASMVM_VERSION=$(go list -m github.com/CosmWasm/wasmvm/v2 | sed 's/.* //') && \ +RUN ARCH=$(uname -m) && WASMVM_VERSION=$(go list -m github.com/CosmWasm/wasmvm/v3 | sed 's/.* //') && \ wget https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/libwasmvm_muslc.$ARCH.a \ -O /lib/libwasmvm_muslc.$ARCH.a && \ # verify checksum diff --git a/Makefile b/Makefile index f8e8a8d5..92436532 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,10 @@ #!/usr/bin/make -f -include contrib/devtools/Makefile +include scripts/makefiles/devtools.mk include scripts/makefiles/build.mk +include scripts/makefiles/bsh.mk include scripts/makefiles/docker.mk -include scripts/makefiles/e2e.mk +include scripts/makefiles/ict.mk include scripts/makefiles/format.mk include scripts/makefiles/hl.mk include scripts/makefiles/localnet.mk @@ -19,7 +20,7 @@ help: @echo "" @echo " make build Build Bitsong node binary" @echo " make docker Show available docker related commands" - @echo " make e2e Show available e2e commands" + @echo " make ict Show available ict commands" @echo " make format Show available formatting commands" @echo " make hl Show available docker commands (via Strangelove's Heighliner Tooling)" @echo " make install Install Bitsong node binary" diff --git a/README.md b/README.md index f1e94c8e..cecc5ead 100644 --- a/README.md +++ b/README.md @@ -6,18 +6,46 @@ ## What is BitSong? -BitSong is a multifunctional blockchain-based ecosystem built to empower the music industry. It unites artists, fans, distributors in an environment where music, merchandise, and fan loyalty are assets of value. BitSong’s decentralized ecosystem of services providers the global music community with a trustless marketplace for music streaming, Fan Tokens, and NFTs, powered by the BTSG token. - -## Brief History of BitSong - -BitSong was conceived in 2018 by developer and entrepreneur Angelo Recca. Angelo realized that while the digitalization of music has brought many benefits to the industry, it’s also created a new set of problems around the ownership of music and attribution of royalties. He joined forces with Iulian Anghelin and BitSong was born. -The initial intention was for BitSong to become an Ethereum-based application where fans could stream music and artists could receive royalties directly. However, after discovering Cosmos and its ambition to become the β€œInternet of Blockchains,” Angelo and Iulian immediately recognized the full potential of becoming part of a multi-chain environment. -After launching the main BitSong blockchain in August 2020, the bitsong-2b mainnet went live on October 21, 2021. Featuring Fan Tokens, NFTs, and music streaming platform, all underpinned by secure, robust, battle-tested blockchain technology, the launch of BitSong marks a turning point in the ongoing development of the music industry. +BitSong is a multifunctional blockchain-based ecosystem built to disrupt the music industry. It unites artists, fans, distributors in an environment where music, merchandise, and fan loyalty are assets of value. BitSong’s decentralized ecosystem of services providers the global music community with a trustless marketplace for music streaming, Fan Tokens, and NFTs, powered by the BTSG token. _NOTE: This is alpha software. Please contact us if you aim to run it in production._ **Note**: Requires [Go 1.23.x+](https://golang.org/dl/) +### Developer CLI + +```sh +# display a list of various developer tooling +make help +``` + +## Testing +## Unit Tests +```sh +go test ./... +``` +## Integration Tests +```sh +# todo: provide examples for running integration tests +``` + +## E2E Tests +```sh +# a. build fresh docker image +make docker-build +# b. run default ict test +make ict-basic +# run `make ict-help` to view current implemented ict-tests +``` + +## Release +These are used exclusively when generating the [pre-compiled release images.](https://github.com/bitsongofficial/go-bitsong/releases) +```sh +# a. builds reproducible instances of the release +make build-reproducible +# b. generates sha256sum hashes for compiled instances +make build-generate-tar-and-checksum +``` # Install BitSong Blockchain There are many ways you can install BitSong Blockchain Testnet node on your machine. @@ -62,13 +90,13 @@ bitsongd init MyValidator --chain-id bitsong-localnet # Copy the `Address` output here and save it for later use # [optional] add "--ledger" at the end to use a Ledger Nano S -bitsongd keys add jack +bitsongd keys add lauryn # Add both accounts, with coins to the genesis file -bitsongd add-genesis-account jack 100000000000ubtsg --keyring-backend test +bitsongd add-genesis-account mary 100000000000ubtsg --keyring-backend test # Generate the transaction that creates your validator -bitsongd gentx jack 10000000ubtsg --keyring-backend test +bitsongd gentx gloria 10000000ubtsg --keyring-backend test # Add the generated bonding transaction to the genesis file bitsongd collect-gentxs @@ -112,3 +140,4 @@ According to SemVer, anything in the public API can change at any time before ve To provide some stability to BitSong users in these 0.X.X days, the MINOR version is used to signal breaking changes across a subset of the total public API. This subset includes all interfaces exposed to other processes, but does not include the in-process Go APIs. + diff --git a/api/bitsong/fantoken/v1beta1/events.pulsar.go b/api/bitsong/fantoken/v1beta1/events.pulsar.go new file mode 100644 index 00000000..34dda7fc --- /dev/null +++ b/api/bitsong/fantoken/v1beta1/events.pulsar.go @@ -0,0 +1,3846 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package fantokenv1beta1 + +import ( + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_EventIssue protoreflect.MessageDescriptor + fd_EventIssue_denom protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_events_proto_init() + md_EventIssue = File_bitsong_fantoken_v1beta1_events_proto.Messages().ByName("EventIssue") + fd_EventIssue_denom = md_EventIssue.Fields().ByName("denom") +} + +var _ protoreflect.Message = (*fastReflection_EventIssue)(nil) + +type fastReflection_EventIssue EventIssue + +func (x *EventIssue) ProtoReflect() protoreflect.Message { + return (*fastReflection_EventIssue)(x) +} + +func (x *EventIssue) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_EventIssue_messageType fastReflection_EventIssue_messageType +var _ protoreflect.MessageType = fastReflection_EventIssue_messageType{} + +type fastReflection_EventIssue_messageType struct{} + +func (x fastReflection_EventIssue_messageType) Zero() protoreflect.Message { + return (*fastReflection_EventIssue)(nil) +} +func (x fastReflection_EventIssue_messageType) New() protoreflect.Message { + return new(fastReflection_EventIssue) +} +func (x fastReflection_EventIssue_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_EventIssue +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_EventIssue) Descriptor() protoreflect.MessageDescriptor { + return md_EventIssue +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_EventIssue) Type() protoreflect.MessageType { + return _fastReflection_EventIssue_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_EventIssue) New() protoreflect.Message { + return new(fastReflection_EventIssue) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_EventIssue) Interface() protoreflect.ProtoMessage { + return (*EventIssue)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_EventIssue) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_EventIssue_denom, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_EventIssue) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventIssue.denom": + return x.Denom != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventIssue")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventIssue does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventIssue) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventIssue.denom": + x.Denom = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventIssue")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventIssue does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_EventIssue) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.EventIssue.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventIssue")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventIssue does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventIssue) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventIssue.denom": + x.Denom = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventIssue")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventIssue does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventIssue) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventIssue.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.EventIssue is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventIssue")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventIssue does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_EventIssue) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventIssue.denom": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventIssue")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventIssue does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_EventIssue) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.EventIssue", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_EventIssue) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventIssue) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_EventIssue) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_EventIssue) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*EventIssue) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*EventIssue) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*EventIssue) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventIssue: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventIssue: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_EventDisableMint protoreflect.MessageDescriptor + fd_EventDisableMint_denom protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_events_proto_init() + md_EventDisableMint = File_bitsong_fantoken_v1beta1_events_proto.Messages().ByName("EventDisableMint") + fd_EventDisableMint_denom = md_EventDisableMint.Fields().ByName("denom") +} + +var _ protoreflect.Message = (*fastReflection_EventDisableMint)(nil) + +type fastReflection_EventDisableMint EventDisableMint + +func (x *EventDisableMint) ProtoReflect() protoreflect.Message { + return (*fastReflection_EventDisableMint)(x) +} + +func (x *EventDisableMint) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_EventDisableMint_messageType fastReflection_EventDisableMint_messageType +var _ protoreflect.MessageType = fastReflection_EventDisableMint_messageType{} + +type fastReflection_EventDisableMint_messageType struct{} + +func (x fastReflection_EventDisableMint_messageType) Zero() protoreflect.Message { + return (*fastReflection_EventDisableMint)(nil) +} +func (x fastReflection_EventDisableMint_messageType) New() protoreflect.Message { + return new(fastReflection_EventDisableMint) +} +func (x fastReflection_EventDisableMint_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_EventDisableMint +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_EventDisableMint) Descriptor() protoreflect.MessageDescriptor { + return md_EventDisableMint +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_EventDisableMint) Type() protoreflect.MessageType { + return _fastReflection_EventDisableMint_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_EventDisableMint) New() protoreflect.Message { + return new(fastReflection_EventDisableMint) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_EventDisableMint) Interface() protoreflect.ProtoMessage { + return (*EventDisableMint)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_EventDisableMint) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_EventDisableMint_denom, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_EventDisableMint) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventDisableMint.denom": + return x.Denom != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventDisableMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventDisableMint does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventDisableMint) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventDisableMint.denom": + x.Denom = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventDisableMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventDisableMint does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_EventDisableMint) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.EventDisableMint.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventDisableMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventDisableMint does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventDisableMint) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventDisableMint.denom": + x.Denom = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventDisableMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventDisableMint does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventDisableMint) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventDisableMint.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.EventDisableMint is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventDisableMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventDisableMint does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_EventDisableMint) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventDisableMint.denom": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventDisableMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventDisableMint does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_EventDisableMint) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.EventDisableMint", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_EventDisableMint) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventDisableMint) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_EventDisableMint) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_EventDisableMint) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*EventDisableMint) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*EventDisableMint) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*EventDisableMint) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventDisableMint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventDisableMint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_EventMint protoreflect.MessageDescriptor + fd_EventMint_recipient protoreflect.FieldDescriptor + fd_EventMint_coin protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_events_proto_init() + md_EventMint = File_bitsong_fantoken_v1beta1_events_proto.Messages().ByName("EventMint") + fd_EventMint_recipient = md_EventMint.Fields().ByName("recipient") + fd_EventMint_coin = md_EventMint.Fields().ByName("coin") +} + +var _ protoreflect.Message = (*fastReflection_EventMint)(nil) + +type fastReflection_EventMint EventMint + +func (x *EventMint) ProtoReflect() protoreflect.Message { + return (*fastReflection_EventMint)(x) +} + +func (x *EventMint) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_EventMint_messageType fastReflection_EventMint_messageType +var _ protoreflect.MessageType = fastReflection_EventMint_messageType{} + +type fastReflection_EventMint_messageType struct{} + +func (x fastReflection_EventMint_messageType) Zero() protoreflect.Message { + return (*fastReflection_EventMint)(nil) +} +func (x fastReflection_EventMint_messageType) New() protoreflect.Message { + return new(fastReflection_EventMint) +} +func (x fastReflection_EventMint_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_EventMint +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_EventMint) Descriptor() protoreflect.MessageDescriptor { + return md_EventMint +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_EventMint) Type() protoreflect.MessageType { + return _fastReflection_EventMint_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_EventMint) New() protoreflect.Message { + return new(fastReflection_EventMint) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_EventMint) Interface() protoreflect.ProtoMessage { + return (*EventMint)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_EventMint) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Recipient != "" { + value := protoreflect.ValueOfString(x.Recipient) + if !f(fd_EventMint_recipient, value) { + return + } + } + if x.Coin != "" { + value := protoreflect.ValueOfString(x.Coin) + if !f(fd_EventMint_coin, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_EventMint) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventMint.recipient": + return x.Recipient != "" + case "bitsong.fantoken.v1beta1.EventMint.coin": + return x.Coin != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventMint does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventMint) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventMint.recipient": + x.Recipient = "" + case "bitsong.fantoken.v1beta1.EventMint.coin": + x.Coin = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventMint does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_EventMint) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.EventMint.recipient": + value := x.Recipient + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.EventMint.coin": + value := x.Coin + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventMint does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventMint) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventMint.recipient": + x.Recipient = value.Interface().(string) + case "bitsong.fantoken.v1beta1.EventMint.coin": + x.Coin = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventMint does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventMint) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventMint.recipient": + panic(fmt.Errorf("field recipient of message bitsong.fantoken.v1beta1.EventMint is not mutable")) + case "bitsong.fantoken.v1beta1.EventMint.coin": + panic(fmt.Errorf("field coin of message bitsong.fantoken.v1beta1.EventMint is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventMint does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_EventMint) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventMint.recipient": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.EventMint.coin": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventMint does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_EventMint) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.EventMint", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_EventMint) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventMint) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_EventMint) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_EventMint) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*EventMint) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Recipient) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Coin) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*EventMint) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Coin) > 0 { + i -= len(x.Coin) + copy(dAtA[i:], x.Coin) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Coin))) + i-- + dAtA[i] = 0x12 + } + if len(x.Recipient) > 0 { + i -= len(x.Recipient) + copy(dAtA[i:], x.Recipient) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Recipient))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*EventMint) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventMint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventMint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Recipient", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Recipient = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Coin", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Coin = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_EventBurn protoreflect.MessageDescriptor + fd_EventBurn_sender protoreflect.FieldDescriptor + fd_EventBurn_coin protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_events_proto_init() + md_EventBurn = File_bitsong_fantoken_v1beta1_events_proto.Messages().ByName("EventBurn") + fd_EventBurn_sender = md_EventBurn.Fields().ByName("sender") + fd_EventBurn_coin = md_EventBurn.Fields().ByName("coin") +} + +var _ protoreflect.Message = (*fastReflection_EventBurn)(nil) + +type fastReflection_EventBurn EventBurn + +func (x *EventBurn) ProtoReflect() protoreflect.Message { + return (*fastReflection_EventBurn)(x) +} + +func (x *EventBurn) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_EventBurn_messageType fastReflection_EventBurn_messageType +var _ protoreflect.MessageType = fastReflection_EventBurn_messageType{} + +type fastReflection_EventBurn_messageType struct{} + +func (x fastReflection_EventBurn_messageType) Zero() protoreflect.Message { + return (*fastReflection_EventBurn)(nil) +} +func (x fastReflection_EventBurn_messageType) New() protoreflect.Message { + return new(fastReflection_EventBurn) +} +func (x fastReflection_EventBurn_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_EventBurn +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_EventBurn) Descriptor() protoreflect.MessageDescriptor { + return md_EventBurn +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_EventBurn) Type() protoreflect.MessageType { + return _fastReflection_EventBurn_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_EventBurn) New() protoreflect.Message { + return new(fastReflection_EventBurn) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_EventBurn) Interface() protoreflect.ProtoMessage { + return (*EventBurn)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_EventBurn) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Sender != "" { + value := protoreflect.ValueOfString(x.Sender) + if !f(fd_EventBurn_sender, value) { + return + } + } + if x.Coin != "" { + value := protoreflect.ValueOfString(x.Coin) + if !f(fd_EventBurn_coin, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_EventBurn) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventBurn.sender": + return x.Sender != "" + case "bitsong.fantoken.v1beta1.EventBurn.coin": + return x.Coin != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventBurn")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventBurn does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventBurn) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventBurn.sender": + x.Sender = "" + case "bitsong.fantoken.v1beta1.EventBurn.coin": + x.Coin = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventBurn")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventBurn does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_EventBurn) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.EventBurn.sender": + value := x.Sender + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.EventBurn.coin": + value := x.Coin + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventBurn")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventBurn does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventBurn) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventBurn.sender": + x.Sender = value.Interface().(string) + case "bitsong.fantoken.v1beta1.EventBurn.coin": + x.Coin = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventBurn")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventBurn does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventBurn) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventBurn.sender": + panic(fmt.Errorf("field sender of message bitsong.fantoken.v1beta1.EventBurn is not mutable")) + case "bitsong.fantoken.v1beta1.EventBurn.coin": + panic(fmt.Errorf("field coin of message bitsong.fantoken.v1beta1.EventBurn is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventBurn")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventBurn does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_EventBurn) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventBurn.sender": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.EventBurn.coin": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventBurn")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventBurn does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_EventBurn) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.EventBurn", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_EventBurn) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventBurn) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_EventBurn) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_EventBurn) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*EventBurn) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Sender) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Coin) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*EventBurn) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Coin) > 0 { + i -= len(x.Coin) + copy(dAtA[i:], x.Coin) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Coin))) + i-- + dAtA[i] = 0x12 + } + if len(x.Sender) > 0 { + i -= len(x.Sender) + copy(dAtA[i:], x.Sender) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Sender))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*EventBurn) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventBurn: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventBurn: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Coin", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Coin = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_EventSetAuthority protoreflect.MessageDescriptor + fd_EventSetAuthority_denom protoreflect.FieldDescriptor + fd_EventSetAuthority_old_authority protoreflect.FieldDescriptor + fd_EventSetAuthority_new_authority protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_events_proto_init() + md_EventSetAuthority = File_bitsong_fantoken_v1beta1_events_proto.Messages().ByName("EventSetAuthority") + fd_EventSetAuthority_denom = md_EventSetAuthority.Fields().ByName("denom") + fd_EventSetAuthority_old_authority = md_EventSetAuthority.Fields().ByName("old_authority") + fd_EventSetAuthority_new_authority = md_EventSetAuthority.Fields().ByName("new_authority") +} + +var _ protoreflect.Message = (*fastReflection_EventSetAuthority)(nil) + +type fastReflection_EventSetAuthority EventSetAuthority + +func (x *EventSetAuthority) ProtoReflect() protoreflect.Message { + return (*fastReflection_EventSetAuthority)(x) +} + +func (x *EventSetAuthority) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_EventSetAuthority_messageType fastReflection_EventSetAuthority_messageType +var _ protoreflect.MessageType = fastReflection_EventSetAuthority_messageType{} + +type fastReflection_EventSetAuthority_messageType struct{} + +func (x fastReflection_EventSetAuthority_messageType) Zero() protoreflect.Message { + return (*fastReflection_EventSetAuthority)(nil) +} +func (x fastReflection_EventSetAuthority_messageType) New() protoreflect.Message { + return new(fastReflection_EventSetAuthority) +} +func (x fastReflection_EventSetAuthority_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_EventSetAuthority +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_EventSetAuthority) Descriptor() protoreflect.MessageDescriptor { + return md_EventSetAuthority +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_EventSetAuthority) Type() protoreflect.MessageType { + return _fastReflection_EventSetAuthority_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_EventSetAuthority) New() protoreflect.Message { + return new(fastReflection_EventSetAuthority) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_EventSetAuthority) Interface() protoreflect.ProtoMessage { + return (*EventSetAuthority)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_EventSetAuthority) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_EventSetAuthority_denom, value) { + return + } + } + if x.OldAuthority != "" { + value := protoreflect.ValueOfString(x.OldAuthority) + if !f(fd_EventSetAuthority_old_authority, value) { + return + } + } + if x.NewAuthority != "" { + value := protoreflect.ValueOfString(x.NewAuthority) + if !f(fd_EventSetAuthority_new_authority, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_EventSetAuthority) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetAuthority.denom": + return x.Denom != "" + case "bitsong.fantoken.v1beta1.EventSetAuthority.old_authority": + return x.OldAuthority != "" + case "bitsong.fantoken.v1beta1.EventSetAuthority.new_authority": + return x.NewAuthority != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetAuthority")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetAuthority does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventSetAuthority) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetAuthority.denom": + x.Denom = "" + case "bitsong.fantoken.v1beta1.EventSetAuthority.old_authority": + x.OldAuthority = "" + case "bitsong.fantoken.v1beta1.EventSetAuthority.new_authority": + x.NewAuthority = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetAuthority")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetAuthority does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_EventSetAuthority) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.EventSetAuthority.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.EventSetAuthority.old_authority": + value := x.OldAuthority + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.EventSetAuthority.new_authority": + value := x.NewAuthority + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetAuthority")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetAuthority does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventSetAuthority) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetAuthority.denom": + x.Denom = value.Interface().(string) + case "bitsong.fantoken.v1beta1.EventSetAuthority.old_authority": + x.OldAuthority = value.Interface().(string) + case "bitsong.fantoken.v1beta1.EventSetAuthority.new_authority": + x.NewAuthority = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetAuthority")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetAuthority does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventSetAuthority) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetAuthority.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.EventSetAuthority is not mutable")) + case "bitsong.fantoken.v1beta1.EventSetAuthority.old_authority": + panic(fmt.Errorf("field old_authority of message bitsong.fantoken.v1beta1.EventSetAuthority is not mutable")) + case "bitsong.fantoken.v1beta1.EventSetAuthority.new_authority": + panic(fmt.Errorf("field new_authority of message bitsong.fantoken.v1beta1.EventSetAuthority is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetAuthority")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetAuthority does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_EventSetAuthority) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetAuthority.denom": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.EventSetAuthority.old_authority": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.EventSetAuthority.new_authority": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetAuthority")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetAuthority does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_EventSetAuthority) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.EventSetAuthority", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_EventSetAuthority) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventSetAuthority) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_EventSetAuthority) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_EventSetAuthority) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*EventSetAuthority) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.OldAuthority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.NewAuthority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*EventSetAuthority) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.NewAuthority) > 0 { + i -= len(x.NewAuthority) + copy(dAtA[i:], x.NewAuthority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NewAuthority))) + i-- + dAtA[i] = 0x1a + } + if len(x.OldAuthority) > 0 { + i -= len(x.OldAuthority) + copy(dAtA[i:], x.OldAuthority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.OldAuthority))) + i-- + dAtA[i] = 0x12 + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*EventSetAuthority) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventSetAuthority: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventSetAuthority: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OldAuthority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.OldAuthority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewAuthority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NewAuthority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_EventSetMinter protoreflect.MessageDescriptor + fd_EventSetMinter_denom protoreflect.FieldDescriptor + fd_EventSetMinter_old_minter protoreflect.FieldDescriptor + fd_EventSetMinter_new_minter protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_events_proto_init() + md_EventSetMinter = File_bitsong_fantoken_v1beta1_events_proto.Messages().ByName("EventSetMinter") + fd_EventSetMinter_denom = md_EventSetMinter.Fields().ByName("denom") + fd_EventSetMinter_old_minter = md_EventSetMinter.Fields().ByName("old_minter") + fd_EventSetMinter_new_minter = md_EventSetMinter.Fields().ByName("new_minter") +} + +var _ protoreflect.Message = (*fastReflection_EventSetMinter)(nil) + +type fastReflection_EventSetMinter EventSetMinter + +func (x *EventSetMinter) ProtoReflect() protoreflect.Message { + return (*fastReflection_EventSetMinter)(x) +} + +func (x *EventSetMinter) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_EventSetMinter_messageType fastReflection_EventSetMinter_messageType +var _ protoreflect.MessageType = fastReflection_EventSetMinter_messageType{} + +type fastReflection_EventSetMinter_messageType struct{} + +func (x fastReflection_EventSetMinter_messageType) Zero() protoreflect.Message { + return (*fastReflection_EventSetMinter)(nil) +} +func (x fastReflection_EventSetMinter_messageType) New() protoreflect.Message { + return new(fastReflection_EventSetMinter) +} +func (x fastReflection_EventSetMinter_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_EventSetMinter +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_EventSetMinter) Descriptor() protoreflect.MessageDescriptor { + return md_EventSetMinter +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_EventSetMinter) Type() protoreflect.MessageType { + return _fastReflection_EventSetMinter_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_EventSetMinter) New() protoreflect.Message { + return new(fastReflection_EventSetMinter) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_EventSetMinter) Interface() protoreflect.ProtoMessage { + return (*EventSetMinter)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_EventSetMinter) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_EventSetMinter_denom, value) { + return + } + } + if x.OldMinter != "" { + value := protoreflect.ValueOfString(x.OldMinter) + if !f(fd_EventSetMinter_old_minter, value) { + return + } + } + if x.NewMinter != "" { + value := protoreflect.ValueOfString(x.NewMinter) + if !f(fd_EventSetMinter_new_minter, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_EventSetMinter) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetMinter.denom": + return x.Denom != "" + case "bitsong.fantoken.v1beta1.EventSetMinter.old_minter": + return x.OldMinter != "" + case "bitsong.fantoken.v1beta1.EventSetMinter.new_minter": + return x.NewMinter != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetMinter")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetMinter does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventSetMinter) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetMinter.denom": + x.Denom = "" + case "bitsong.fantoken.v1beta1.EventSetMinter.old_minter": + x.OldMinter = "" + case "bitsong.fantoken.v1beta1.EventSetMinter.new_minter": + x.NewMinter = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetMinter")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetMinter does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_EventSetMinter) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.EventSetMinter.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.EventSetMinter.old_minter": + value := x.OldMinter + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.EventSetMinter.new_minter": + value := x.NewMinter + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetMinter")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetMinter does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventSetMinter) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetMinter.denom": + x.Denom = value.Interface().(string) + case "bitsong.fantoken.v1beta1.EventSetMinter.old_minter": + x.OldMinter = value.Interface().(string) + case "bitsong.fantoken.v1beta1.EventSetMinter.new_minter": + x.NewMinter = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetMinter")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetMinter does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventSetMinter) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetMinter.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.EventSetMinter is not mutable")) + case "bitsong.fantoken.v1beta1.EventSetMinter.old_minter": + panic(fmt.Errorf("field old_minter of message bitsong.fantoken.v1beta1.EventSetMinter is not mutable")) + case "bitsong.fantoken.v1beta1.EventSetMinter.new_minter": + panic(fmt.Errorf("field new_minter of message bitsong.fantoken.v1beta1.EventSetMinter is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetMinter")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetMinter does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_EventSetMinter) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetMinter.denom": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.EventSetMinter.old_minter": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.EventSetMinter.new_minter": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetMinter")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetMinter does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_EventSetMinter) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.EventSetMinter", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_EventSetMinter) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventSetMinter) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_EventSetMinter) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_EventSetMinter) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*EventSetMinter) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.OldMinter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.NewMinter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*EventSetMinter) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.NewMinter) > 0 { + i -= len(x.NewMinter) + copy(dAtA[i:], x.NewMinter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NewMinter))) + i-- + dAtA[i] = 0x1a + } + if len(x.OldMinter) > 0 { + i -= len(x.OldMinter) + copy(dAtA[i:], x.OldMinter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.OldMinter))) + i-- + dAtA[i] = 0x12 + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*EventSetMinter) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventSetMinter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventSetMinter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OldMinter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.OldMinter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewMinter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NewMinter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_EventSetUri protoreflect.MessageDescriptor + fd_EventSetUri_denom protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_events_proto_init() + md_EventSetUri = File_bitsong_fantoken_v1beta1_events_proto.Messages().ByName("EventSetUri") + fd_EventSetUri_denom = md_EventSetUri.Fields().ByName("denom") +} + +var _ protoreflect.Message = (*fastReflection_EventSetUri)(nil) + +type fastReflection_EventSetUri EventSetUri + +func (x *EventSetUri) ProtoReflect() protoreflect.Message { + return (*fastReflection_EventSetUri)(x) +} + +func (x *EventSetUri) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_EventSetUri_messageType fastReflection_EventSetUri_messageType +var _ protoreflect.MessageType = fastReflection_EventSetUri_messageType{} + +type fastReflection_EventSetUri_messageType struct{} + +func (x fastReflection_EventSetUri_messageType) Zero() protoreflect.Message { + return (*fastReflection_EventSetUri)(nil) +} +func (x fastReflection_EventSetUri_messageType) New() protoreflect.Message { + return new(fastReflection_EventSetUri) +} +func (x fastReflection_EventSetUri_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_EventSetUri +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_EventSetUri) Descriptor() protoreflect.MessageDescriptor { + return md_EventSetUri +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_EventSetUri) Type() protoreflect.MessageType { + return _fastReflection_EventSetUri_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_EventSetUri) New() protoreflect.Message { + return new(fastReflection_EventSetUri) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_EventSetUri) Interface() protoreflect.ProtoMessage { + return (*EventSetUri)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_EventSetUri) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_EventSetUri_denom, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_EventSetUri) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetUri.denom": + return x.Denom != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetUri")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetUri does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventSetUri) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetUri.denom": + x.Denom = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetUri")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetUri does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_EventSetUri) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.EventSetUri.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetUri")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetUri does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventSetUri) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetUri.denom": + x.Denom = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetUri")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetUri does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventSetUri) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetUri.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.EventSetUri is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetUri")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetUri does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_EventSetUri) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.EventSetUri.denom": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.EventSetUri")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.EventSetUri does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_EventSetUri) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.EventSetUri", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_EventSetUri) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventSetUri) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_EventSetUri) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_EventSetUri) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*EventSetUri) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*EventSetUri) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*EventSetUri) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventSetUri: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventSetUri: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: bitsong/fantoken/v1beta1/events.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type EventIssue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (x *EventIssue) Reset() { + *x = EventIssue{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventIssue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventIssue) ProtoMessage() {} + +// Deprecated: Use EventIssue.ProtoReflect.Descriptor instead. +func (*EventIssue) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_events_proto_rawDescGZIP(), []int{0} +} + +func (x *EventIssue) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +type EventDisableMint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (x *EventDisableMint) Reset() { + *x = EventDisableMint{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventDisableMint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventDisableMint) ProtoMessage() {} + +// Deprecated: Use EventDisableMint.ProtoReflect.Descriptor instead. +func (*EventDisableMint) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_events_proto_rawDescGZIP(), []int{1} +} + +func (x *EventDisableMint) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +type EventMint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Recipient string `protobuf:"bytes,1,opt,name=recipient,proto3" json:"recipient,omitempty"` + Coin string `protobuf:"bytes,2,opt,name=coin,proto3" json:"coin,omitempty"` +} + +func (x *EventMint) Reset() { + *x = EventMint{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventMint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventMint) ProtoMessage() {} + +// Deprecated: Use EventMint.ProtoReflect.Descriptor instead. +func (*EventMint) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_events_proto_rawDescGZIP(), []int{2} +} + +func (x *EventMint) GetRecipient() string { + if x != nil { + return x.Recipient + } + return "" +} + +func (x *EventMint) GetCoin() string { + if x != nil { + return x.Coin + } + return "" +} + +type EventBurn struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Coin string `protobuf:"bytes,2,opt,name=coin,proto3" json:"coin,omitempty"` +} + +func (x *EventBurn) Reset() { + *x = EventBurn{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventBurn) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventBurn) ProtoMessage() {} + +// Deprecated: Use EventBurn.ProtoReflect.Descriptor instead. +func (*EventBurn) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_events_proto_rawDescGZIP(), []int{3} +} + +func (x *EventBurn) GetSender() string { + if x != nil { + return x.Sender + } + return "" +} + +func (x *EventBurn) GetCoin() string { + if x != nil { + return x.Coin + } + return "" +} + +type EventSetAuthority struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + OldAuthority string `protobuf:"bytes,2,opt,name=old_authority,json=oldAuthority,proto3" json:"old_authority,omitempty"` + NewAuthority string `protobuf:"bytes,3,opt,name=new_authority,json=newAuthority,proto3" json:"new_authority,omitempty"` +} + +func (x *EventSetAuthority) Reset() { + *x = EventSetAuthority{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventSetAuthority) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventSetAuthority) ProtoMessage() {} + +// Deprecated: Use EventSetAuthority.ProtoReflect.Descriptor instead. +func (*EventSetAuthority) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_events_proto_rawDescGZIP(), []int{4} +} + +func (x *EventSetAuthority) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *EventSetAuthority) GetOldAuthority() string { + if x != nil { + return x.OldAuthority + } + return "" +} + +func (x *EventSetAuthority) GetNewAuthority() string { + if x != nil { + return x.NewAuthority + } + return "" +} + +type EventSetMinter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + OldMinter string `protobuf:"bytes,2,opt,name=old_minter,json=oldMinter,proto3" json:"old_minter,omitempty"` + NewMinter string `protobuf:"bytes,3,opt,name=new_minter,json=newMinter,proto3" json:"new_minter,omitempty"` +} + +func (x *EventSetMinter) Reset() { + *x = EventSetMinter{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventSetMinter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventSetMinter) ProtoMessage() {} + +// Deprecated: Use EventSetMinter.ProtoReflect.Descriptor instead. +func (*EventSetMinter) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_events_proto_rawDescGZIP(), []int{5} +} + +func (x *EventSetMinter) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *EventSetMinter) GetOldMinter() string { + if x != nil { + return x.OldMinter + } + return "" +} + +func (x *EventSetMinter) GetNewMinter() string { + if x != nil { + return x.NewMinter + } + return "" +} + +type EventSetUri struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (x *EventSetUri) Reset() { + *x = EventSetUri{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_events_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventSetUri) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventSetUri) ProtoMessage() {} + +// Deprecated: Use EventSetUri.ProtoReflect.Descriptor instead. +func (*EventSetUri) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_events_proto_rawDescGZIP(), []int{6} +} + +func (x *EventSetUri) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +var File_bitsong_fantoken_v1beta1_events_proto protoreflect.FileDescriptor + +var file_bitsong_fantoken_v1beta1_events_proto_rawDesc = []byte{ + 0x0a, 0x25, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, + 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, + 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x22, 0x0a, 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x28, 0x0a, 0x10, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x6e, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x3d, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x69, + 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x69, 0x6e, 0x22, 0x37, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x72, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x22, 0xa7, 0x01, + 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x3d, 0x0a, 0x0d, 0x6f, 0x6c, 0x64, + 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xf2, 0xde, 0x1f, 0x14, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x6c, 0x64, 0x5f, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x52, 0x0c, 0x6f, 0x6c, 0x64, 0x41, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x5f, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x18, 0xf2, 0xde, 0x1f, 0x14, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x41, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x92, 0x01, 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x12, 0x34, 0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x6f, 0x6c, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x52, 0x09, 0x6f, 0x6c, 0x64, + 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, 0x11, + 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x22, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x0b, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x55, 0x72, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x64, + 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x42, 0xe8, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, + 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x42, 0x0b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x39, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x61, 0x6e, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x42, + 0x46, 0x58, 0xaa, 0x02, 0x18, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x46, 0x61, 0x6e, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x18, + 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x24, 0x42, 0x69, 0x74, 0x73, 0x6f, + 0x6e, 0x67, 0x5c, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x1a, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x46, 0x61, 0x6e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_bitsong_fantoken_v1beta1_events_proto_rawDescOnce sync.Once + file_bitsong_fantoken_v1beta1_events_proto_rawDescData = file_bitsong_fantoken_v1beta1_events_proto_rawDesc +) + +func file_bitsong_fantoken_v1beta1_events_proto_rawDescGZIP() []byte { + file_bitsong_fantoken_v1beta1_events_proto_rawDescOnce.Do(func() { + file_bitsong_fantoken_v1beta1_events_proto_rawDescData = protoimpl.X.CompressGZIP(file_bitsong_fantoken_v1beta1_events_proto_rawDescData) + }) + return file_bitsong_fantoken_v1beta1_events_proto_rawDescData +} + +var file_bitsong_fantoken_v1beta1_events_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_bitsong_fantoken_v1beta1_events_proto_goTypes = []interface{}{ + (*EventIssue)(nil), // 0: bitsong.fantoken.v1beta1.EventIssue + (*EventDisableMint)(nil), // 1: bitsong.fantoken.v1beta1.EventDisableMint + (*EventMint)(nil), // 2: bitsong.fantoken.v1beta1.EventMint + (*EventBurn)(nil), // 3: bitsong.fantoken.v1beta1.EventBurn + (*EventSetAuthority)(nil), // 4: bitsong.fantoken.v1beta1.EventSetAuthority + (*EventSetMinter)(nil), // 5: bitsong.fantoken.v1beta1.EventSetMinter + (*EventSetUri)(nil), // 6: bitsong.fantoken.v1beta1.EventSetUri +} +var file_bitsong_fantoken_v1beta1_events_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_bitsong_fantoken_v1beta1_events_proto_init() } +func file_bitsong_fantoken_v1beta1_events_proto_init() { + if File_bitsong_fantoken_v1beta1_events_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_bitsong_fantoken_v1beta1_events_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventIssue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_events_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventDisableMint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_events_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventMint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_events_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventBurn); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_events_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventSetAuthority); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_events_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventSetMinter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_events_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventSetUri); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bitsong_fantoken_v1beta1_events_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_bitsong_fantoken_v1beta1_events_proto_goTypes, + DependencyIndexes: file_bitsong_fantoken_v1beta1_events_proto_depIdxs, + MessageInfos: file_bitsong_fantoken_v1beta1_events_proto_msgTypes, + }.Build() + File_bitsong_fantoken_v1beta1_events_proto = out.File + file_bitsong_fantoken_v1beta1_events_proto_rawDesc = nil + file_bitsong_fantoken_v1beta1_events_proto_goTypes = nil + file_bitsong_fantoken_v1beta1_events_proto_depIdxs = nil +} diff --git a/api/bitsong/fantoken/v1beta1/fantoken.pulsar.go b/api/bitsong/fantoken/v1beta1/fantoken.pulsar.go new file mode 100644 index 00000000..96891790 --- /dev/null +++ b/api/bitsong/fantoken/v1beta1/fantoken.pulsar.go @@ -0,0 +1,1521 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package fantokenv1beta1 + +import ( + _ "cosmossdk.io/api/cosmos/base/v1beta1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_Metadata protoreflect.MessageDescriptor + fd_Metadata_name protoreflect.FieldDescriptor + fd_Metadata_symbol protoreflect.FieldDescriptor + fd_Metadata_uri protoreflect.FieldDescriptor + fd_Metadata_authority protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_fantoken_proto_init() + md_Metadata = File_bitsong_fantoken_v1beta1_fantoken_proto.Messages().ByName("Metadata") + fd_Metadata_name = md_Metadata.Fields().ByName("name") + fd_Metadata_symbol = md_Metadata.Fields().ByName("symbol") + fd_Metadata_uri = md_Metadata.Fields().ByName("uri") + fd_Metadata_authority = md_Metadata.Fields().ByName("authority") +} + +var _ protoreflect.Message = (*fastReflection_Metadata)(nil) + +type fastReflection_Metadata Metadata + +func (x *Metadata) ProtoReflect() protoreflect.Message { + return (*fastReflection_Metadata)(x) +} + +func (x *Metadata) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_fantoken_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Metadata_messageType fastReflection_Metadata_messageType +var _ protoreflect.MessageType = fastReflection_Metadata_messageType{} + +type fastReflection_Metadata_messageType struct{} + +func (x fastReflection_Metadata_messageType) Zero() protoreflect.Message { + return (*fastReflection_Metadata)(nil) +} +func (x fastReflection_Metadata_messageType) New() protoreflect.Message { + return new(fastReflection_Metadata) +} +func (x fastReflection_Metadata_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Metadata +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Metadata) Descriptor() protoreflect.MessageDescriptor { + return md_Metadata +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_Metadata) Type() protoreflect.MessageType { + return _fastReflection_Metadata_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Metadata) New() protoreflect.Message { + return new(fastReflection_Metadata) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Metadata) Interface() protoreflect.ProtoMessage { + return (*Metadata)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_Metadata) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Name != "" { + value := protoreflect.ValueOfString(x.Name) + if !f(fd_Metadata_name, value) { + return + } + } + if x.Symbol != "" { + value := protoreflect.ValueOfString(x.Symbol) + if !f(fd_Metadata_symbol, value) { + return + } + } + if x.Uri != "" { + value := protoreflect.ValueOfString(x.Uri) + if !f(fd_Metadata_uri, value) { + return + } + } + if x.Authority != "" { + value := protoreflect.ValueOfString(x.Authority) + if !f(fd_Metadata_authority, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_Metadata) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.Metadata.name": + return x.Name != "" + case "bitsong.fantoken.v1beta1.Metadata.symbol": + return x.Symbol != "" + case "bitsong.fantoken.v1beta1.Metadata.uri": + return x.Uri != "" + case "bitsong.fantoken.v1beta1.Metadata.authority": + return x.Authority != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.Metadata")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.Metadata does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Metadata) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.Metadata.name": + x.Name = "" + case "bitsong.fantoken.v1beta1.Metadata.symbol": + x.Symbol = "" + case "bitsong.fantoken.v1beta1.Metadata.uri": + x.Uri = "" + case "bitsong.fantoken.v1beta1.Metadata.authority": + x.Authority = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.Metadata")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.Metadata does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_Metadata) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.Metadata.name": + value := x.Name + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.Metadata.symbol": + value := x.Symbol + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.Metadata.uri": + value := x.Uri + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.Metadata.authority": + value := x.Authority + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.Metadata")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.Metadata does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Metadata) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.Metadata.name": + x.Name = value.Interface().(string) + case "bitsong.fantoken.v1beta1.Metadata.symbol": + x.Symbol = value.Interface().(string) + case "bitsong.fantoken.v1beta1.Metadata.uri": + x.Uri = value.Interface().(string) + case "bitsong.fantoken.v1beta1.Metadata.authority": + x.Authority = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.Metadata")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.Metadata does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Metadata) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.Metadata.name": + panic(fmt.Errorf("field name of message bitsong.fantoken.v1beta1.Metadata is not mutable")) + case "bitsong.fantoken.v1beta1.Metadata.symbol": + panic(fmt.Errorf("field symbol of message bitsong.fantoken.v1beta1.Metadata is not mutable")) + case "bitsong.fantoken.v1beta1.Metadata.uri": + panic(fmt.Errorf("field uri of message bitsong.fantoken.v1beta1.Metadata is not mutable")) + case "bitsong.fantoken.v1beta1.Metadata.authority": + panic(fmt.Errorf("field authority of message bitsong.fantoken.v1beta1.Metadata is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.Metadata")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.Metadata does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_Metadata) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.Metadata.name": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.Metadata.symbol": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.Metadata.uri": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.Metadata.authority": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.Metadata")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.Metadata does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_Metadata) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.Metadata", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_Metadata) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Metadata) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_Metadata) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_Metadata) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Metadata) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Name) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Symbol) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Uri) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Authority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Metadata) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Authority) > 0 { + i -= len(x.Authority) + copy(dAtA[i:], x.Authority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Authority))) + i-- + dAtA[i] = 0x22 + } + if len(x.Uri) > 0 { + i -= len(x.Uri) + copy(dAtA[i:], x.Uri) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Uri))) + i-- + dAtA[i] = 0x1a + } + if len(x.Symbol) > 0 { + i -= len(x.Symbol) + copy(dAtA[i:], x.Symbol) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Symbol))) + i-- + dAtA[i] = 0x12 + } + if len(x.Name) > 0 { + i -= len(x.Name) + copy(dAtA[i:], x.Name) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Name))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*Metadata) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Metadata: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Metadata: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Symbol", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Symbol = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Uri", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Uri = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_FanToken protoreflect.MessageDescriptor + fd_FanToken_denom protoreflect.FieldDescriptor + fd_FanToken_max_supply protoreflect.FieldDescriptor + fd_FanToken_minter protoreflect.FieldDescriptor + fd_FanToken_meta_data protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_fantoken_proto_init() + md_FanToken = File_bitsong_fantoken_v1beta1_fantoken_proto.Messages().ByName("FanToken") + fd_FanToken_denom = md_FanToken.Fields().ByName("denom") + fd_FanToken_max_supply = md_FanToken.Fields().ByName("max_supply") + fd_FanToken_minter = md_FanToken.Fields().ByName("minter") + fd_FanToken_meta_data = md_FanToken.Fields().ByName("meta_data") +} + +var _ protoreflect.Message = (*fastReflection_FanToken)(nil) + +type fastReflection_FanToken FanToken + +func (x *FanToken) ProtoReflect() protoreflect.Message { + return (*fastReflection_FanToken)(x) +} + +func (x *FanToken) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_fantoken_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_FanToken_messageType fastReflection_FanToken_messageType +var _ protoreflect.MessageType = fastReflection_FanToken_messageType{} + +type fastReflection_FanToken_messageType struct{} + +func (x fastReflection_FanToken_messageType) Zero() protoreflect.Message { + return (*fastReflection_FanToken)(nil) +} +func (x fastReflection_FanToken_messageType) New() protoreflect.Message { + return new(fastReflection_FanToken) +} +func (x fastReflection_FanToken_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_FanToken +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_FanToken) Descriptor() protoreflect.MessageDescriptor { + return md_FanToken +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_FanToken) Type() protoreflect.MessageType { + return _fastReflection_FanToken_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_FanToken) New() protoreflect.Message { + return new(fastReflection_FanToken) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_FanToken) Interface() protoreflect.ProtoMessage { + return (*FanToken)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_FanToken) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_FanToken_denom, value) { + return + } + } + if x.MaxSupply != "" { + value := protoreflect.ValueOfString(x.MaxSupply) + if !f(fd_FanToken_max_supply, value) { + return + } + } + if x.Minter != "" { + value := protoreflect.ValueOfString(x.Minter) + if !f(fd_FanToken_minter, value) { + return + } + } + if x.MetaData != nil { + value := protoreflect.ValueOfMessage(x.MetaData.ProtoReflect()) + if !f(fd_FanToken_meta_data, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_FanToken) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.FanToken.denom": + return x.Denom != "" + case "bitsong.fantoken.v1beta1.FanToken.max_supply": + return x.MaxSupply != "" + case "bitsong.fantoken.v1beta1.FanToken.minter": + return x.Minter != "" + case "bitsong.fantoken.v1beta1.FanToken.meta_data": + return x.MetaData != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.FanToken")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.FanToken does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_FanToken) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.FanToken.denom": + x.Denom = "" + case "bitsong.fantoken.v1beta1.FanToken.max_supply": + x.MaxSupply = "" + case "bitsong.fantoken.v1beta1.FanToken.minter": + x.Minter = "" + case "bitsong.fantoken.v1beta1.FanToken.meta_data": + x.MetaData = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.FanToken")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.FanToken does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_FanToken) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.FanToken.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.FanToken.max_supply": + value := x.MaxSupply + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.FanToken.minter": + value := x.Minter + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.FanToken.meta_data": + value := x.MetaData + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.FanToken")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.FanToken does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_FanToken) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.FanToken.denom": + x.Denom = value.Interface().(string) + case "bitsong.fantoken.v1beta1.FanToken.max_supply": + x.MaxSupply = value.Interface().(string) + case "bitsong.fantoken.v1beta1.FanToken.minter": + x.Minter = value.Interface().(string) + case "bitsong.fantoken.v1beta1.FanToken.meta_data": + x.MetaData = value.Message().Interface().(*Metadata) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.FanToken")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.FanToken does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_FanToken) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.FanToken.meta_data": + if x.MetaData == nil { + x.MetaData = new(Metadata) + } + return protoreflect.ValueOfMessage(x.MetaData.ProtoReflect()) + case "bitsong.fantoken.v1beta1.FanToken.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.FanToken is not mutable")) + case "bitsong.fantoken.v1beta1.FanToken.max_supply": + panic(fmt.Errorf("field max_supply of message bitsong.fantoken.v1beta1.FanToken is not mutable")) + case "bitsong.fantoken.v1beta1.FanToken.minter": + panic(fmt.Errorf("field minter of message bitsong.fantoken.v1beta1.FanToken is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.FanToken")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.FanToken does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_FanToken) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.FanToken.denom": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.FanToken.max_supply": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.FanToken.minter": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.FanToken.meta_data": + m := new(Metadata) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.FanToken")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.FanToken does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_FanToken) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.FanToken", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_FanToken) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_FanToken) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_FanToken) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_FanToken) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*FanToken) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.MaxSupply) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Minter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.MetaData != nil { + l = options.Size(x.MetaData) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*FanToken) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.MetaData != nil { + encoded, err := options.Marshal(x.MetaData) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x22 + } + if len(x.Minter) > 0 { + i -= len(x.Minter) + copy(dAtA[i:], x.Minter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Minter))) + i-- + dAtA[i] = 0x1a + } + if len(x.MaxSupply) > 0 { + i -= len(x.MaxSupply) + copy(dAtA[i:], x.MaxSupply) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MaxSupply))) + i-- + dAtA[i] = 0x12 + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*FanToken) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: FanToken: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: FanToken: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MaxSupply", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.MaxSupply = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Minter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Minter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MetaData", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.MetaData == nil { + x.MetaData = &Metadata{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.MetaData); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: bitsong/fantoken/v1beta1/fantoken.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Metadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name defines the name of the fantoken (eg: Kitty Punk) + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // symbol is the token symbol usually shown on exchanges (eg: KITTY) + Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` + // URI to a document (on or off-chain) that contains additional + // information.Optional. + Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"` + // sdk.AccAddress allowed to set a new uri + Authority string `protobuf:"bytes,4,opt,name=authority,proto3" json:"authority,omitempty"` +} + +func (x *Metadata) Reset() { + *x = Metadata{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_fantoken_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Metadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Metadata) ProtoMessage() {} + +// Deprecated: Use Metadata.ProtoReflect.Descriptor instead. +func (*Metadata) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_fantoken_proto_rawDescGZIP(), []int{0} +} + +func (x *Metadata) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Metadata) GetSymbol() string { + if x != nil { + return x.Symbol + } + return "" +} + +func (x *Metadata) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *Metadata) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +// FanToken defines a standard for the fungible token +type FanToken struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // denom represents the string name of the given denom unit (e.g ft). + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + MaxSupply string `protobuf:"bytes,2,opt,name=max_supply,json=maxSupply,proto3" json:"max_supply,omitempty"` + // sdk.AccAddress allowed to mint new fantoken + Minter string `protobuf:"bytes,3,opt,name=minter,proto3" json:"minter,omitempty"` + MetaData *Metadata `protobuf:"bytes,4,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` +} + +func (x *FanToken) Reset() { + *x = FanToken{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_fantoken_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FanToken) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FanToken) ProtoMessage() {} + +// Deprecated: Use FanToken.ProtoReflect.Descriptor instead. +func (*FanToken) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_fantoken_proto_rawDescGZIP(), []int{1} +} + +func (x *FanToken) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *FanToken) GetMaxSupply() string { + if x != nil { + return x.MaxSupply + } + return "" +} + +func (x *FanToken) GetMinter() string { + if x != nil { + return x.Minter + } + return "" +} + +func (x *FanToken) GetMetaData() *Metadata { + if x != nil { + return x.MetaData + } + return nil +} + +var File_bitsong_fantoken_v1beta1_fantoken_proto protoreflect.FileDescriptor + +var file_bitsong_fantoken_v1beta1_fantoken_proto_rawDesc = []byte{ + 0x0a, 0x27, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x62, 0x69, 0x74, 0x73, 0x6f, + 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, + 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6f, 0x0a, 0x08, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, + 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, + 0x6c, 0x12, 0x19, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xe2, 0xde, 0x1f, 0x03, 0x55, 0x52, 0x49, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xf0, 0x01, 0x0a, 0x08, 0x46, + 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x51, 0x0a, + 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x32, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, + 0xf2, 0xde, 0x1f, 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, + 0x70, 0x70, 0x6c, 0x79, 0x22, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, + 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, + 0x18, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, + 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, + 0x61, 0x74, 0x61, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0x98, 0xa0, 0x1f, 0x00, 0x42, 0xee, 0x01, + 0xc8, 0xe1, 0x1e, 0x00, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, + 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x42, 0x0d, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, + 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, + 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, + 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, + 0x03, 0x42, 0x46, 0x58, 0xaa, 0x02, 0x18, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x46, + 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, + 0x02, 0x18, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x24, 0x42, 0x69, 0x74, + 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x1a, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x46, 0x61, 0x6e, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_bitsong_fantoken_v1beta1_fantoken_proto_rawDescOnce sync.Once + file_bitsong_fantoken_v1beta1_fantoken_proto_rawDescData = file_bitsong_fantoken_v1beta1_fantoken_proto_rawDesc +) + +func file_bitsong_fantoken_v1beta1_fantoken_proto_rawDescGZIP() []byte { + file_bitsong_fantoken_v1beta1_fantoken_proto_rawDescOnce.Do(func() { + file_bitsong_fantoken_v1beta1_fantoken_proto_rawDescData = protoimpl.X.CompressGZIP(file_bitsong_fantoken_v1beta1_fantoken_proto_rawDescData) + }) + return file_bitsong_fantoken_v1beta1_fantoken_proto_rawDescData +} + +var file_bitsong_fantoken_v1beta1_fantoken_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_bitsong_fantoken_v1beta1_fantoken_proto_goTypes = []interface{}{ + (*Metadata)(nil), // 0: bitsong.fantoken.v1beta1.Metadata + (*FanToken)(nil), // 1: bitsong.fantoken.v1beta1.FanToken +} +var file_bitsong_fantoken_v1beta1_fantoken_proto_depIdxs = []int32{ + 0, // 0: bitsong.fantoken.v1beta1.FanToken.meta_data:type_name -> bitsong.fantoken.v1beta1.Metadata + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_bitsong_fantoken_v1beta1_fantoken_proto_init() } +func file_bitsong_fantoken_v1beta1_fantoken_proto_init() { + if File_bitsong_fantoken_v1beta1_fantoken_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_bitsong_fantoken_v1beta1_fantoken_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Metadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_fantoken_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FanToken); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bitsong_fantoken_v1beta1_fantoken_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_bitsong_fantoken_v1beta1_fantoken_proto_goTypes, + DependencyIndexes: file_bitsong_fantoken_v1beta1_fantoken_proto_depIdxs, + MessageInfos: file_bitsong_fantoken_v1beta1_fantoken_proto_msgTypes, + }.Build() + File_bitsong_fantoken_v1beta1_fantoken_proto = out.File + file_bitsong_fantoken_v1beta1_fantoken_proto_rawDesc = nil + file_bitsong_fantoken_v1beta1_fantoken_proto_goTypes = nil + file_bitsong_fantoken_v1beta1_fantoken_proto_depIdxs = nil +} diff --git a/api/bitsong/fantoken/v1beta1/genesis.pulsar.go b/api/bitsong/fantoken/v1beta1/genesis.pulsar.go new file mode 100644 index 00000000..55c9a4d7 --- /dev/null +++ b/api/bitsong/fantoken/v1beta1/genesis.pulsar.go @@ -0,0 +1,757 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package fantokenv1beta1 + +import ( + _ "cosmossdk.io/api/cosmos/base/v1beta1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var _ protoreflect.List = (*_GenesisState_2_list)(nil) + +type _GenesisState_2_list struct { + list *[]*FanToken +} + +func (x *_GenesisState_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_GenesisState_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_GenesisState_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*FanToken) + (*x.list)[i] = concreteValue +} + +func (x *_GenesisState_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*FanToken) + *x.list = append(*x.list, concreteValue) +} + +func (x *_GenesisState_2_list) AppendMutable() protoreflect.Value { + v := new(FanToken) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_2_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_GenesisState_2_list) NewElement() protoreflect.Value { + v := new(FanToken) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_2_list) IsValid() bool { + return x.list != nil +} + +var ( + md_GenesisState protoreflect.MessageDescriptor + fd_GenesisState_params protoreflect.FieldDescriptor + fd_GenesisState_fan_tokens protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_genesis_proto_init() + md_GenesisState = File_bitsong_fantoken_v1beta1_genesis_proto.Messages().ByName("GenesisState") + fd_GenesisState_params = md_GenesisState.Fields().ByName("params") + fd_GenesisState_fan_tokens = md_GenesisState.Fields().ByName("fan_tokens") +} + +var _ protoreflect.Message = (*fastReflection_GenesisState)(nil) + +type fastReflection_GenesisState GenesisState + +func (x *GenesisState) ProtoReflect() protoreflect.Message { + return (*fastReflection_GenesisState)(x) +} + +func (x *GenesisState) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_genesis_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_GenesisState_messageType fastReflection_GenesisState_messageType +var _ protoreflect.MessageType = fastReflection_GenesisState_messageType{} + +type fastReflection_GenesisState_messageType struct{} + +func (x fastReflection_GenesisState_messageType) Zero() protoreflect.Message { + return (*fastReflection_GenesisState)(nil) +} +func (x fastReflection_GenesisState_messageType) New() protoreflect.Message { + return new(fastReflection_GenesisState) +} +func (x fastReflection_GenesisState_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_GenesisState +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_GenesisState) Descriptor() protoreflect.MessageDescriptor { + return md_GenesisState +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_GenesisState) Type() protoreflect.MessageType { + return _fastReflection_GenesisState_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_GenesisState) New() protoreflect.Message { + return new(fastReflection_GenesisState) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_GenesisState) Interface() protoreflect.ProtoMessage { + return (*GenesisState)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Params != nil { + value := protoreflect.ValueOfMessage(x.Params.ProtoReflect()) + if !f(fd_GenesisState_params, value) { + return + } + } + if len(x.FanTokens) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_2_list{list: &x.FanTokens}) + if !f(fd_GenesisState_fan_tokens, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.GenesisState.params": + return x.Params != nil + case "bitsong.fantoken.v1beta1.GenesisState.fan_tokens": + return len(x.FanTokens) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.GenesisState")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.GenesisState does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.GenesisState.params": + x.Params = nil + case "bitsong.fantoken.v1beta1.GenesisState.fan_tokens": + x.FanTokens = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.GenesisState")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.GenesisState does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.GenesisState.params": + value := x.Params + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "bitsong.fantoken.v1beta1.GenesisState.fan_tokens": + if len(x.FanTokens) == 0 { + return protoreflect.ValueOfList(&_GenesisState_2_list{}) + } + listValue := &_GenesisState_2_list{list: &x.FanTokens} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.GenesisState")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.GenesisState does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.GenesisState.params": + x.Params = value.Message().Interface().(*Params) + case "bitsong.fantoken.v1beta1.GenesisState.fan_tokens": + lv := value.List() + clv := lv.(*_GenesisState_2_list) + x.FanTokens = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.GenesisState")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.GenesisState does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.GenesisState.params": + if x.Params == nil { + x.Params = new(Params) + } + return protoreflect.ValueOfMessage(x.Params.ProtoReflect()) + case "bitsong.fantoken.v1beta1.GenesisState.fan_tokens": + if x.FanTokens == nil { + x.FanTokens = []*FanToken{} + } + value := &_GenesisState_2_list{list: &x.FanTokens} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.GenesisState")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.GenesisState does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.GenesisState.params": + m := new(Params) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "bitsong.fantoken.v1beta1.GenesisState.fan_tokens": + list := []*FanToken{} + return protoreflect.ValueOfList(&_GenesisState_2_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.GenesisState")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.GenesisState does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_GenesisState) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.GenesisState", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_GenesisState) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GenesisState) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_GenesisState) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*GenesisState) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Params != nil { + l = options.Size(x.Params) + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.FanTokens) > 0 { + for _, e := range x.FanTokens { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*GenesisState) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.FanTokens) > 0 { + for iNdEx := len(x.FanTokens) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.FanTokens[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + } + if x.Params != nil { + encoded, err := options.Marshal(x.Params) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*GenesisState) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Params == nil { + x.Params = &Params{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Params); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field FanTokens", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.FanTokens = append(x.FanTokens, &FanToken{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.FanTokens[len(x.FanTokens)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: bitsong/fantoken/v1beta1/genesis.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// GenesisState defines the fantoken module's genesis state +type GenesisState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Params *Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params,omitempty"` + FanTokens []*FanToken `protobuf:"bytes,2,rep,name=fan_tokens,json=fanTokens,proto3" json:"fan_tokens,omitempty"` +} + +func (x *GenesisState) Reset() { + *x = GenesisState{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_genesis_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenesisState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenesisState) ProtoMessage() {} + +// Deprecated: Use GenesisState.ProtoReflect.Descriptor instead. +func (*GenesisState) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_genesis_proto_rawDescGZIP(), []int{0} +} + +func (x *GenesisState) GetParams() *Params { + if x != nil { + return x.Params + } + return nil +} + +func (x *GenesisState) GetFanTokens() []*FanToken { + if x != nil { + return x.FanTokens + } + return nil +} + +var File_bitsong_fantoken_v1beta1_genesis_proto protoreflect.FileDescriptor + +var file_bitsong_fantoken_v1beta1_genesis_proto_rawDesc = []byte{ + 0x0a, 0x26, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x73, + 0x69, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, + 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, + 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, + 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x25, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, + 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x6e, + 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x04, 0xc8, 0xde, 0x1f, + 0x00, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x61, 0x6e, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x09, 0x66, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x42, 0xe9, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, + 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x42, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, + 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, + 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, + 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, + 0x03, 0x42, 0x46, 0x58, 0xaa, 0x02, 0x18, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x46, + 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, + 0x02, 0x18, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x24, 0x42, 0x69, 0x74, + 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x1a, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x46, 0x61, 0x6e, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_bitsong_fantoken_v1beta1_genesis_proto_rawDescOnce sync.Once + file_bitsong_fantoken_v1beta1_genesis_proto_rawDescData = file_bitsong_fantoken_v1beta1_genesis_proto_rawDesc +) + +func file_bitsong_fantoken_v1beta1_genesis_proto_rawDescGZIP() []byte { + file_bitsong_fantoken_v1beta1_genesis_proto_rawDescOnce.Do(func() { + file_bitsong_fantoken_v1beta1_genesis_proto_rawDescData = protoimpl.X.CompressGZIP(file_bitsong_fantoken_v1beta1_genesis_proto_rawDescData) + }) + return file_bitsong_fantoken_v1beta1_genesis_proto_rawDescData +} + +var file_bitsong_fantoken_v1beta1_genesis_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_bitsong_fantoken_v1beta1_genesis_proto_goTypes = []interface{}{ + (*GenesisState)(nil), // 0: bitsong.fantoken.v1beta1.GenesisState + (*Params)(nil), // 1: bitsong.fantoken.v1beta1.Params + (*FanToken)(nil), // 2: bitsong.fantoken.v1beta1.FanToken +} +var file_bitsong_fantoken_v1beta1_genesis_proto_depIdxs = []int32{ + 1, // 0: bitsong.fantoken.v1beta1.GenesisState.params:type_name -> bitsong.fantoken.v1beta1.Params + 2, // 1: bitsong.fantoken.v1beta1.GenesisState.fan_tokens:type_name -> bitsong.fantoken.v1beta1.FanToken + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_bitsong_fantoken_v1beta1_genesis_proto_init() } +func file_bitsong_fantoken_v1beta1_genesis_proto_init() { + if File_bitsong_fantoken_v1beta1_genesis_proto != nil { + return + } + file_bitsong_fantoken_v1beta1_fantoken_proto_init() + file_bitsong_fantoken_v1beta1_params_proto_init() + if !protoimpl.UnsafeEnabled { + file_bitsong_fantoken_v1beta1_genesis_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bitsong_fantoken_v1beta1_genesis_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_bitsong_fantoken_v1beta1_genesis_proto_goTypes, + DependencyIndexes: file_bitsong_fantoken_v1beta1_genesis_proto_depIdxs, + MessageInfos: file_bitsong_fantoken_v1beta1_genesis_proto_msgTypes, + }.Build() + File_bitsong_fantoken_v1beta1_genesis_proto = out.File + file_bitsong_fantoken_v1beta1_genesis_proto_rawDesc = nil + file_bitsong_fantoken_v1beta1_genesis_proto_goTypes = nil + file_bitsong_fantoken_v1beta1_genesis_proto_depIdxs = nil +} diff --git a/api/bitsong/fantoken/v1beta1/gov.pulsar.go b/api/bitsong/fantoken/v1beta1/gov.pulsar.go new file mode 100644 index 00000000..f2b6d2f8 --- /dev/null +++ b/api/bitsong/fantoken/v1beta1/gov.pulsar.go @@ -0,0 +1,1772 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package fantokenv1beta1 + +import ( + v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_UpdateFeesProposal protoreflect.MessageDescriptor + fd_UpdateFeesProposal_title protoreflect.FieldDescriptor + fd_UpdateFeesProposal_description protoreflect.FieldDescriptor + fd_UpdateFeesProposal_issue_fee protoreflect.FieldDescriptor + fd_UpdateFeesProposal_mint_fee protoreflect.FieldDescriptor + fd_UpdateFeesProposal_burn_fee protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_gov_proto_init() + md_UpdateFeesProposal = File_bitsong_fantoken_v1beta1_gov_proto.Messages().ByName("UpdateFeesProposal") + fd_UpdateFeesProposal_title = md_UpdateFeesProposal.Fields().ByName("title") + fd_UpdateFeesProposal_description = md_UpdateFeesProposal.Fields().ByName("description") + fd_UpdateFeesProposal_issue_fee = md_UpdateFeesProposal.Fields().ByName("issue_fee") + fd_UpdateFeesProposal_mint_fee = md_UpdateFeesProposal.Fields().ByName("mint_fee") + fd_UpdateFeesProposal_burn_fee = md_UpdateFeesProposal.Fields().ByName("burn_fee") +} + +var _ protoreflect.Message = (*fastReflection_UpdateFeesProposal)(nil) + +type fastReflection_UpdateFeesProposal UpdateFeesProposal + +func (x *UpdateFeesProposal) ProtoReflect() protoreflect.Message { + return (*fastReflection_UpdateFeesProposal)(x) +} + +func (x *UpdateFeesProposal) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_gov_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_UpdateFeesProposal_messageType fastReflection_UpdateFeesProposal_messageType +var _ protoreflect.MessageType = fastReflection_UpdateFeesProposal_messageType{} + +type fastReflection_UpdateFeesProposal_messageType struct{} + +func (x fastReflection_UpdateFeesProposal_messageType) Zero() protoreflect.Message { + return (*fastReflection_UpdateFeesProposal)(nil) +} +func (x fastReflection_UpdateFeesProposal_messageType) New() protoreflect.Message { + return new(fastReflection_UpdateFeesProposal) +} +func (x fastReflection_UpdateFeesProposal_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_UpdateFeesProposal +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_UpdateFeesProposal) Descriptor() protoreflect.MessageDescriptor { + return md_UpdateFeesProposal +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_UpdateFeesProposal) Type() protoreflect.MessageType { + return _fastReflection_UpdateFeesProposal_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_UpdateFeesProposal) New() protoreflect.Message { + return new(fastReflection_UpdateFeesProposal) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_UpdateFeesProposal) Interface() protoreflect.ProtoMessage { + return (*UpdateFeesProposal)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_UpdateFeesProposal) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Title != "" { + value := protoreflect.ValueOfString(x.Title) + if !f(fd_UpdateFeesProposal_title, value) { + return + } + } + if x.Description != "" { + value := protoreflect.ValueOfString(x.Description) + if !f(fd_UpdateFeesProposal_description, value) { + return + } + } + if x.IssueFee != nil { + value := protoreflect.ValueOfMessage(x.IssueFee.ProtoReflect()) + if !f(fd_UpdateFeesProposal_issue_fee, value) { + return + } + } + if x.MintFee != nil { + value := protoreflect.ValueOfMessage(x.MintFee.ProtoReflect()) + if !f(fd_UpdateFeesProposal_mint_fee, value) { + return + } + } + if x.BurnFee != nil { + value := protoreflect.ValueOfMessage(x.BurnFee.ProtoReflect()) + if !f(fd_UpdateFeesProposal_burn_fee, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_UpdateFeesProposal) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.title": + return x.Title != "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.description": + return x.Description != "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.issue_fee": + return x.IssueFee != nil + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.mint_fee": + return x.MintFee != nil + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.burn_fee": + return x.BurnFee != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.UpdateFeesProposal")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.UpdateFeesProposal does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_UpdateFeesProposal) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.title": + x.Title = "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.description": + x.Description = "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.issue_fee": + x.IssueFee = nil + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.mint_fee": + x.MintFee = nil + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.burn_fee": + x.BurnFee = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.UpdateFeesProposal")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.UpdateFeesProposal does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_UpdateFeesProposal) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.title": + value := x.Title + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.description": + value := x.Description + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.issue_fee": + value := x.IssueFee + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.mint_fee": + value := x.MintFee + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.burn_fee": + value := x.BurnFee + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.UpdateFeesProposal")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.UpdateFeesProposal does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_UpdateFeesProposal) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.title": + x.Title = value.Interface().(string) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.description": + x.Description = value.Interface().(string) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.issue_fee": + x.IssueFee = value.Message().Interface().(*v1beta1.Coin) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.mint_fee": + x.MintFee = value.Message().Interface().(*v1beta1.Coin) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.burn_fee": + x.BurnFee = value.Message().Interface().(*v1beta1.Coin) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.UpdateFeesProposal")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.UpdateFeesProposal does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_UpdateFeesProposal) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.issue_fee": + if x.IssueFee == nil { + x.IssueFee = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.IssueFee.ProtoReflect()) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.mint_fee": + if x.MintFee == nil { + x.MintFee = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.MintFee.ProtoReflect()) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.burn_fee": + if x.BurnFee == nil { + x.BurnFee = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.BurnFee.ProtoReflect()) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.title": + panic(fmt.Errorf("field title of message bitsong.fantoken.v1beta1.UpdateFeesProposal is not mutable")) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.description": + panic(fmt.Errorf("field description of message bitsong.fantoken.v1beta1.UpdateFeesProposal is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.UpdateFeesProposal")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.UpdateFeesProposal does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_UpdateFeesProposal) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.title": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.description": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.issue_fee": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.mint_fee": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "bitsong.fantoken.v1beta1.UpdateFeesProposal.burn_fee": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.UpdateFeesProposal")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.UpdateFeesProposal does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_UpdateFeesProposal) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.UpdateFeesProposal", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_UpdateFeesProposal) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_UpdateFeesProposal) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_UpdateFeesProposal) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_UpdateFeesProposal) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*UpdateFeesProposal) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Title) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Description) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.IssueFee != nil { + l = options.Size(x.IssueFee) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.MintFee != nil { + l = options.Size(x.MintFee) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.BurnFee != nil { + l = options.Size(x.BurnFee) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*UpdateFeesProposal) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.BurnFee != nil { + encoded, err := options.Marshal(x.BurnFee) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x2a + } + if x.MintFee != nil { + encoded, err := options.Marshal(x.MintFee) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x22 + } + if x.IssueFee != nil { + encoded, err := options.Marshal(x.IssueFee) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + if len(x.Description) > 0 { + i -= len(x.Description) + copy(dAtA[i:], x.Description) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Description))) + i-- + dAtA[i] = 0x12 + } + if len(x.Title) > 0 { + i -= len(x.Title) + copy(dAtA[i:], x.Title) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Title))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*UpdateFeesProposal) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: UpdateFeesProposal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: UpdateFeesProposal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field IssueFee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.IssueFee == nil { + x.IssueFee = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.IssueFee); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MintFee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.MintFee == nil { + x.MintFee = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.MintFee); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BurnFee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.BurnFee == nil { + x.BurnFee = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.BurnFee); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_UpdateFeesProposalWithDeposit protoreflect.MessageDescriptor + fd_UpdateFeesProposalWithDeposit_title protoreflect.FieldDescriptor + fd_UpdateFeesProposalWithDeposit_description protoreflect.FieldDescriptor + fd_UpdateFeesProposalWithDeposit_issue_fee protoreflect.FieldDescriptor + fd_UpdateFeesProposalWithDeposit_mint_fee protoreflect.FieldDescriptor + fd_UpdateFeesProposalWithDeposit_burn_fee protoreflect.FieldDescriptor + fd_UpdateFeesProposalWithDeposit_deposit protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_gov_proto_init() + md_UpdateFeesProposalWithDeposit = File_bitsong_fantoken_v1beta1_gov_proto.Messages().ByName("UpdateFeesProposalWithDeposit") + fd_UpdateFeesProposalWithDeposit_title = md_UpdateFeesProposalWithDeposit.Fields().ByName("title") + fd_UpdateFeesProposalWithDeposit_description = md_UpdateFeesProposalWithDeposit.Fields().ByName("description") + fd_UpdateFeesProposalWithDeposit_issue_fee = md_UpdateFeesProposalWithDeposit.Fields().ByName("issue_fee") + fd_UpdateFeesProposalWithDeposit_mint_fee = md_UpdateFeesProposalWithDeposit.Fields().ByName("mint_fee") + fd_UpdateFeesProposalWithDeposit_burn_fee = md_UpdateFeesProposalWithDeposit.Fields().ByName("burn_fee") + fd_UpdateFeesProposalWithDeposit_deposit = md_UpdateFeesProposalWithDeposit.Fields().ByName("deposit") +} + +var _ protoreflect.Message = (*fastReflection_UpdateFeesProposalWithDeposit)(nil) + +type fastReflection_UpdateFeesProposalWithDeposit UpdateFeesProposalWithDeposit + +func (x *UpdateFeesProposalWithDeposit) ProtoReflect() protoreflect.Message { + return (*fastReflection_UpdateFeesProposalWithDeposit)(x) +} + +func (x *UpdateFeesProposalWithDeposit) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_gov_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_UpdateFeesProposalWithDeposit_messageType fastReflection_UpdateFeesProposalWithDeposit_messageType +var _ protoreflect.MessageType = fastReflection_UpdateFeesProposalWithDeposit_messageType{} + +type fastReflection_UpdateFeesProposalWithDeposit_messageType struct{} + +func (x fastReflection_UpdateFeesProposalWithDeposit_messageType) Zero() protoreflect.Message { + return (*fastReflection_UpdateFeesProposalWithDeposit)(nil) +} +func (x fastReflection_UpdateFeesProposalWithDeposit_messageType) New() protoreflect.Message { + return new(fastReflection_UpdateFeesProposalWithDeposit) +} +func (x fastReflection_UpdateFeesProposalWithDeposit_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_UpdateFeesProposalWithDeposit +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_UpdateFeesProposalWithDeposit) Descriptor() protoreflect.MessageDescriptor { + return md_UpdateFeesProposalWithDeposit +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_UpdateFeesProposalWithDeposit) Type() protoreflect.MessageType { + return _fastReflection_UpdateFeesProposalWithDeposit_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_UpdateFeesProposalWithDeposit) New() protoreflect.Message { + return new(fastReflection_UpdateFeesProposalWithDeposit) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_UpdateFeesProposalWithDeposit) Interface() protoreflect.ProtoMessage { + return (*UpdateFeesProposalWithDeposit)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_UpdateFeesProposalWithDeposit) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Title != "" { + value := protoreflect.ValueOfString(x.Title) + if !f(fd_UpdateFeesProposalWithDeposit_title, value) { + return + } + } + if x.Description != "" { + value := protoreflect.ValueOfString(x.Description) + if !f(fd_UpdateFeesProposalWithDeposit_description, value) { + return + } + } + if x.IssueFee != "" { + value := protoreflect.ValueOfString(x.IssueFee) + if !f(fd_UpdateFeesProposalWithDeposit_issue_fee, value) { + return + } + } + if x.MintFee != "" { + value := protoreflect.ValueOfString(x.MintFee) + if !f(fd_UpdateFeesProposalWithDeposit_mint_fee, value) { + return + } + } + if x.BurnFee != "" { + value := protoreflect.ValueOfString(x.BurnFee) + if !f(fd_UpdateFeesProposalWithDeposit_burn_fee, value) { + return + } + } + if x.Deposit != "" { + value := protoreflect.ValueOfString(x.Deposit) + if !f(fd_UpdateFeesProposalWithDeposit_deposit, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_UpdateFeesProposalWithDeposit) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.title": + return x.Title != "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.description": + return x.Description != "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.issue_fee": + return x.IssueFee != "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.mint_fee": + return x.MintFee != "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.burn_fee": + return x.BurnFee != "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.deposit": + return x.Deposit != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_UpdateFeesProposalWithDeposit) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.title": + x.Title = "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.description": + x.Description = "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.issue_fee": + x.IssueFee = "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.mint_fee": + x.MintFee = "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.burn_fee": + x.BurnFee = "" + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.deposit": + x.Deposit = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_UpdateFeesProposalWithDeposit) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.title": + value := x.Title + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.description": + value := x.Description + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.issue_fee": + value := x.IssueFee + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.mint_fee": + value := x.MintFee + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.burn_fee": + value := x.BurnFee + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.deposit": + value := x.Deposit + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_UpdateFeesProposalWithDeposit) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.title": + x.Title = value.Interface().(string) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.description": + x.Description = value.Interface().(string) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.issue_fee": + x.IssueFee = value.Interface().(string) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.mint_fee": + x.MintFee = value.Interface().(string) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.burn_fee": + x.BurnFee = value.Interface().(string) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.deposit": + x.Deposit = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_UpdateFeesProposalWithDeposit) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.title": + panic(fmt.Errorf("field title of message bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit is not mutable")) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.description": + panic(fmt.Errorf("field description of message bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit is not mutable")) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.issue_fee": + panic(fmt.Errorf("field issue_fee of message bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit is not mutable")) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.mint_fee": + panic(fmt.Errorf("field mint_fee of message bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit is not mutable")) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.burn_fee": + panic(fmt.Errorf("field burn_fee of message bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit is not mutable")) + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.deposit": + panic(fmt.Errorf("field deposit of message bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_UpdateFeesProposalWithDeposit) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.title": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.description": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.issue_fee": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.mint_fee": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.burn_fee": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit.deposit": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_UpdateFeesProposalWithDeposit) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_UpdateFeesProposalWithDeposit) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_UpdateFeesProposalWithDeposit) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_UpdateFeesProposalWithDeposit) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_UpdateFeesProposalWithDeposit) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*UpdateFeesProposalWithDeposit) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Title) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Description) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.IssueFee) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.MintFee) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.BurnFee) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Deposit) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*UpdateFeesProposalWithDeposit) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Deposit) > 0 { + i -= len(x.Deposit) + copy(dAtA[i:], x.Deposit) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Deposit))) + i-- + dAtA[i] = 0x3a + } + if len(x.BurnFee) > 0 { + i -= len(x.BurnFee) + copy(dAtA[i:], x.BurnFee) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.BurnFee))) + i-- + dAtA[i] = 0x2a + } + if len(x.MintFee) > 0 { + i -= len(x.MintFee) + copy(dAtA[i:], x.MintFee) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MintFee))) + i-- + dAtA[i] = 0x22 + } + if len(x.IssueFee) > 0 { + i -= len(x.IssueFee) + copy(dAtA[i:], x.IssueFee) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.IssueFee))) + i-- + dAtA[i] = 0x1a + } + if len(x.Description) > 0 { + i -= len(x.Description) + copy(dAtA[i:], x.Description) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Description))) + i-- + dAtA[i] = 0x12 + } + if len(x.Title) > 0 { + i -= len(x.Title) + copy(dAtA[i:], x.Title) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Title))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*UpdateFeesProposalWithDeposit) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: UpdateFeesProposalWithDeposit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: UpdateFeesProposalWithDeposit: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field IssueFee", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.IssueFee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MintFee", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.MintFee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BurnFee", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.BurnFee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Deposit", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Deposit = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: bitsong/fantoken/v1beta1/gov.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type UpdateFeesProposal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + IssueFee *v1beta1.Coin `protobuf:"bytes,3,opt,name=issue_fee,json=issueFee,proto3" json:"issue_fee,omitempty"` + MintFee *v1beta1.Coin `protobuf:"bytes,4,opt,name=mint_fee,json=mintFee,proto3" json:"mint_fee,omitempty"` + BurnFee *v1beta1.Coin `protobuf:"bytes,5,opt,name=burn_fee,json=burnFee,proto3" json:"burn_fee,omitempty"` +} + +func (x *UpdateFeesProposal) Reset() { + *x = UpdateFeesProposal{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_gov_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFeesProposal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFeesProposal) ProtoMessage() {} + +// Deprecated: Use UpdateFeesProposal.ProtoReflect.Descriptor instead. +func (*UpdateFeesProposal) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_gov_proto_rawDescGZIP(), []int{0} +} + +func (x *UpdateFeesProposal) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *UpdateFeesProposal) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *UpdateFeesProposal) GetIssueFee() *v1beta1.Coin { + if x != nil { + return x.IssueFee + } + return nil +} + +func (x *UpdateFeesProposal) GetMintFee() *v1beta1.Coin { + if x != nil { + return x.MintFee + } + return nil +} + +func (x *UpdateFeesProposal) GetBurnFee() *v1beta1.Coin { + if x != nil { + return x.BurnFee + } + return nil +} + +type UpdateFeesProposalWithDeposit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + IssueFee string `protobuf:"bytes,3,opt,name=issue_fee,json=issueFee,proto3" json:"issue_fee,omitempty"` + MintFee string `protobuf:"bytes,4,opt,name=mint_fee,json=mintFee,proto3" json:"mint_fee,omitempty"` + BurnFee string `protobuf:"bytes,5,opt,name=burn_fee,json=burnFee,proto3" json:"burn_fee,omitempty"` + Deposit string `protobuf:"bytes,7,opt,name=deposit,proto3" json:"deposit,omitempty"` +} + +func (x *UpdateFeesProposalWithDeposit) Reset() { + *x = UpdateFeesProposalWithDeposit{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_gov_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFeesProposalWithDeposit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFeesProposalWithDeposit) ProtoMessage() {} + +// Deprecated: Use UpdateFeesProposalWithDeposit.ProtoReflect.Descriptor instead. +func (*UpdateFeesProposalWithDeposit) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_gov_proto_rawDescGZIP(), []int{1} +} + +func (x *UpdateFeesProposalWithDeposit) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *UpdateFeesProposalWithDeposit) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *UpdateFeesProposalWithDeposit) GetIssueFee() string { + if x != nil { + return x.IssueFee + } + return "" +} + +func (x *UpdateFeesProposalWithDeposit) GetMintFee() string { + if x != nil { + return x.MintFee + } + return "" +} + +func (x *UpdateFeesProposalWithDeposit) GetBurnFee() string { + if x != nil { + return x.BurnFee + } + return "" +} + +func (x *UpdateFeesProposalWithDeposit) GetDeposit() string { + if x != nil { + return x.Deposit + } + return "" +} + +var File_bitsong_fantoken_v1beta1_gov_proto protoreflect.FileDescriptor + +var file_bitsong_fantoken_v1beta1_gov_proto_rawDesc = []byte{ + 0x0a, 0x22, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, + 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, + 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc6, 0x02, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, + 0x65, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x66, 0x65, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x42, 0x18, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x22, 0x52, 0x08, 0x69, 0x73, 0x73, + 0x75, 0x65, 0x46, 0x65, 0x65, 0x12, 0x4d, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x66, 0x65, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x42, 0x17, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, + 0x3a, 0x22, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x22, 0x52, 0x07, 0x6d, 0x69, 0x6e, + 0x74, 0x46, 0x65, 0x65, 0x12, 0x4d, 0x0a, 0x08, 0x62, 0x75, 0x72, 0x6e, 0x5f, 0x66, 0x65, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x42, 0x17, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x62, 0x75, 0x72, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x22, 0x52, 0x07, 0x62, 0x75, 0x72, 0x6e, + 0x46, 0x65, 0x65, 0x3a, 0x08, 0x98, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xca, 0x01, + 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x5f, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x73, 0x73, 0x75, + 0x65, 0x46, 0x65, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x66, 0x65, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x62, 0x75, 0x72, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x62, 0x75, 0x72, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x3a, 0x04, 0x98, 0xa0, 0x1f, 0x01, 0x42, 0xe9, 0x01, 0xc8, 0xe1, 0x1e, + 0x00, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, + 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, + 0x08, 0x47, 0x6f, 0x76, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x62, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x42, 0x46, 0x58, 0xaa, 0x02, 0x18, 0x42, + 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x18, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, + 0x67, 0x5c, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0xe2, 0x02, 0x24, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x46, 0x61, 0x6e, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x42, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_bitsong_fantoken_v1beta1_gov_proto_rawDescOnce sync.Once + file_bitsong_fantoken_v1beta1_gov_proto_rawDescData = file_bitsong_fantoken_v1beta1_gov_proto_rawDesc +) + +func file_bitsong_fantoken_v1beta1_gov_proto_rawDescGZIP() []byte { + file_bitsong_fantoken_v1beta1_gov_proto_rawDescOnce.Do(func() { + file_bitsong_fantoken_v1beta1_gov_proto_rawDescData = protoimpl.X.CompressGZIP(file_bitsong_fantoken_v1beta1_gov_proto_rawDescData) + }) + return file_bitsong_fantoken_v1beta1_gov_proto_rawDescData +} + +var file_bitsong_fantoken_v1beta1_gov_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_bitsong_fantoken_v1beta1_gov_proto_goTypes = []interface{}{ + (*UpdateFeesProposal)(nil), // 0: bitsong.fantoken.v1beta1.UpdateFeesProposal + (*UpdateFeesProposalWithDeposit)(nil), // 1: bitsong.fantoken.v1beta1.UpdateFeesProposalWithDeposit + (*v1beta1.Coin)(nil), // 2: cosmos.base.v1beta1.Coin +} +var file_bitsong_fantoken_v1beta1_gov_proto_depIdxs = []int32{ + 2, // 0: bitsong.fantoken.v1beta1.UpdateFeesProposal.issue_fee:type_name -> cosmos.base.v1beta1.Coin + 2, // 1: bitsong.fantoken.v1beta1.UpdateFeesProposal.mint_fee:type_name -> cosmos.base.v1beta1.Coin + 2, // 2: bitsong.fantoken.v1beta1.UpdateFeesProposal.burn_fee:type_name -> cosmos.base.v1beta1.Coin + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_bitsong_fantoken_v1beta1_gov_proto_init() } +func file_bitsong_fantoken_v1beta1_gov_proto_init() { + if File_bitsong_fantoken_v1beta1_gov_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_bitsong_fantoken_v1beta1_gov_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFeesProposal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_gov_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFeesProposalWithDeposit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bitsong_fantoken_v1beta1_gov_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_bitsong_fantoken_v1beta1_gov_proto_goTypes, + DependencyIndexes: file_bitsong_fantoken_v1beta1_gov_proto_depIdxs, + MessageInfos: file_bitsong_fantoken_v1beta1_gov_proto_msgTypes, + }.Build() + File_bitsong_fantoken_v1beta1_gov_proto = out.File + file_bitsong_fantoken_v1beta1_gov_proto_rawDesc = nil + file_bitsong_fantoken_v1beta1_gov_proto_goTypes = nil + file_bitsong_fantoken_v1beta1_gov_proto_depIdxs = nil +} diff --git a/api/bitsong/fantoken/v1beta1/params.pulsar.go b/api/bitsong/fantoken/v1beta1/params.pulsar.go new file mode 100644 index 00000000..b107fbb2 --- /dev/null +++ b/api/bitsong/fantoken/v1beta1/params.pulsar.go @@ -0,0 +1,785 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package fantokenv1beta1 + +import ( + v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_Params protoreflect.MessageDescriptor + fd_Params_issue_fee protoreflect.FieldDescriptor + fd_Params_mint_fee protoreflect.FieldDescriptor + fd_Params_burn_fee protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_params_proto_init() + md_Params = File_bitsong_fantoken_v1beta1_params_proto.Messages().ByName("Params") + fd_Params_issue_fee = md_Params.Fields().ByName("issue_fee") + fd_Params_mint_fee = md_Params.Fields().ByName("mint_fee") + fd_Params_burn_fee = md_Params.Fields().ByName("burn_fee") +} + +var _ protoreflect.Message = (*fastReflection_Params)(nil) + +type fastReflection_Params Params + +func (x *Params) ProtoReflect() protoreflect.Message { + return (*fastReflection_Params)(x) +} + +func (x *Params) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_params_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Params_messageType fastReflection_Params_messageType +var _ protoreflect.MessageType = fastReflection_Params_messageType{} + +type fastReflection_Params_messageType struct{} + +func (x fastReflection_Params_messageType) Zero() protoreflect.Message { + return (*fastReflection_Params)(nil) +} +func (x fastReflection_Params_messageType) New() protoreflect.Message { + return new(fastReflection_Params) +} +func (x fastReflection_Params_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Params +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Params) Descriptor() protoreflect.MessageDescriptor { + return md_Params +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_Params) Type() protoreflect.MessageType { + return _fastReflection_Params_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Params) New() protoreflect.Message { + return new(fastReflection_Params) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Params) Interface() protoreflect.ProtoMessage { + return (*Params)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.IssueFee != nil { + value := protoreflect.ValueOfMessage(x.IssueFee.ProtoReflect()) + if !f(fd_Params_issue_fee, value) { + return + } + } + if x.MintFee != nil { + value := protoreflect.ValueOfMessage(x.MintFee.ProtoReflect()) + if !f(fd_Params_mint_fee, value) { + return + } + } + if x.BurnFee != nil { + value := protoreflect.ValueOfMessage(x.BurnFee.ProtoReflect()) + if !f(fd_Params_burn_fee, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.Params.issue_fee": + return x.IssueFee != nil + case "bitsong.fantoken.v1beta1.Params.mint_fee": + return x.MintFee != nil + case "bitsong.fantoken.v1beta1.Params.burn_fee": + return x.BurnFee != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.Params")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.Params does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.Params.issue_fee": + x.IssueFee = nil + case "bitsong.fantoken.v1beta1.Params.mint_fee": + x.MintFee = nil + case "bitsong.fantoken.v1beta1.Params.burn_fee": + x.BurnFee = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.Params")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.Params does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.Params.issue_fee": + value := x.IssueFee + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "bitsong.fantoken.v1beta1.Params.mint_fee": + value := x.MintFee + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "bitsong.fantoken.v1beta1.Params.burn_fee": + value := x.BurnFee + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.Params")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.Params does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.Params.issue_fee": + x.IssueFee = value.Message().Interface().(*v1beta1.Coin) + case "bitsong.fantoken.v1beta1.Params.mint_fee": + x.MintFee = value.Message().Interface().(*v1beta1.Coin) + case "bitsong.fantoken.v1beta1.Params.burn_fee": + x.BurnFee = value.Message().Interface().(*v1beta1.Coin) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.Params")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.Params does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.Params.issue_fee": + if x.IssueFee == nil { + x.IssueFee = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.IssueFee.ProtoReflect()) + case "bitsong.fantoken.v1beta1.Params.mint_fee": + if x.MintFee == nil { + x.MintFee = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.MintFee.ProtoReflect()) + case "bitsong.fantoken.v1beta1.Params.burn_fee": + if x.BurnFee == nil { + x.BurnFee = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.BurnFee.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.Params")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.Params does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_Params) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.Params.issue_fee": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "bitsong.fantoken.v1beta1.Params.mint_fee": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "bitsong.fantoken.v1beta1.Params.burn_fee": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.Params")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.Params does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_Params) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.Params", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_Params) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Params) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_Params) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Params) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.IssueFee != nil { + l = options.Size(x.IssueFee) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.MintFee != nil { + l = options.Size(x.MintFee) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.BurnFee != nil { + l = options.Size(x.BurnFee) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Params) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.BurnFee != nil { + encoded, err := options.Marshal(x.BurnFee) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + if x.MintFee != nil { + encoded, err := options.Marshal(x.MintFee) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if x.IssueFee != nil { + encoded, err := options.Marshal(x.IssueFee) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*Params) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Params: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field IssueFee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.IssueFee == nil { + x.IssueFee = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.IssueFee); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MintFee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.MintFee == nil { + x.MintFee = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.MintFee); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BurnFee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.BurnFee == nil { + x.BurnFee = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.BurnFee); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: bitsong/fantoken/v1beta1/params.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Params defines fantoken module's parameters +type Params struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IssueFee *v1beta1.Coin `protobuf:"bytes,1,opt,name=issue_fee,json=issueFee,proto3" json:"issue_fee,omitempty"` + MintFee *v1beta1.Coin `protobuf:"bytes,2,opt,name=mint_fee,json=mintFee,proto3" json:"mint_fee,omitempty"` + BurnFee *v1beta1.Coin `protobuf:"bytes,3,opt,name=burn_fee,json=burnFee,proto3" json:"burn_fee,omitempty"` +} + +func (x *Params) Reset() { + *x = Params{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_params_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Params) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Params) ProtoMessage() {} + +// Deprecated: Use Params.ProtoReflect.Descriptor instead. +func (*Params) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_params_proto_rawDescGZIP(), []int{0} +} + +func (x *Params) GetIssueFee() *v1beta1.Coin { + if x != nil { + return x.IssueFee + } + return nil +} + +func (x *Params) GetMintFee() *v1beta1.Coin { + if x != nil { + return x.MintFee + } + return nil +} + +func (x *Params) GetBurnFee() *v1beta1.Coin { + if x != nil { + return x.BurnFee + } + return nil +} + +var File_bitsong_fantoken_v1beta1_params_proto protoreflect.FileDescriptor + +var file_bitsong_fantoken_v1beta1_params_proto_rawDesc = []byte{ + 0x0a, 0x25, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, + 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, + 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x82, 0x02, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x18, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x22, 0x52, 0x08, 0x69, 0x73, 0x73, 0x75, + 0x65, 0x46, 0x65, 0x65, 0x12, 0x4d, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x66, 0x65, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x42, 0x17, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x22, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x74, + 0x46, 0x65, 0x65, 0x12, 0x4d, 0x0a, 0x08, 0x62, 0x75, 0x72, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x17, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x62, 0x75, 0x72, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x22, 0x52, 0x07, 0x62, 0x75, 0x72, 0x6e, 0x46, + 0x65, 0x65, 0x3a, 0x08, 0x98, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, 0x42, 0xec, 0x01, 0xc8, + 0xe1, 0x1e, 0x00, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, + 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x42, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x39, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x61, 0x6e, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x42, 0x46, + 0x58, 0xaa, 0x02, 0x18, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x46, 0x61, 0x6e, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x18, 0x42, + 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5c, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x24, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, + 0x67, 0x5c, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x1a, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_bitsong_fantoken_v1beta1_params_proto_rawDescOnce sync.Once + file_bitsong_fantoken_v1beta1_params_proto_rawDescData = file_bitsong_fantoken_v1beta1_params_proto_rawDesc +) + +func file_bitsong_fantoken_v1beta1_params_proto_rawDescGZIP() []byte { + file_bitsong_fantoken_v1beta1_params_proto_rawDescOnce.Do(func() { + file_bitsong_fantoken_v1beta1_params_proto_rawDescData = protoimpl.X.CompressGZIP(file_bitsong_fantoken_v1beta1_params_proto_rawDescData) + }) + return file_bitsong_fantoken_v1beta1_params_proto_rawDescData +} + +var file_bitsong_fantoken_v1beta1_params_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_bitsong_fantoken_v1beta1_params_proto_goTypes = []interface{}{ + (*Params)(nil), // 0: bitsong.fantoken.v1beta1.Params + (*v1beta1.Coin)(nil), // 1: cosmos.base.v1beta1.Coin +} +var file_bitsong_fantoken_v1beta1_params_proto_depIdxs = []int32{ + 1, // 0: bitsong.fantoken.v1beta1.Params.issue_fee:type_name -> cosmos.base.v1beta1.Coin + 1, // 1: bitsong.fantoken.v1beta1.Params.mint_fee:type_name -> cosmos.base.v1beta1.Coin + 1, // 2: bitsong.fantoken.v1beta1.Params.burn_fee:type_name -> cosmos.base.v1beta1.Coin + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_bitsong_fantoken_v1beta1_params_proto_init() } +func file_bitsong_fantoken_v1beta1_params_proto_init() { + if File_bitsong_fantoken_v1beta1_params_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_bitsong_fantoken_v1beta1_params_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Params); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bitsong_fantoken_v1beta1_params_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_bitsong_fantoken_v1beta1_params_proto_goTypes, + DependencyIndexes: file_bitsong_fantoken_v1beta1_params_proto_depIdxs, + MessageInfos: file_bitsong_fantoken_v1beta1_params_proto_msgTypes, + }.Build() + File_bitsong_fantoken_v1beta1_params_proto = out.File + file_bitsong_fantoken_v1beta1_params_proto_rawDesc = nil + file_bitsong_fantoken_v1beta1_params_proto_goTypes = nil + file_bitsong_fantoken_v1beta1_params_proto_depIdxs = nil +} diff --git a/api/bitsong/fantoken/v1beta1/query.pulsar.go b/api/bitsong/fantoken/v1beta1/query.pulsar.go new file mode 100644 index 00000000..48e45d3f --- /dev/null +++ b/api/bitsong/fantoken/v1beta1/query.pulsar.go @@ -0,0 +1,3218 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package fantokenv1beta1 + +import ( + v1beta1 "cosmossdk.io/api/cosmos/base/query/v1beta1" + _ "cosmossdk.io/api/cosmos/base/v1beta1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_QueryFanTokenRequest protoreflect.MessageDescriptor + fd_QueryFanTokenRequest_denom protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_query_proto_init() + md_QueryFanTokenRequest = File_bitsong_fantoken_v1beta1_query_proto.Messages().ByName("QueryFanTokenRequest") + fd_QueryFanTokenRequest_denom = md_QueryFanTokenRequest.Fields().ByName("denom") +} + +var _ protoreflect.Message = (*fastReflection_QueryFanTokenRequest)(nil) + +type fastReflection_QueryFanTokenRequest QueryFanTokenRequest + +func (x *QueryFanTokenRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryFanTokenRequest)(x) +} + +func (x *QueryFanTokenRequest) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_query_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryFanTokenRequest_messageType fastReflection_QueryFanTokenRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryFanTokenRequest_messageType{} + +type fastReflection_QueryFanTokenRequest_messageType struct{} + +func (x fastReflection_QueryFanTokenRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryFanTokenRequest)(nil) +} +func (x fastReflection_QueryFanTokenRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryFanTokenRequest) +} +func (x fastReflection_QueryFanTokenRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryFanTokenRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryFanTokenRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryFanTokenRequest +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryFanTokenRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryFanTokenRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryFanTokenRequest) New() protoreflect.Message { + return new(fastReflection_QueryFanTokenRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryFanTokenRequest) Interface() protoreflect.ProtoMessage { + return (*QueryFanTokenRequest)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryFanTokenRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_QueryFanTokenRequest_denom, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryFanTokenRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokenRequest.denom": + return x.Denom != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokenRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokenRequest does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokenRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokenRequest.denom": + x.Denom = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokenRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokenRequest does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryFanTokenRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokenRequest.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokenRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokenRequest does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokenRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokenRequest.denom": + x.Denom = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokenRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokenRequest does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokenRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokenRequest.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.QueryFanTokenRequest is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokenRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokenRequest does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryFanTokenRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokenRequest.denom": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokenRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokenRequest does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryFanTokenRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.QueryFanTokenRequest", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryFanTokenRequest) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokenRequest) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryFanTokenRequest) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryFanTokenRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryFanTokenRequest) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryFanTokenRequest) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryFanTokenRequest) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryFanTokenRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryFanTokenRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_QueryFanTokenResponse protoreflect.MessageDescriptor + fd_QueryFanTokenResponse_fantoken protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_query_proto_init() + md_QueryFanTokenResponse = File_bitsong_fantoken_v1beta1_query_proto.Messages().ByName("QueryFanTokenResponse") + fd_QueryFanTokenResponse_fantoken = md_QueryFanTokenResponse.Fields().ByName("fantoken") +} + +var _ protoreflect.Message = (*fastReflection_QueryFanTokenResponse)(nil) + +type fastReflection_QueryFanTokenResponse QueryFanTokenResponse + +func (x *QueryFanTokenResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryFanTokenResponse)(x) +} + +func (x *QueryFanTokenResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_query_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryFanTokenResponse_messageType fastReflection_QueryFanTokenResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryFanTokenResponse_messageType{} + +type fastReflection_QueryFanTokenResponse_messageType struct{} + +func (x fastReflection_QueryFanTokenResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryFanTokenResponse)(nil) +} +func (x fastReflection_QueryFanTokenResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryFanTokenResponse) +} +func (x fastReflection_QueryFanTokenResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryFanTokenResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryFanTokenResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryFanTokenResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryFanTokenResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryFanTokenResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryFanTokenResponse) New() protoreflect.Message { + return new(fastReflection_QueryFanTokenResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryFanTokenResponse) Interface() protoreflect.ProtoMessage { + return (*QueryFanTokenResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryFanTokenResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Fantoken != nil { + value := protoreflect.ValueOfMessage(x.Fantoken.ProtoReflect()) + if !f(fd_QueryFanTokenResponse_fantoken, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryFanTokenResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokenResponse.fantoken": + return x.Fantoken != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokenResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokenResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokenResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokenResponse.fantoken": + x.Fantoken = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokenResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokenResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryFanTokenResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokenResponse.fantoken": + value := x.Fantoken + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokenResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokenResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokenResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokenResponse.fantoken": + x.Fantoken = value.Message().Interface().(*FanToken) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokenResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokenResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokenResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokenResponse.fantoken": + if x.Fantoken == nil { + x.Fantoken = new(FanToken) + } + return protoreflect.ValueOfMessage(x.Fantoken.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokenResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokenResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryFanTokenResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokenResponse.fantoken": + m := new(FanToken) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokenResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokenResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryFanTokenResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.QueryFanTokenResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryFanTokenResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokenResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryFanTokenResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryFanTokenResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryFanTokenResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Fantoken != nil { + l = options.Size(x.Fantoken) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryFanTokenResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Fantoken != nil { + encoded, err := options.Marshal(x.Fantoken) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryFanTokenResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryFanTokenResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryFanTokenResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Fantoken", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Fantoken == nil { + x.Fantoken = &FanToken{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Fantoken); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_QueryFanTokensRequest protoreflect.MessageDescriptor + fd_QueryFanTokensRequest_authority protoreflect.FieldDescriptor + fd_QueryFanTokensRequest_pagination protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_query_proto_init() + md_QueryFanTokensRequest = File_bitsong_fantoken_v1beta1_query_proto.Messages().ByName("QueryFanTokensRequest") + fd_QueryFanTokensRequest_authority = md_QueryFanTokensRequest.Fields().ByName("authority") + fd_QueryFanTokensRequest_pagination = md_QueryFanTokensRequest.Fields().ByName("pagination") +} + +var _ protoreflect.Message = (*fastReflection_QueryFanTokensRequest)(nil) + +type fastReflection_QueryFanTokensRequest QueryFanTokensRequest + +func (x *QueryFanTokensRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryFanTokensRequest)(x) +} + +func (x *QueryFanTokensRequest) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_query_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryFanTokensRequest_messageType fastReflection_QueryFanTokensRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryFanTokensRequest_messageType{} + +type fastReflection_QueryFanTokensRequest_messageType struct{} + +func (x fastReflection_QueryFanTokensRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryFanTokensRequest)(nil) +} +func (x fastReflection_QueryFanTokensRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryFanTokensRequest) +} +func (x fastReflection_QueryFanTokensRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryFanTokensRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryFanTokensRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryFanTokensRequest +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryFanTokensRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryFanTokensRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryFanTokensRequest) New() protoreflect.Message { + return new(fastReflection_QueryFanTokensRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryFanTokensRequest) Interface() protoreflect.ProtoMessage { + return (*QueryFanTokensRequest)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryFanTokensRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Authority != "" { + value := protoreflect.ValueOfString(x.Authority) + if !f(fd_QueryFanTokensRequest_authority, value) { + return + } + } + if x.Pagination != nil { + value := protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + if !f(fd_QueryFanTokensRequest_pagination, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryFanTokensRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokensRequest.authority": + return x.Authority != "" + case "bitsong.fantoken.v1beta1.QueryFanTokensRequest.pagination": + return x.Pagination != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokensRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokensRequest does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokensRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokensRequest.authority": + x.Authority = "" + case "bitsong.fantoken.v1beta1.QueryFanTokensRequest.pagination": + x.Pagination = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokensRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokensRequest does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryFanTokensRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokensRequest.authority": + value := x.Authority + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.QueryFanTokensRequest.pagination": + value := x.Pagination + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokensRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokensRequest does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokensRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokensRequest.authority": + x.Authority = value.Interface().(string) + case "bitsong.fantoken.v1beta1.QueryFanTokensRequest.pagination": + x.Pagination = value.Message().Interface().(*v1beta1.PageRequest) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokensRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokensRequest does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokensRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokensRequest.pagination": + if x.Pagination == nil { + x.Pagination = new(v1beta1.PageRequest) + } + return protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + case "bitsong.fantoken.v1beta1.QueryFanTokensRequest.authority": + panic(fmt.Errorf("field authority of message bitsong.fantoken.v1beta1.QueryFanTokensRequest is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokensRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokensRequest does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryFanTokensRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokensRequest.authority": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.QueryFanTokensRequest.pagination": + m := new(v1beta1.PageRequest) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokensRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokensRequest does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryFanTokensRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.QueryFanTokensRequest", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryFanTokensRequest) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokensRequest) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryFanTokensRequest) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryFanTokensRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryFanTokensRequest) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Authority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Pagination != nil { + l = options.Size(x.Pagination) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryFanTokensRequest) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Pagination != nil { + encoded, err := options.Marshal(x.Pagination) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.Authority) > 0 { + i -= len(x.Authority) + copy(dAtA[i:], x.Authority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Authority))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryFanTokensRequest) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryFanTokensRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryFanTokensRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Pagination == nil { + x.Pagination = &v1beta1.PageRequest{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Pagination); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_QueryFanTokensResponse_1_list)(nil) + +type _QueryFanTokensResponse_1_list struct { + list *[]*FanToken +} + +func (x *_QueryFanTokensResponse_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_QueryFanTokensResponse_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_QueryFanTokensResponse_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*FanToken) + (*x.list)[i] = concreteValue +} + +func (x *_QueryFanTokensResponse_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*FanToken) + *x.list = append(*x.list, concreteValue) +} + +func (x *_QueryFanTokensResponse_1_list) AppendMutable() protoreflect.Value { + v := new(FanToken) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_QueryFanTokensResponse_1_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_QueryFanTokensResponse_1_list) NewElement() protoreflect.Value { + v := new(FanToken) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_QueryFanTokensResponse_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_QueryFanTokensResponse protoreflect.MessageDescriptor + fd_QueryFanTokensResponse_fantokens protoreflect.FieldDescriptor + fd_QueryFanTokensResponse_pagination protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_query_proto_init() + md_QueryFanTokensResponse = File_bitsong_fantoken_v1beta1_query_proto.Messages().ByName("QueryFanTokensResponse") + fd_QueryFanTokensResponse_fantokens = md_QueryFanTokensResponse.Fields().ByName("fantokens") + fd_QueryFanTokensResponse_pagination = md_QueryFanTokensResponse.Fields().ByName("pagination") +} + +var _ protoreflect.Message = (*fastReflection_QueryFanTokensResponse)(nil) + +type fastReflection_QueryFanTokensResponse QueryFanTokensResponse + +func (x *QueryFanTokensResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryFanTokensResponse)(x) +} + +func (x *QueryFanTokensResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_query_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryFanTokensResponse_messageType fastReflection_QueryFanTokensResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryFanTokensResponse_messageType{} + +type fastReflection_QueryFanTokensResponse_messageType struct{} + +func (x fastReflection_QueryFanTokensResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryFanTokensResponse)(nil) +} +func (x fastReflection_QueryFanTokensResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryFanTokensResponse) +} +func (x fastReflection_QueryFanTokensResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryFanTokensResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryFanTokensResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryFanTokensResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryFanTokensResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryFanTokensResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryFanTokensResponse) New() protoreflect.Message { + return new(fastReflection_QueryFanTokensResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryFanTokensResponse) Interface() protoreflect.ProtoMessage { + return (*QueryFanTokensResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryFanTokensResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Fantokens) != 0 { + value := protoreflect.ValueOfList(&_QueryFanTokensResponse_1_list{list: &x.Fantokens}) + if !f(fd_QueryFanTokensResponse_fantokens, value) { + return + } + } + if x.Pagination != nil { + value := protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + if !f(fd_QueryFanTokensResponse_pagination, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryFanTokensResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokensResponse.fantokens": + return len(x.Fantokens) != 0 + case "bitsong.fantoken.v1beta1.QueryFanTokensResponse.pagination": + return x.Pagination != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokensResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokensResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokensResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokensResponse.fantokens": + x.Fantokens = nil + case "bitsong.fantoken.v1beta1.QueryFanTokensResponse.pagination": + x.Pagination = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokensResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokensResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryFanTokensResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokensResponse.fantokens": + if len(x.Fantokens) == 0 { + return protoreflect.ValueOfList(&_QueryFanTokensResponse_1_list{}) + } + listValue := &_QueryFanTokensResponse_1_list{list: &x.Fantokens} + return protoreflect.ValueOfList(listValue) + case "bitsong.fantoken.v1beta1.QueryFanTokensResponse.pagination": + value := x.Pagination + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokensResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokensResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokensResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokensResponse.fantokens": + lv := value.List() + clv := lv.(*_QueryFanTokensResponse_1_list) + x.Fantokens = *clv.list + case "bitsong.fantoken.v1beta1.QueryFanTokensResponse.pagination": + x.Pagination = value.Message().Interface().(*v1beta1.PageResponse) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokensResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokensResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokensResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokensResponse.fantokens": + if x.Fantokens == nil { + x.Fantokens = []*FanToken{} + } + value := &_QueryFanTokensResponse_1_list{list: &x.Fantokens} + return protoreflect.ValueOfList(value) + case "bitsong.fantoken.v1beta1.QueryFanTokensResponse.pagination": + if x.Pagination == nil { + x.Pagination = new(v1beta1.PageResponse) + } + return protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokensResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokensResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryFanTokensResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryFanTokensResponse.fantokens": + list := []*FanToken{} + return protoreflect.ValueOfList(&_QueryFanTokensResponse_1_list{list: &list}) + case "bitsong.fantoken.v1beta1.QueryFanTokensResponse.pagination": + m := new(v1beta1.PageResponse) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryFanTokensResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryFanTokensResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryFanTokensResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.QueryFanTokensResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryFanTokensResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryFanTokensResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryFanTokensResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryFanTokensResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryFanTokensResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.Fantokens) > 0 { + for _, e := range x.Fantokens { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.Pagination != nil { + l = options.Size(x.Pagination) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryFanTokensResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Pagination != nil { + encoded, err := options.Marshal(x.Pagination) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.Fantokens) > 0 { + for iNdEx := len(x.Fantokens) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Fantokens[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryFanTokensResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryFanTokensResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryFanTokensResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Fantokens", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Fantokens = append(x.Fantokens, &FanToken{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Fantokens[len(x.Fantokens)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Pagination == nil { + x.Pagination = &v1beta1.PageResponse{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Pagination); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_QueryParamsRequest protoreflect.MessageDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_query_proto_init() + md_QueryParamsRequest = File_bitsong_fantoken_v1beta1_query_proto.Messages().ByName("QueryParamsRequest") +} + +var _ protoreflect.Message = (*fastReflection_QueryParamsRequest)(nil) + +type fastReflection_QueryParamsRequest QueryParamsRequest + +func (x *QueryParamsRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryParamsRequest)(x) +} + +func (x *QueryParamsRequest) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_query_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryParamsRequest_messageType fastReflection_QueryParamsRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryParamsRequest_messageType{} + +type fastReflection_QueryParamsRequest_messageType struct{} + +func (x fastReflection_QueryParamsRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryParamsRequest)(nil) +} +func (x fastReflection_QueryParamsRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryParamsRequest) +} +func (x fastReflection_QueryParamsRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryParamsRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryParamsRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryParamsRequest +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryParamsRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryParamsRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryParamsRequest) New() protoreflect.Message { + return new(fastReflection_QueryParamsRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryParamsRequest) Interface() protoreflect.ProtoMessage { + return (*QueryParamsRequest)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryParamsRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryParamsRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryParamsRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryParamsRequest does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryParamsRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryParamsRequest does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryParamsRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryParamsRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryParamsRequest does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryParamsRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryParamsRequest does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryParamsRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryParamsRequest does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryParamsRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryParamsRequest")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryParamsRequest does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryParamsRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.QueryParamsRequest", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryParamsRequest) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsRequest) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryParamsRequest) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryParamsRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryParamsRequest) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryParamsRequest) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryParamsRequest) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_QueryParamsResponse protoreflect.MessageDescriptor + fd_QueryParamsResponse_params protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_query_proto_init() + md_QueryParamsResponse = File_bitsong_fantoken_v1beta1_query_proto.Messages().ByName("QueryParamsResponse") + fd_QueryParamsResponse_params = md_QueryParamsResponse.Fields().ByName("params") +} + +var _ protoreflect.Message = (*fastReflection_QueryParamsResponse)(nil) + +type fastReflection_QueryParamsResponse QueryParamsResponse + +func (x *QueryParamsResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryParamsResponse)(x) +} + +func (x *QueryParamsResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_query_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryParamsResponse_messageType fastReflection_QueryParamsResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryParamsResponse_messageType{} + +type fastReflection_QueryParamsResponse_messageType struct{} + +func (x fastReflection_QueryParamsResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryParamsResponse)(nil) +} +func (x fastReflection_QueryParamsResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryParamsResponse) +} +func (x fastReflection_QueryParamsResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryParamsResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryParamsResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryParamsResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryParamsResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryParamsResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryParamsResponse) New() protoreflect.Message { + return new(fastReflection_QueryParamsResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryParamsResponse) Interface() protoreflect.ProtoMessage { + return (*QueryParamsResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryParamsResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Params != nil { + value := protoreflect.ValueOfMessage(x.Params.ProtoReflect()) + if !f(fd_QueryParamsResponse_params, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryParamsResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryParamsResponse.params": + return x.Params != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryParamsResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryParamsResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryParamsResponse.params": + x.Params = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryParamsResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryParamsResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryParamsResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.QueryParamsResponse.params": + value := x.Params + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryParamsResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryParamsResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryParamsResponse.params": + x.Params = value.Message().Interface().(*Params) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryParamsResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryParamsResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryParamsResponse.params": + if x.Params == nil { + x.Params = new(Params) + } + return protoreflect.ValueOfMessage(x.Params.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryParamsResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryParamsResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryParamsResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.QueryParamsResponse.params": + m := new(Params) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.QueryParamsResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.QueryParamsResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryParamsResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.QueryParamsResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryParamsResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryParamsResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryParamsResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryParamsResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Params != nil { + l = options.Size(x.Params) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryParamsResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Params != nil { + encoded, err := options.Marshal(x.Params) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryParamsResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Params == nil { + x.Params = &Params{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Params); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: bitsong/fantoken/v1beta1/query.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// QueryFanTokenRequest is request type for the Query/FanToken RPC method +type QueryFanTokenRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (x *QueryFanTokenRequest) Reset() { + *x = QueryFanTokenRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_query_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryFanTokenRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryFanTokenRequest) ProtoMessage() {} + +// Deprecated: Use QueryFanTokenRequest.ProtoReflect.Descriptor instead. +func (*QueryFanTokenRequest) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_query_proto_rawDescGZIP(), []int{0} +} + +func (x *QueryFanTokenRequest) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +// QueryFanTokenResponse is response type for the Query/FanToken RPC method +type QueryFanTokenResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fantoken *FanToken `protobuf:"bytes,1,opt,name=fantoken,proto3" json:"fantoken,omitempty"` +} + +func (x *QueryFanTokenResponse) Reset() { + *x = QueryFanTokenResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_query_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryFanTokenResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryFanTokenResponse) ProtoMessage() {} + +// Deprecated: Use QueryFanTokenResponse.ProtoReflect.Descriptor instead. +func (*QueryFanTokenResponse) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_query_proto_rawDescGZIP(), []int{1} +} + +func (x *QueryFanTokenResponse) GetFantoken() *FanToken { + if x != nil { + return x.Fantoken + } + return nil +} + +// QueryFanTokensRequest is request type for the Query/FanTokens RPC method +type QueryFanTokensRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + // pagination defines an optional pagination for the request. + Pagination *v1beta1.PageRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (x *QueryFanTokensRequest) Reset() { + *x = QueryFanTokensRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_query_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryFanTokensRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryFanTokensRequest) ProtoMessage() {} + +// Deprecated: Use QueryFanTokensRequest.ProtoReflect.Descriptor instead. +func (*QueryFanTokensRequest) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_query_proto_rawDescGZIP(), []int{2} +} + +func (x *QueryFanTokensRequest) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +func (x *QueryFanTokensRequest) GetPagination() *v1beta1.PageRequest { + if x != nil { + return x.Pagination + } + return nil +} + +// QueryFanTokensResponse is response type for the Query/FanTokens RPC method +type QueryFanTokensResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fantokens []*FanToken `protobuf:"bytes,1,rep,name=fantokens,proto3" json:"fantokens,omitempty"` + Pagination *v1beta1.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (x *QueryFanTokensResponse) Reset() { + *x = QueryFanTokensResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_query_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryFanTokensResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryFanTokensResponse) ProtoMessage() {} + +// Deprecated: Use QueryFanTokensResponse.ProtoReflect.Descriptor instead. +func (*QueryFanTokensResponse) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_query_proto_rawDescGZIP(), []int{3} +} + +func (x *QueryFanTokensResponse) GetFantokens() []*FanToken { + if x != nil { + return x.Fantokens + } + return nil +} + +func (x *QueryFanTokensResponse) GetPagination() *v1beta1.PageResponse { + if x != nil { + return x.Pagination + } + return nil +} + +// QueryParametersRequest is request type for the Query/Parameters RPC method +type QueryParamsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *QueryParamsRequest) Reset() { + *x = QueryParamsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_query_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryParamsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryParamsRequest) ProtoMessage() {} + +// Deprecated: Use QueryParamsRequest.ProtoReflect.Descriptor instead. +func (*QueryParamsRequest) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_query_proto_rawDescGZIP(), []int{4} +} + +// QueryParametersResponse is response type for the Query/Parameters RPC method +type QueryParamsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Params *Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params,omitempty"` +} + +func (x *QueryParamsResponse) Reset() { + *x = QueryParamsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_query_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryParamsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryParamsResponse) ProtoMessage() {} + +// Deprecated: Use QueryParamsResponse.ProtoReflect.Descriptor instead. +func (*QueryParamsResponse) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_query_proto_rawDescGZIP(), []int{5} +} + +func (x *QueryParamsResponse) GetParams() *Params { + if x != nil { + return x.Params + } + return nil +} + +var File_bitsong_fantoken_v1beta1_query_proto protoreflect.FileDescriptor + +var file_bitsong_fantoken_v1beta1_query_proto_rawDesc = []byte{ + 0x0a, 0x24, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, + 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x2a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, + 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x27, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x62, 0x69, 0x74, 0x73, 0x6f, + 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x2c, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x57, + 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x66, 0x61, 0x6e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x08, 0x66, + 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7d, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x46, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa3, 0x01, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, + 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x09, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x14, 0x0a, 0x12, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x55, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x04, 0xc8, 0xde, 0x1f, + 0x00, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x32, 0xd6, 0x03, 0x0a, 0x05, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x12, 0x9c, 0x01, 0x0a, 0x08, 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x2e, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2f, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x62, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x7d, 0x12, 0x9b, 0x01, 0x0a, 0x09, 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x12, 0x2f, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x30, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x46, 0x61, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x62, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x12, 0x8f, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x62, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x62, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, + 0x12, 0x20, 0x2f, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x42, 0xe7, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, + 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x39, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x61, 0x6e, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x42, + 0x46, 0x58, 0xaa, 0x02, 0x18, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x46, 0x61, 0x6e, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x18, + 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x24, 0x42, 0x69, 0x74, 0x73, 0x6f, + 0x6e, 0x67, 0x5c, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x1a, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x46, 0x61, 0x6e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_bitsong_fantoken_v1beta1_query_proto_rawDescOnce sync.Once + file_bitsong_fantoken_v1beta1_query_proto_rawDescData = file_bitsong_fantoken_v1beta1_query_proto_rawDesc +) + +func file_bitsong_fantoken_v1beta1_query_proto_rawDescGZIP() []byte { + file_bitsong_fantoken_v1beta1_query_proto_rawDescOnce.Do(func() { + file_bitsong_fantoken_v1beta1_query_proto_rawDescData = protoimpl.X.CompressGZIP(file_bitsong_fantoken_v1beta1_query_proto_rawDescData) + }) + return file_bitsong_fantoken_v1beta1_query_proto_rawDescData +} + +var file_bitsong_fantoken_v1beta1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_bitsong_fantoken_v1beta1_query_proto_goTypes = []interface{}{ + (*QueryFanTokenRequest)(nil), // 0: bitsong.fantoken.v1beta1.QueryFanTokenRequest + (*QueryFanTokenResponse)(nil), // 1: bitsong.fantoken.v1beta1.QueryFanTokenResponse + (*QueryFanTokensRequest)(nil), // 2: bitsong.fantoken.v1beta1.QueryFanTokensRequest + (*QueryFanTokensResponse)(nil), // 3: bitsong.fantoken.v1beta1.QueryFanTokensResponse + (*QueryParamsRequest)(nil), // 4: bitsong.fantoken.v1beta1.QueryParamsRequest + (*QueryParamsResponse)(nil), // 5: bitsong.fantoken.v1beta1.QueryParamsResponse + (*FanToken)(nil), // 6: bitsong.fantoken.v1beta1.FanToken + (*v1beta1.PageRequest)(nil), // 7: cosmos.base.query.v1beta1.PageRequest + (*v1beta1.PageResponse)(nil), // 8: cosmos.base.query.v1beta1.PageResponse + (*Params)(nil), // 9: bitsong.fantoken.v1beta1.Params +} +var file_bitsong_fantoken_v1beta1_query_proto_depIdxs = []int32{ + 6, // 0: bitsong.fantoken.v1beta1.QueryFanTokenResponse.fantoken:type_name -> bitsong.fantoken.v1beta1.FanToken + 7, // 1: bitsong.fantoken.v1beta1.QueryFanTokensRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 6, // 2: bitsong.fantoken.v1beta1.QueryFanTokensResponse.fantokens:type_name -> bitsong.fantoken.v1beta1.FanToken + 8, // 3: bitsong.fantoken.v1beta1.QueryFanTokensResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 9, // 4: bitsong.fantoken.v1beta1.QueryParamsResponse.params:type_name -> bitsong.fantoken.v1beta1.Params + 0, // 5: bitsong.fantoken.v1beta1.Query.FanToken:input_type -> bitsong.fantoken.v1beta1.QueryFanTokenRequest + 2, // 6: bitsong.fantoken.v1beta1.Query.FanTokens:input_type -> bitsong.fantoken.v1beta1.QueryFanTokensRequest + 4, // 7: bitsong.fantoken.v1beta1.Query.Params:input_type -> bitsong.fantoken.v1beta1.QueryParamsRequest + 1, // 8: bitsong.fantoken.v1beta1.Query.FanToken:output_type -> bitsong.fantoken.v1beta1.QueryFanTokenResponse + 3, // 9: bitsong.fantoken.v1beta1.Query.FanTokens:output_type -> bitsong.fantoken.v1beta1.QueryFanTokensResponse + 5, // 10: bitsong.fantoken.v1beta1.Query.Params:output_type -> bitsong.fantoken.v1beta1.QueryParamsResponse + 8, // [8:11] is the sub-list for method output_type + 5, // [5:8] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_bitsong_fantoken_v1beta1_query_proto_init() } +func file_bitsong_fantoken_v1beta1_query_proto_init() { + if File_bitsong_fantoken_v1beta1_query_proto != nil { + return + } + file_bitsong_fantoken_v1beta1_fantoken_proto_init() + file_bitsong_fantoken_v1beta1_params_proto_init() + if !protoimpl.UnsafeEnabled { + file_bitsong_fantoken_v1beta1_query_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryFanTokenRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_query_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryFanTokenResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_query_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryFanTokensRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_query_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryFanTokensResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_query_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryParamsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_query_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryParamsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bitsong_fantoken_v1beta1_query_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_bitsong_fantoken_v1beta1_query_proto_goTypes, + DependencyIndexes: file_bitsong_fantoken_v1beta1_query_proto_depIdxs, + MessageInfos: file_bitsong_fantoken_v1beta1_query_proto_msgTypes, + }.Build() + File_bitsong_fantoken_v1beta1_query_proto = out.File + file_bitsong_fantoken_v1beta1_query_proto_rawDesc = nil + file_bitsong_fantoken_v1beta1_query_proto_goTypes = nil + file_bitsong_fantoken_v1beta1_query_proto_depIdxs = nil +} diff --git a/api/bitsong/fantoken/v1beta1/query_grpc.pb.go b/api/bitsong/fantoken/v1beta1/query_grpc.pb.go new file mode 100644 index 00000000..daddd6f8 --- /dev/null +++ b/api/bitsong/fantoken/v1beta1/query_grpc.pb.go @@ -0,0 +1,207 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.5.1 +// - protoc (unknown) +// source: bitsong/fantoken/v1beta1/query.proto + +package fantokenv1beta1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Query_FanToken_FullMethodName = "/bitsong.fantoken.v1beta1.Query/FanToken" + Query_FanTokens_FullMethodName = "/bitsong.fantoken.v1beta1.Query/FanTokens" + Query_Params_FullMethodName = "/bitsong.fantoken.v1beta1.Query/Params" +) + +// QueryClient is the client API for Query service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// Query creates service with fantoken as RPC +type QueryClient interface { + // FanToken returns fantoken with fantoken name + FanToken(ctx context.Context, in *QueryFanTokenRequest, opts ...grpc.CallOption) (*QueryFanTokenResponse, error) + // FanTokens returns the fantoken list + FanTokens(ctx context.Context, in *QueryFanTokensRequest, opts ...grpc.CallOption) (*QueryFanTokensResponse, error) + // Params queries the fantoken parameters + Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) +} + +type queryClient struct { + cc grpc.ClientConnInterface +} + +func NewQueryClient(cc grpc.ClientConnInterface) QueryClient { + return &queryClient{cc} +} + +func (c *queryClient) FanToken(ctx context.Context, in *QueryFanTokenRequest, opts ...grpc.CallOption) (*QueryFanTokenResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(QueryFanTokenResponse) + err := c.cc.Invoke(ctx, Query_FanToken_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) FanTokens(ctx context.Context, in *QueryFanTokensRequest, opts ...grpc.CallOption) (*QueryFanTokensResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(QueryFanTokensResponse) + err := c.cc.Invoke(ctx, Query_FanTokens_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(QueryParamsResponse) + err := c.cc.Invoke(ctx, Query_Params_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// QueryServer is the server API for Query service. +// All implementations must embed UnimplementedQueryServer +// for forward compatibility. +// +// Query creates service with fantoken as RPC +type QueryServer interface { + // FanToken returns fantoken with fantoken name + FanToken(context.Context, *QueryFanTokenRequest) (*QueryFanTokenResponse, error) + // FanTokens returns the fantoken list + FanTokens(context.Context, *QueryFanTokensRequest) (*QueryFanTokensResponse, error) + // Params queries the fantoken parameters + Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + mustEmbedUnimplementedQueryServer() +} + +// UnimplementedQueryServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedQueryServer struct{} + +func (UnimplementedQueryServer) FanToken(context.Context, *QueryFanTokenRequest) (*QueryFanTokenResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FanToken not implemented") +} +func (UnimplementedQueryServer) FanTokens(context.Context, *QueryFanTokensRequest) (*QueryFanTokensResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FanTokens not implemented") +} +func (UnimplementedQueryServer) Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") +} +func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {} +func (UnimplementedQueryServer) testEmbeddedByValue() {} + +// UnsafeQueryServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to QueryServer will +// result in compilation errors. +type UnsafeQueryServer interface { + mustEmbedUnimplementedQueryServer() +} + +func RegisterQueryServer(s grpc.ServiceRegistrar, srv QueryServer) { + // If the following call pancis, it indicates UnimplementedQueryServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&Query_ServiceDesc, srv) +} + +func _Query_FanToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryFanTokenRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).FanToken(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_FanToken_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).FanToken(ctx, req.(*QueryFanTokenRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_FanTokens_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryFanTokensRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).FanTokens(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_FanTokens_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).FanTokens(ctx, req.(*QueryFanTokensRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryParamsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Params(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_Params_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Params(ctx, req.(*QueryParamsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Query_ServiceDesc is the grpc.ServiceDesc for Query service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Query_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "bitsong.fantoken.v1beta1.Query", + HandlerType: (*QueryServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "FanToken", + Handler: _Query_FanToken_Handler, + }, + { + MethodName: "FanTokens", + Handler: _Query_FanTokens_Handler, + }, + { + MethodName: "Params", + Handler: _Query_Params_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "bitsong/fantoken/v1beta1/query.proto", +} diff --git a/api/bitsong/fantoken/v1beta1/tx.pulsar.go b/api/bitsong/fantoken/v1beta1/tx.pulsar.go new file mode 100644 index 00000000..9c20a68d --- /dev/null +++ b/api/bitsong/fantoken/v1beta1/tx.pulsar.go @@ -0,0 +1,8443 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package fantokenv1beta1 + +import ( + v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" + _ "cosmossdk.io/api/cosmos/msg/v1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_MsgIssue protoreflect.MessageDescriptor + fd_MsgIssue_symbol protoreflect.FieldDescriptor + fd_MsgIssue_name protoreflect.FieldDescriptor + fd_MsgIssue_max_supply protoreflect.FieldDescriptor + fd_MsgIssue_authority protoreflect.FieldDescriptor + fd_MsgIssue_minter protoreflect.FieldDescriptor + fd_MsgIssue_uri protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgIssue = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgIssue") + fd_MsgIssue_symbol = md_MsgIssue.Fields().ByName("symbol") + fd_MsgIssue_name = md_MsgIssue.Fields().ByName("name") + fd_MsgIssue_max_supply = md_MsgIssue.Fields().ByName("max_supply") + fd_MsgIssue_authority = md_MsgIssue.Fields().ByName("authority") + fd_MsgIssue_minter = md_MsgIssue.Fields().ByName("minter") + fd_MsgIssue_uri = md_MsgIssue.Fields().ByName("uri") +} + +var _ protoreflect.Message = (*fastReflection_MsgIssue)(nil) + +type fastReflection_MsgIssue MsgIssue + +func (x *MsgIssue) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgIssue)(x) +} + +func (x *MsgIssue) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgIssue_messageType fastReflection_MsgIssue_messageType +var _ protoreflect.MessageType = fastReflection_MsgIssue_messageType{} + +type fastReflection_MsgIssue_messageType struct{} + +func (x fastReflection_MsgIssue_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgIssue)(nil) +} +func (x fastReflection_MsgIssue_messageType) New() protoreflect.Message { + return new(fastReflection_MsgIssue) +} +func (x fastReflection_MsgIssue_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgIssue +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgIssue) Descriptor() protoreflect.MessageDescriptor { + return md_MsgIssue +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgIssue) Type() protoreflect.MessageType { + return _fastReflection_MsgIssue_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgIssue) New() protoreflect.Message { + return new(fastReflection_MsgIssue) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgIssue) Interface() protoreflect.ProtoMessage { + return (*MsgIssue)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgIssue) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Symbol != "" { + value := protoreflect.ValueOfString(x.Symbol) + if !f(fd_MsgIssue_symbol, value) { + return + } + } + if x.Name != "" { + value := protoreflect.ValueOfString(x.Name) + if !f(fd_MsgIssue_name, value) { + return + } + } + if x.MaxSupply != "" { + value := protoreflect.ValueOfString(x.MaxSupply) + if !f(fd_MsgIssue_max_supply, value) { + return + } + } + if x.Authority != "" { + value := protoreflect.ValueOfString(x.Authority) + if !f(fd_MsgIssue_authority, value) { + return + } + } + if x.Minter != "" { + value := protoreflect.ValueOfString(x.Minter) + if !f(fd_MsgIssue_minter, value) { + return + } + } + if x.Uri != "" { + value := protoreflect.ValueOfString(x.Uri) + if !f(fd_MsgIssue_uri, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgIssue) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgIssue.symbol": + return x.Symbol != "" + case "bitsong.fantoken.v1beta1.MsgIssue.name": + return x.Name != "" + case "bitsong.fantoken.v1beta1.MsgIssue.max_supply": + return x.MaxSupply != "" + case "bitsong.fantoken.v1beta1.MsgIssue.authority": + return x.Authority != "" + case "bitsong.fantoken.v1beta1.MsgIssue.minter": + return x.Minter != "" + case "bitsong.fantoken.v1beta1.MsgIssue.uri": + return x.Uri != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgIssue")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgIssue does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgIssue) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgIssue.symbol": + x.Symbol = "" + case "bitsong.fantoken.v1beta1.MsgIssue.name": + x.Name = "" + case "bitsong.fantoken.v1beta1.MsgIssue.max_supply": + x.MaxSupply = "" + case "bitsong.fantoken.v1beta1.MsgIssue.authority": + x.Authority = "" + case "bitsong.fantoken.v1beta1.MsgIssue.minter": + x.Minter = "" + case "bitsong.fantoken.v1beta1.MsgIssue.uri": + x.Uri = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgIssue")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgIssue does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgIssue) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgIssue.symbol": + value := x.Symbol + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgIssue.name": + value := x.Name + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgIssue.max_supply": + value := x.MaxSupply + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgIssue.authority": + value := x.Authority + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgIssue.minter": + value := x.Minter + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgIssue.uri": + value := x.Uri + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgIssue")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgIssue does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgIssue) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgIssue.symbol": + x.Symbol = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgIssue.name": + x.Name = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgIssue.max_supply": + x.MaxSupply = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgIssue.authority": + x.Authority = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgIssue.minter": + x.Minter = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgIssue.uri": + x.Uri = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgIssue")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgIssue does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgIssue) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgIssue.symbol": + panic(fmt.Errorf("field symbol of message bitsong.fantoken.v1beta1.MsgIssue is not mutable")) + case "bitsong.fantoken.v1beta1.MsgIssue.name": + panic(fmt.Errorf("field name of message bitsong.fantoken.v1beta1.MsgIssue is not mutable")) + case "bitsong.fantoken.v1beta1.MsgIssue.max_supply": + panic(fmt.Errorf("field max_supply of message bitsong.fantoken.v1beta1.MsgIssue is not mutable")) + case "bitsong.fantoken.v1beta1.MsgIssue.authority": + panic(fmt.Errorf("field authority of message bitsong.fantoken.v1beta1.MsgIssue is not mutable")) + case "bitsong.fantoken.v1beta1.MsgIssue.minter": + panic(fmt.Errorf("field minter of message bitsong.fantoken.v1beta1.MsgIssue is not mutable")) + case "bitsong.fantoken.v1beta1.MsgIssue.uri": + panic(fmt.Errorf("field uri of message bitsong.fantoken.v1beta1.MsgIssue is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgIssue")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgIssue does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgIssue) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgIssue.symbol": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgIssue.name": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgIssue.max_supply": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgIssue.authority": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgIssue.minter": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgIssue.uri": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgIssue")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgIssue does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgIssue) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgIssue", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgIssue) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgIssue) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgIssue) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgIssue) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgIssue) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Symbol) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Name) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.MaxSupply) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Authority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Minter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Uri) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgIssue) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Uri) > 0 { + i -= len(x.Uri) + copy(dAtA[i:], x.Uri) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Uri))) + i-- + dAtA[i] = 0x32 + } + if len(x.Minter) > 0 { + i -= len(x.Minter) + copy(dAtA[i:], x.Minter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Minter))) + i-- + dAtA[i] = 0x2a + } + if len(x.Authority) > 0 { + i -= len(x.Authority) + copy(dAtA[i:], x.Authority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Authority))) + i-- + dAtA[i] = 0x22 + } + if len(x.MaxSupply) > 0 { + i -= len(x.MaxSupply) + copy(dAtA[i:], x.MaxSupply) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MaxSupply))) + i-- + dAtA[i] = 0x1a + } + if len(x.Name) > 0 { + i -= len(x.Name) + copy(dAtA[i:], x.Name) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Name))) + i-- + dAtA[i] = 0x12 + } + if len(x.Symbol) > 0 { + i -= len(x.Symbol) + copy(dAtA[i:], x.Symbol) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Symbol))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgIssue) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgIssue: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgIssue: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Symbol", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Symbol = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MaxSupply", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.MaxSupply = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Minter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Minter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Uri", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Uri = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgIssueResponse protoreflect.MessageDescriptor + fd_MsgIssueResponse_denom protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgIssueResponse = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgIssueResponse") + fd_MsgIssueResponse_denom = md_MsgIssueResponse.Fields().ByName("denom") +} + +var _ protoreflect.Message = (*fastReflection_MsgIssueResponse)(nil) + +type fastReflection_MsgIssueResponse MsgIssueResponse + +func (x *MsgIssueResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgIssueResponse)(x) +} + +func (x *MsgIssueResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgIssueResponse_messageType fastReflection_MsgIssueResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgIssueResponse_messageType{} + +type fastReflection_MsgIssueResponse_messageType struct{} + +func (x fastReflection_MsgIssueResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgIssueResponse)(nil) +} +func (x fastReflection_MsgIssueResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgIssueResponse) +} +func (x fastReflection_MsgIssueResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgIssueResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgIssueResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgIssueResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgIssueResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgIssueResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgIssueResponse) New() protoreflect.Message { + return new(fastReflection_MsgIssueResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgIssueResponse) Interface() protoreflect.ProtoMessage { + return (*MsgIssueResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgIssueResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_MsgIssueResponse_denom, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgIssueResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgIssueResponse.denom": + return x.Denom != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgIssueResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgIssueResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgIssueResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgIssueResponse.denom": + x.Denom = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgIssueResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgIssueResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgIssueResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgIssueResponse.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgIssueResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgIssueResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgIssueResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgIssueResponse.denom": + x.Denom = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgIssueResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgIssueResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgIssueResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgIssueResponse.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.MsgIssueResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgIssueResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgIssueResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgIssueResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgIssueResponse.denom": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgIssueResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgIssueResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgIssueResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgIssueResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgIssueResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgIssueResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgIssueResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgIssueResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgIssueResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgIssueResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgIssueResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgIssueResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgIssueResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgDisableMint protoreflect.MessageDescriptor + fd_MsgDisableMint_denom protoreflect.FieldDescriptor + fd_MsgDisableMint_minter protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgDisableMint = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgDisableMint") + fd_MsgDisableMint_denom = md_MsgDisableMint.Fields().ByName("denom") + fd_MsgDisableMint_minter = md_MsgDisableMint.Fields().ByName("minter") +} + +var _ protoreflect.Message = (*fastReflection_MsgDisableMint)(nil) + +type fastReflection_MsgDisableMint MsgDisableMint + +func (x *MsgDisableMint) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgDisableMint)(x) +} + +func (x *MsgDisableMint) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgDisableMint_messageType fastReflection_MsgDisableMint_messageType +var _ protoreflect.MessageType = fastReflection_MsgDisableMint_messageType{} + +type fastReflection_MsgDisableMint_messageType struct{} + +func (x fastReflection_MsgDisableMint_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgDisableMint)(nil) +} +func (x fastReflection_MsgDisableMint_messageType) New() protoreflect.Message { + return new(fastReflection_MsgDisableMint) +} +func (x fastReflection_MsgDisableMint_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgDisableMint +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgDisableMint) Descriptor() protoreflect.MessageDescriptor { + return md_MsgDisableMint +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgDisableMint) Type() protoreflect.MessageType { + return _fastReflection_MsgDisableMint_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgDisableMint) New() protoreflect.Message { + return new(fastReflection_MsgDisableMint) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgDisableMint) Interface() protoreflect.ProtoMessage { + return (*MsgDisableMint)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgDisableMint) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_MsgDisableMint_denom, value) { + return + } + } + if x.Minter != "" { + value := protoreflect.ValueOfString(x.Minter) + if !f(fd_MsgDisableMint_minter, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgDisableMint) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgDisableMint.denom": + return x.Denom != "" + case "bitsong.fantoken.v1beta1.MsgDisableMint.minter": + return x.Minter != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgDisableMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgDisableMint does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDisableMint) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgDisableMint.denom": + x.Denom = "" + case "bitsong.fantoken.v1beta1.MsgDisableMint.minter": + x.Minter = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgDisableMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgDisableMint does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgDisableMint) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgDisableMint.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgDisableMint.minter": + value := x.Minter + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgDisableMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgDisableMint does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDisableMint) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgDisableMint.denom": + x.Denom = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgDisableMint.minter": + x.Minter = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgDisableMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgDisableMint does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDisableMint) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgDisableMint.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.MsgDisableMint is not mutable")) + case "bitsong.fantoken.v1beta1.MsgDisableMint.minter": + panic(fmt.Errorf("field minter of message bitsong.fantoken.v1beta1.MsgDisableMint is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgDisableMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgDisableMint does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgDisableMint) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgDisableMint.denom": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgDisableMint.minter": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgDisableMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgDisableMint does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgDisableMint) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgDisableMint", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgDisableMint) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDisableMint) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgDisableMint) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgDisableMint) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgDisableMint) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Minter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgDisableMint) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Minter) > 0 { + i -= len(x.Minter) + copy(dAtA[i:], x.Minter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Minter))) + i-- + dAtA[i] = 0x12 + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgDisableMint) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgDisableMint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgDisableMint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Minter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Minter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgDisableMintResponse protoreflect.MessageDescriptor + fd_MsgDisableMintResponse_denom protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgDisableMintResponse = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgDisableMintResponse") + fd_MsgDisableMintResponse_denom = md_MsgDisableMintResponse.Fields().ByName("denom") +} + +var _ protoreflect.Message = (*fastReflection_MsgDisableMintResponse)(nil) + +type fastReflection_MsgDisableMintResponse MsgDisableMintResponse + +func (x *MsgDisableMintResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgDisableMintResponse)(x) +} + +func (x *MsgDisableMintResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgDisableMintResponse_messageType fastReflection_MsgDisableMintResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgDisableMintResponse_messageType{} + +type fastReflection_MsgDisableMintResponse_messageType struct{} + +func (x fastReflection_MsgDisableMintResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgDisableMintResponse)(nil) +} +func (x fastReflection_MsgDisableMintResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgDisableMintResponse) +} +func (x fastReflection_MsgDisableMintResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgDisableMintResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgDisableMintResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgDisableMintResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgDisableMintResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgDisableMintResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgDisableMintResponse) New() protoreflect.Message { + return new(fastReflection_MsgDisableMintResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgDisableMintResponse) Interface() protoreflect.ProtoMessage { + return (*MsgDisableMintResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgDisableMintResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_MsgDisableMintResponse_denom, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgDisableMintResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgDisableMintResponse.denom": + return x.Denom != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgDisableMintResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgDisableMintResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDisableMintResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgDisableMintResponse.denom": + x.Denom = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgDisableMintResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgDisableMintResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgDisableMintResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgDisableMintResponse.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgDisableMintResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgDisableMintResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDisableMintResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgDisableMintResponse.denom": + x.Denom = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgDisableMintResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgDisableMintResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDisableMintResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgDisableMintResponse.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.MsgDisableMintResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgDisableMintResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgDisableMintResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgDisableMintResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgDisableMintResponse.denom": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgDisableMintResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgDisableMintResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgDisableMintResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgDisableMintResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgDisableMintResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDisableMintResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgDisableMintResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgDisableMintResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgDisableMintResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgDisableMintResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgDisableMintResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgDisableMintResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgDisableMintResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgMint protoreflect.MessageDescriptor + fd_MsgMint_recipient protoreflect.FieldDescriptor + fd_MsgMint_coin protoreflect.FieldDescriptor + fd_MsgMint_minter protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgMint = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgMint") + fd_MsgMint_recipient = md_MsgMint.Fields().ByName("recipient") + fd_MsgMint_coin = md_MsgMint.Fields().ByName("coin") + fd_MsgMint_minter = md_MsgMint.Fields().ByName("minter") +} + +var _ protoreflect.Message = (*fastReflection_MsgMint)(nil) + +type fastReflection_MsgMint MsgMint + +func (x *MsgMint) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgMint)(x) +} + +func (x *MsgMint) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgMint_messageType fastReflection_MsgMint_messageType +var _ protoreflect.MessageType = fastReflection_MsgMint_messageType{} + +type fastReflection_MsgMint_messageType struct{} + +func (x fastReflection_MsgMint_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgMint)(nil) +} +func (x fastReflection_MsgMint_messageType) New() protoreflect.Message { + return new(fastReflection_MsgMint) +} +func (x fastReflection_MsgMint_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgMint +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgMint) Descriptor() protoreflect.MessageDescriptor { + return md_MsgMint +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgMint) Type() protoreflect.MessageType { + return _fastReflection_MsgMint_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgMint) New() protoreflect.Message { + return new(fastReflection_MsgMint) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgMint) Interface() protoreflect.ProtoMessage { + return (*MsgMint)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgMint) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Recipient != "" { + value := protoreflect.ValueOfString(x.Recipient) + if !f(fd_MsgMint_recipient, value) { + return + } + } + if x.Coin != nil { + value := protoreflect.ValueOfMessage(x.Coin.ProtoReflect()) + if !f(fd_MsgMint_coin, value) { + return + } + } + if x.Minter != "" { + value := protoreflect.ValueOfString(x.Minter) + if !f(fd_MsgMint_minter, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgMint) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgMint.recipient": + return x.Recipient != "" + case "bitsong.fantoken.v1beta1.MsgMint.coin": + return x.Coin != nil + case "bitsong.fantoken.v1beta1.MsgMint.minter": + return x.Minter != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgMint does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgMint) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgMint.recipient": + x.Recipient = "" + case "bitsong.fantoken.v1beta1.MsgMint.coin": + x.Coin = nil + case "bitsong.fantoken.v1beta1.MsgMint.minter": + x.Minter = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgMint does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgMint) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgMint.recipient": + value := x.Recipient + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgMint.coin": + value := x.Coin + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "bitsong.fantoken.v1beta1.MsgMint.minter": + value := x.Minter + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgMint does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgMint) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgMint.recipient": + x.Recipient = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgMint.coin": + x.Coin = value.Message().Interface().(*v1beta1.Coin) + case "bitsong.fantoken.v1beta1.MsgMint.minter": + x.Minter = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgMint does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgMint) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgMint.coin": + if x.Coin == nil { + x.Coin = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.Coin.ProtoReflect()) + case "bitsong.fantoken.v1beta1.MsgMint.recipient": + panic(fmt.Errorf("field recipient of message bitsong.fantoken.v1beta1.MsgMint is not mutable")) + case "bitsong.fantoken.v1beta1.MsgMint.minter": + panic(fmt.Errorf("field minter of message bitsong.fantoken.v1beta1.MsgMint is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgMint does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgMint) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgMint.recipient": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgMint.coin": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "bitsong.fantoken.v1beta1.MsgMint.minter": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgMint")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgMint does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgMint) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgMint", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgMint) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgMint) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgMint) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgMint) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgMint) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Recipient) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Coin != nil { + l = options.Size(x.Coin) + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Minter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgMint) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Minter) > 0 { + i -= len(x.Minter) + copy(dAtA[i:], x.Minter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Minter))) + i-- + dAtA[i] = 0x1a + } + if x.Coin != nil { + encoded, err := options.Marshal(x.Coin) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.Recipient) > 0 { + i -= len(x.Recipient) + copy(dAtA[i:], x.Recipient) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Recipient))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgMint) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgMint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgMint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Recipient", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Recipient = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Coin", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Coin == nil { + x.Coin = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Coin); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Minter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Minter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgMintResponse protoreflect.MessageDescriptor + fd_MsgMintResponse_recipient protoreflect.FieldDescriptor + fd_MsgMintResponse_coin protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgMintResponse = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgMintResponse") + fd_MsgMintResponse_recipient = md_MsgMintResponse.Fields().ByName("recipient") + fd_MsgMintResponse_coin = md_MsgMintResponse.Fields().ByName("coin") +} + +var _ protoreflect.Message = (*fastReflection_MsgMintResponse)(nil) + +type fastReflection_MsgMintResponse MsgMintResponse + +func (x *MsgMintResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgMintResponse)(x) +} + +func (x *MsgMintResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgMintResponse_messageType fastReflection_MsgMintResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgMintResponse_messageType{} + +type fastReflection_MsgMintResponse_messageType struct{} + +func (x fastReflection_MsgMintResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgMintResponse)(nil) +} +func (x fastReflection_MsgMintResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgMintResponse) +} +func (x fastReflection_MsgMintResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgMintResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgMintResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgMintResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgMintResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgMintResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgMintResponse) New() protoreflect.Message { + return new(fastReflection_MsgMintResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgMintResponse) Interface() protoreflect.ProtoMessage { + return (*MsgMintResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgMintResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Recipient != "" { + value := protoreflect.ValueOfString(x.Recipient) + if !f(fd_MsgMintResponse_recipient, value) { + return + } + } + if x.Coin != nil { + value := protoreflect.ValueOfMessage(x.Coin.ProtoReflect()) + if !f(fd_MsgMintResponse_coin, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgMintResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgMintResponse.recipient": + return x.Recipient != "" + case "bitsong.fantoken.v1beta1.MsgMintResponse.coin": + return x.Coin != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgMintResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgMintResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgMintResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgMintResponse.recipient": + x.Recipient = "" + case "bitsong.fantoken.v1beta1.MsgMintResponse.coin": + x.Coin = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgMintResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgMintResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgMintResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgMintResponse.recipient": + value := x.Recipient + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgMintResponse.coin": + value := x.Coin + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgMintResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgMintResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgMintResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgMintResponse.recipient": + x.Recipient = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgMintResponse.coin": + x.Coin = value.Message().Interface().(*v1beta1.Coin) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgMintResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgMintResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgMintResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgMintResponse.coin": + if x.Coin == nil { + x.Coin = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.Coin.ProtoReflect()) + case "bitsong.fantoken.v1beta1.MsgMintResponse.recipient": + panic(fmt.Errorf("field recipient of message bitsong.fantoken.v1beta1.MsgMintResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgMintResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgMintResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgMintResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgMintResponse.recipient": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgMintResponse.coin": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgMintResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgMintResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgMintResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgMintResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgMintResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgMintResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgMintResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgMintResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgMintResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Recipient) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Coin != nil { + l = options.Size(x.Coin) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgMintResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Coin != nil { + encoded, err := options.Marshal(x.Coin) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.Recipient) > 0 { + i -= len(x.Recipient) + copy(dAtA[i:], x.Recipient) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Recipient))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgMintResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgMintResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgMintResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Recipient", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Recipient = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Coin", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Coin == nil { + x.Coin = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Coin); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgBurn protoreflect.MessageDescriptor + fd_MsgBurn_coin protoreflect.FieldDescriptor + fd_MsgBurn_sender protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgBurn = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgBurn") + fd_MsgBurn_coin = md_MsgBurn.Fields().ByName("coin") + fd_MsgBurn_sender = md_MsgBurn.Fields().ByName("sender") +} + +var _ protoreflect.Message = (*fastReflection_MsgBurn)(nil) + +type fastReflection_MsgBurn MsgBurn + +func (x *MsgBurn) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgBurn)(x) +} + +func (x *MsgBurn) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgBurn_messageType fastReflection_MsgBurn_messageType +var _ protoreflect.MessageType = fastReflection_MsgBurn_messageType{} + +type fastReflection_MsgBurn_messageType struct{} + +func (x fastReflection_MsgBurn_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgBurn)(nil) +} +func (x fastReflection_MsgBurn_messageType) New() protoreflect.Message { + return new(fastReflection_MsgBurn) +} +func (x fastReflection_MsgBurn_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgBurn +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgBurn) Descriptor() protoreflect.MessageDescriptor { + return md_MsgBurn +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgBurn) Type() protoreflect.MessageType { + return _fastReflection_MsgBurn_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgBurn) New() protoreflect.Message { + return new(fastReflection_MsgBurn) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgBurn) Interface() protoreflect.ProtoMessage { + return (*MsgBurn)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgBurn) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Coin != nil { + value := protoreflect.ValueOfMessage(x.Coin.ProtoReflect()) + if !f(fd_MsgBurn_coin, value) { + return + } + } + if x.Sender != "" { + value := protoreflect.ValueOfString(x.Sender) + if !f(fd_MsgBurn_sender, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgBurn) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgBurn.coin": + return x.Coin != nil + case "bitsong.fantoken.v1beta1.MsgBurn.sender": + return x.Sender != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgBurn")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgBurn does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgBurn) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgBurn.coin": + x.Coin = nil + case "bitsong.fantoken.v1beta1.MsgBurn.sender": + x.Sender = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgBurn")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgBurn does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgBurn) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgBurn.coin": + value := x.Coin + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "bitsong.fantoken.v1beta1.MsgBurn.sender": + value := x.Sender + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgBurn")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgBurn does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgBurn) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgBurn.coin": + x.Coin = value.Message().Interface().(*v1beta1.Coin) + case "bitsong.fantoken.v1beta1.MsgBurn.sender": + x.Sender = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgBurn")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgBurn does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgBurn) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgBurn.coin": + if x.Coin == nil { + x.Coin = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.Coin.ProtoReflect()) + case "bitsong.fantoken.v1beta1.MsgBurn.sender": + panic(fmt.Errorf("field sender of message bitsong.fantoken.v1beta1.MsgBurn is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgBurn")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgBurn does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgBurn) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgBurn.coin": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "bitsong.fantoken.v1beta1.MsgBurn.sender": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgBurn")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgBurn does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgBurn) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgBurn", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgBurn) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgBurn) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgBurn) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgBurn) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgBurn) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Coin != nil { + l = options.Size(x.Coin) + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Sender) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgBurn) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Sender) > 0 { + i -= len(x.Sender) + copy(dAtA[i:], x.Sender) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Sender))) + i-- + dAtA[i] = 0x12 + } + if x.Coin != nil { + encoded, err := options.Marshal(x.Coin) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgBurn) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgBurn: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgBurn: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Coin", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Coin == nil { + x.Coin = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Coin); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgBurnResponse protoreflect.MessageDescriptor + fd_MsgBurnResponse_sender protoreflect.FieldDescriptor + fd_MsgBurnResponse_coin protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgBurnResponse = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgBurnResponse") + fd_MsgBurnResponse_sender = md_MsgBurnResponse.Fields().ByName("sender") + fd_MsgBurnResponse_coin = md_MsgBurnResponse.Fields().ByName("coin") +} + +var _ protoreflect.Message = (*fastReflection_MsgBurnResponse)(nil) + +type fastReflection_MsgBurnResponse MsgBurnResponse + +func (x *MsgBurnResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgBurnResponse)(x) +} + +func (x *MsgBurnResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgBurnResponse_messageType fastReflection_MsgBurnResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgBurnResponse_messageType{} + +type fastReflection_MsgBurnResponse_messageType struct{} + +func (x fastReflection_MsgBurnResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgBurnResponse)(nil) +} +func (x fastReflection_MsgBurnResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgBurnResponse) +} +func (x fastReflection_MsgBurnResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgBurnResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgBurnResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgBurnResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgBurnResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgBurnResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgBurnResponse) New() protoreflect.Message { + return new(fastReflection_MsgBurnResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgBurnResponse) Interface() protoreflect.ProtoMessage { + return (*MsgBurnResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgBurnResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Sender != "" { + value := protoreflect.ValueOfString(x.Sender) + if !f(fd_MsgBurnResponse_sender, value) { + return + } + } + if x.Coin != nil { + value := protoreflect.ValueOfMessage(x.Coin.ProtoReflect()) + if !f(fd_MsgBurnResponse_coin, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgBurnResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgBurnResponse.sender": + return x.Sender != "" + case "bitsong.fantoken.v1beta1.MsgBurnResponse.coin": + return x.Coin != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgBurnResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgBurnResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgBurnResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgBurnResponse.sender": + x.Sender = "" + case "bitsong.fantoken.v1beta1.MsgBurnResponse.coin": + x.Coin = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgBurnResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgBurnResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgBurnResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgBurnResponse.sender": + value := x.Sender + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgBurnResponse.coin": + value := x.Coin + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgBurnResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgBurnResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgBurnResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgBurnResponse.sender": + x.Sender = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgBurnResponse.coin": + x.Coin = value.Message().Interface().(*v1beta1.Coin) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgBurnResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgBurnResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgBurnResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgBurnResponse.coin": + if x.Coin == nil { + x.Coin = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.Coin.ProtoReflect()) + case "bitsong.fantoken.v1beta1.MsgBurnResponse.sender": + panic(fmt.Errorf("field sender of message bitsong.fantoken.v1beta1.MsgBurnResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgBurnResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgBurnResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgBurnResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgBurnResponse.sender": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgBurnResponse.coin": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgBurnResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgBurnResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgBurnResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgBurnResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgBurnResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgBurnResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgBurnResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgBurnResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgBurnResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Sender) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Coin != nil { + l = options.Size(x.Coin) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgBurnResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Coin != nil { + encoded, err := options.Marshal(x.Coin) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.Sender) > 0 { + i -= len(x.Sender) + copy(dAtA[i:], x.Sender) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Sender))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgBurnResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgBurnResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgBurnResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Coin", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Coin == nil { + x.Coin = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Coin); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgSetMinter protoreflect.MessageDescriptor + fd_MsgSetMinter_denom protoreflect.FieldDescriptor + fd_MsgSetMinter_old_minter protoreflect.FieldDescriptor + fd_MsgSetMinter_new_minter protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgSetMinter = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgSetMinter") + fd_MsgSetMinter_denom = md_MsgSetMinter.Fields().ByName("denom") + fd_MsgSetMinter_old_minter = md_MsgSetMinter.Fields().ByName("old_minter") + fd_MsgSetMinter_new_minter = md_MsgSetMinter.Fields().ByName("new_minter") +} + +var _ protoreflect.Message = (*fastReflection_MsgSetMinter)(nil) + +type fastReflection_MsgSetMinter MsgSetMinter + +func (x *MsgSetMinter) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgSetMinter)(x) +} + +func (x *MsgSetMinter) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgSetMinter_messageType fastReflection_MsgSetMinter_messageType +var _ protoreflect.MessageType = fastReflection_MsgSetMinter_messageType{} + +type fastReflection_MsgSetMinter_messageType struct{} + +func (x fastReflection_MsgSetMinter_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgSetMinter)(nil) +} +func (x fastReflection_MsgSetMinter_messageType) New() protoreflect.Message { + return new(fastReflection_MsgSetMinter) +} +func (x fastReflection_MsgSetMinter_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetMinter +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgSetMinter) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetMinter +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgSetMinter) Type() protoreflect.MessageType { + return _fastReflection_MsgSetMinter_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgSetMinter) New() protoreflect.Message { + return new(fastReflection_MsgSetMinter) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgSetMinter) Interface() protoreflect.ProtoMessage { + return (*MsgSetMinter)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgSetMinter) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_MsgSetMinter_denom, value) { + return + } + } + if x.OldMinter != "" { + value := protoreflect.ValueOfString(x.OldMinter) + if !f(fd_MsgSetMinter_old_minter, value) { + return + } + } + if x.NewMinter != "" { + value := protoreflect.ValueOfString(x.NewMinter) + if !f(fd_MsgSetMinter_new_minter, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgSetMinter) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetMinter.denom": + return x.Denom != "" + case "bitsong.fantoken.v1beta1.MsgSetMinter.old_minter": + return x.OldMinter != "" + case "bitsong.fantoken.v1beta1.MsgSetMinter.new_minter": + return x.NewMinter != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetMinter")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetMinter does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetMinter) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetMinter.denom": + x.Denom = "" + case "bitsong.fantoken.v1beta1.MsgSetMinter.old_minter": + x.OldMinter = "" + case "bitsong.fantoken.v1beta1.MsgSetMinter.new_minter": + x.NewMinter = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetMinter")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetMinter does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgSetMinter) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetMinter.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgSetMinter.old_minter": + value := x.OldMinter + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgSetMinter.new_minter": + value := x.NewMinter + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetMinter")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetMinter does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetMinter) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetMinter.denom": + x.Denom = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgSetMinter.old_minter": + x.OldMinter = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgSetMinter.new_minter": + x.NewMinter = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetMinter")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetMinter does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetMinter) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetMinter.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.MsgSetMinter is not mutable")) + case "bitsong.fantoken.v1beta1.MsgSetMinter.old_minter": + panic(fmt.Errorf("field old_minter of message bitsong.fantoken.v1beta1.MsgSetMinter is not mutable")) + case "bitsong.fantoken.v1beta1.MsgSetMinter.new_minter": + panic(fmt.Errorf("field new_minter of message bitsong.fantoken.v1beta1.MsgSetMinter is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetMinter")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetMinter does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgSetMinter) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetMinter.denom": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgSetMinter.old_minter": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgSetMinter.new_minter": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetMinter")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetMinter does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgSetMinter) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgSetMinter", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgSetMinter) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetMinter) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgSetMinter) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgSetMinter) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgSetMinter) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.OldMinter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.NewMinter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgSetMinter) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.NewMinter) > 0 { + i -= len(x.NewMinter) + copy(dAtA[i:], x.NewMinter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NewMinter))) + i-- + dAtA[i] = 0x1a + } + if len(x.OldMinter) > 0 { + i -= len(x.OldMinter) + copy(dAtA[i:], x.OldMinter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.OldMinter))) + i-- + dAtA[i] = 0x12 + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgSetMinter) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetMinter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetMinter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OldMinter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.OldMinter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewMinter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NewMinter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgSetMinterResponse protoreflect.MessageDescriptor + fd_MsgSetMinterResponse_denom protoreflect.FieldDescriptor + fd_MsgSetMinterResponse_old_minter protoreflect.FieldDescriptor + fd_MsgSetMinterResponse_new_minter protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgSetMinterResponse = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgSetMinterResponse") + fd_MsgSetMinterResponse_denom = md_MsgSetMinterResponse.Fields().ByName("denom") + fd_MsgSetMinterResponse_old_minter = md_MsgSetMinterResponse.Fields().ByName("old_minter") + fd_MsgSetMinterResponse_new_minter = md_MsgSetMinterResponse.Fields().ByName("new_minter") +} + +var _ protoreflect.Message = (*fastReflection_MsgSetMinterResponse)(nil) + +type fastReflection_MsgSetMinterResponse MsgSetMinterResponse + +func (x *MsgSetMinterResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgSetMinterResponse)(x) +} + +func (x *MsgSetMinterResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgSetMinterResponse_messageType fastReflection_MsgSetMinterResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgSetMinterResponse_messageType{} + +type fastReflection_MsgSetMinterResponse_messageType struct{} + +func (x fastReflection_MsgSetMinterResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgSetMinterResponse)(nil) +} +func (x fastReflection_MsgSetMinterResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgSetMinterResponse) +} +func (x fastReflection_MsgSetMinterResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetMinterResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgSetMinterResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetMinterResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgSetMinterResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgSetMinterResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgSetMinterResponse) New() protoreflect.Message { + return new(fastReflection_MsgSetMinterResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgSetMinterResponse) Interface() protoreflect.ProtoMessage { + return (*MsgSetMinterResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgSetMinterResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_MsgSetMinterResponse_denom, value) { + return + } + } + if x.OldMinter != "" { + value := protoreflect.ValueOfString(x.OldMinter) + if !f(fd_MsgSetMinterResponse_old_minter, value) { + return + } + } + if x.NewMinter != "" { + value := protoreflect.ValueOfString(x.NewMinter) + if !f(fd_MsgSetMinterResponse_new_minter, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgSetMinterResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.denom": + return x.Denom != "" + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.old_minter": + return x.OldMinter != "" + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.new_minter": + return x.NewMinter != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetMinterResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetMinterResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetMinterResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.denom": + x.Denom = "" + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.old_minter": + x.OldMinter = "" + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.new_minter": + x.NewMinter = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetMinterResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetMinterResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgSetMinterResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.old_minter": + value := x.OldMinter + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.new_minter": + value := x.NewMinter + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetMinterResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetMinterResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetMinterResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.denom": + x.Denom = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.old_minter": + x.OldMinter = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.new_minter": + x.NewMinter = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetMinterResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetMinterResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetMinterResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.MsgSetMinterResponse is not mutable")) + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.old_minter": + panic(fmt.Errorf("field old_minter of message bitsong.fantoken.v1beta1.MsgSetMinterResponse is not mutable")) + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.new_minter": + panic(fmt.Errorf("field new_minter of message bitsong.fantoken.v1beta1.MsgSetMinterResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetMinterResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetMinterResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgSetMinterResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.denom": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.old_minter": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgSetMinterResponse.new_minter": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetMinterResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetMinterResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgSetMinterResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgSetMinterResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgSetMinterResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetMinterResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgSetMinterResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgSetMinterResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgSetMinterResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.OldMinter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.NewMinter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgSetMinterResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.NewMinter) > 0 { + i -= len(x.NewMinter) + copy(dAtA[i:], x.NewMinter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NewMinter))) + i-- + dAtA[i] = 0x1a + } + if len(x.OldMinter) > 0 { + i -= len(x.OldMinter) + copy(dAtA[i:], x.OldMinter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.OldMinter))) + i-- + dAtA[i] = 0x12 + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgSetMinterResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetMinterResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetMinterResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OldMinter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.OldMinter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewMinter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NewMinter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgSetAuthority protoreflect.MessageDescriptor + fd_MsgSetAuthority_denom protoreflect.FieldDescriptor + fd_MsgSetAuthority_old_authority protoreflect.FieldDescriptor + fd_MsgSetAuthority_new_authority protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgSetAuthority = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgSetAuthority") + fd_MsgSetAuthority_denom = md_MsgSetAuthority.Fields().ByName("denom") + fd_MsgSetAuthority_old_authority = md_MsgSetAuthority.Fields().ByName("old_authority") + fd_MsgSetAuthority_new_authority = md_MsgSetAuthority.Fields().ByName("new_authority") +} + +var _ protoreflect.Message = (*fastReflection_MsgSetAuthority)(nil) + +type fastReflection_MsgSetAuthority MsgSetAuthority + +func (x *MsgSetAuthority) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgSetAuthority)(x) +} + +func (x *MsgSetAuthority) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgSetAuthority_messageType fastReflection_MsgSetAuthority_messageType +var _ protoreflect.MessageType = fastReflection_MsgSetAuthority_messageType{} + +type fastReflection_MsgSetAuthority_messageType struct{} + +func (x fastReflection_MsgSetAuthority_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgSetAuthority)(nil) +} +func (x fastReflection_MsgSetAuthority_messageType) New() protoreflect.Message { + return new(fastReflection_MsgSetAuthority) +} +func (x fastReflection_MsgSetAuthority_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetAuthority +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgSetAuthority) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetAuthority +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgSetAuthority) Type() protoreflect.MessageType { + return _fastReflection_MsgSetAuthority_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgSetAuthority) New() protoreflect.Message { + return new(fastReflection_MsgSetAuthority) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgSetAuthority) Interface() protoreflect.ProtoMessage { + return (*MsgSetAuthority)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgSetAuthority) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_MsgSetAuthority_denom, value) { + return + } + } + if x.OldAuthority != "" { + value := protoreflect.ValueOfString(x.OldAuthority) + if !f(fd_MsgSetAuthority_old_authority, value) { + return + } + } + if x.NewAuthority != "" { + value := protoreflect.ValueOfString(x.NewAuthority) + if !f(fd_MsgSetAuthority_new_authority, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgSetAuthority) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetAuthority.denom": + return x.Denom != "" + case "bitsong.fantoken.v1beta1.MsgSetAuthority.old_authority": + return x.OldAuthority != "" + case "bitsong.fantoken.v1beta1.MsgSetAuthority.new_authority": + return x.NewAuthority != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetAuthority")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetAuthority does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetAuthority) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetAuthority.denom": + x.Denom = "" + case "bitsong.fantoken.v1beta1.MsgSetAuthority.old_authority": + x.OldAuthority = "" + case "bitsong.fantoken.v1beta1.MsgSetAuthority.new_authority": + x.NewAuthority = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetAuthority")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetAuthority does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgSetAuthority) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetAuthority.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgSetAuthority.old_authority": + value := x.OldAuthority + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgSetAuthority.new_authority": + value := x.NewAuthority + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetAuthority")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetAuthority does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetAuthority) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetAuthority.denom": + x.Denom = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgSetAuthority.old_authority": + x.OldAuthority = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgSetAuthority.new_authority": + x.NewAuthority = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetAuthority")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetAuthority does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetAuthority) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetAuthority.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.MsgSetAuthority is not mutable")) + case "bitsong.fantoken.v1beta1.MsgSetAuthority.old_authority": + panic(fmt.Errorf("field old_authority of message bitsong.fantoken.v1beta1.MsgSetAuthority is not mutable")) + case "bitsong.fantoken.v1beta1.MsgSetAuthority.new_authority": + panic(fmt.Errorf("field new_authority of message bitsong.fantoken.v1beta1.MsgSetAuthority is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetAuthority")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetAuthority does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgSetAuthority) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetAuthority.denom": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgSetAuthority.old_authority": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgSetAuthority.new_authority": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetAuthority")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetAuthority does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgSetAuthority) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgSetAuthority", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgSetAuthority) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetAuthority) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgSetAuthority) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgSetAuthority) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgSetAuthority) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.OldAuthority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.NewAuthority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgSetAuthority) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.NewAuthority) > 0 { + i -= len(x.NewAuthority) + copy(dAtA[i:], x.NewAuthority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NewAuthority))) + i-- + dAtA[i] = 0x1a + } + if len(x.OldAuthority) > 0 { + i -= len(x.OldAuthority) + copy(dAtA[i:], x.OldAuthority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.OldAuthority))) + i-- + dAtA[i] = 0x12 + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgSetAuthority) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetAuthority: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetAuthority: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OldAuthority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.OldAuthority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewAuthority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NewAuthority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgSetAuthorityResponse protoreflect.MessageDescriptor + fd_MsgSetAuthorityResponse_denom protoreflect.FieldDescriptor + fd_MsgSetAuthorityResponse_old_authority protoreflect.FieldDescriptor + fd_MsgSetAuthorityResponse_new_authority protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgSetAuthorityResponse = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgSetAuthorityResponse") + fd_MsgSetAuthorityResponse_denom = md_MsgSetAuthorityResponse.Fields().ByName("denom") + fd_MsgSetAuthorityResponse_old_authority = md_MsgSetAuthorityResponse.Fields().ByName("old_authority") + fd_MsgSetAuthorityResponse_new_authority = md_MsgSetAuthorityResponse.Fields().ByName("new_authority") +} + +var _ protoreflect.Message = (*fastReflection_MsgSetAuthorityResponse)(nil) + +type fastReflection_MsgSetAuthorityResponse MsgSetAuthorityResponse + +func (x *MsgSetAuthorityResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgSetAuthorityResponse)(x) +} + +func (x *MsgSetAuthorityResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgSetAuthorityResponse_messageType fastReflection_MsgSetAuthorityResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgSetAuthorityResponse_messageType{} + +type fastReflection_MsgSetAuthorityResponse_messageType struct{} + +func (x fastReflection_MsgSetAuthorityResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgSetAuthorityResponse)(nil) +} +func (x fastReflection_MsgSetAuthorityResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgSetAuthorityResponse) +} +func (x fastReflection_MsgSetAuthorityResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetAuthorityResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgSetAuthorityResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetAuthorityResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgSetAuthorityResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgSetAuthorityResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgSetAuthorityResponse) New() protoreflect.Message { + return new(fastReflection_MsgSetAuthorityResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgSetAuthorityResponse) Interface() protoreflect.ProtoMessage { + return (*MsgSetAuthorityResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgSetAuthorityResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_MsgSetAuthorityResponse_denom, value) { + return + } + } + if x.OldAuthority != "" { + value := protoreflect.ValueOfString(x.OldAuthority) + if !f(fd_MsgSetAuthorityResponse_old_authority, value) { + return + } + } + if x.NewAuthority != "" { + value := protoreflect.ValueOfString(x.NewAuthority) + if !f(fd_MsgSetAuthorityResponse_new_authority, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgSetAuthorityResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.denom": + return x.Denom != "" + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.old_authority": + return x.OldAuthority != "" + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.new_authority": + return x.NewAuthority != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetAuthorityResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetAuthorityResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetAuthorityResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.denom": + x.Denom = "" + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.old_authority": + x.OldAuthority = "" + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.new_authority": + x.NewAuthority = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetAuthorityResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetAuthorityResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgSetAuthorityResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.old_authority": + value := x.OldAuthority + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.new_authority": + value := x.NewAuthority + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetAuthorityResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetAuthorityResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetAuthorityResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.denom": + x.Denom = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.old_authority": + x.OldAuthority = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.new_authority": + x.NewAuthority = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetAuthorityResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetAuthorityResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetAuthorityResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.MsgSetAuthorityResponse is not mutable")) + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.old_authority": + panic(fmt.Errorf("field old_authority of message bitsong.fantoken.v1beta1.MsgSetAuthorityResponse is not mutable")) + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.new_authority": + panic(fmt.Errorf("field new_authority of message bitsong.fantoken.v1beta1.MsgSetAuthorityResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetAuthorityResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetAuthorityResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgSetAuthorityResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.denom": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.old_authority": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgSetAuthorityResponse.new_authority": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetAuthorityResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetAuthorityResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgSetAuthorityResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgSetAuthorityResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgSetAuthorityResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetAuthorityResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgSetAuthorityResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgSetAuthorityResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgSetAuthorityResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.OldAuthority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.NewAuthority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgSetAuthorityResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.NewAuthority) > 0 { + i -= len(x.NewAuthority) + copy(dAtA[i:], x.NewAuthority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NewAuthority))) + i-- + dAtA[i] = 0x1a + } + if len(x.OldAuthority) > 0 { + i -= len(x.OldAuthority) + copy(dAtA[i:], x.OldAuthority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.OldAuthority))) + i-- + dAtA[i] = 0x12 + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgSetAuthorityResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetAuthorityResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetAuthorityResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OldAuthority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.OldAuthority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewAuthority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NewAuthority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgSetUri protoreflect.MessageDescriptor + fd_MsgSetUri_authority protoreflect.FieldDescriptor + fd_MsgSetUri_denom protoreflect.FieldDescriptor + fd_MsgSetUri_uri protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgSetUri = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgSetUri") + fd_MsgSetUri_authority = md_MsgSetUri.Fields().ByName("authority") + fd_MsgSetUri_denom = md_MsgSetUri.Fields().ByName("denom") + fd_MsgSetUri_uri = md_MsgSetUri.Fields().ByName("uri") +} + +var _ protoreflect.Message = (*fastReflection_MsgSetUri)(nil) + +type fastReflection_MsgSetUri MsgSetUri + +func (x *MsgSetUri) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgSetUri)(x) +} + +func (x *MsgSetUri) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgSetUri_messageType fastReflection_MsgSetUri_messageType +var _ protoreflect.MessageType = fastReflection_MsgSetUri_messageType{} + +type fastReflection_MsgSetUri_messageType struct{} + +func (x fastReflection_MsgSetUri_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgSetUri)(nil) +} +func (x fastReflection_MsgSetUri_messageType) New() protoreflect.Message { + return new(fastReflection_MsgSetUri) +} +func (x fastReflection_MsgSetUri_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetUri +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgSetUri) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetUri +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgSetUri) Type() protoreflect.MessageType { + return _fastReflection_MsgSetUri_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgSetUri) New() protoreflect.Message { + return new(fastReflection_MsgSetUri) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgSetUri) Interface() protoreflect.ProtoMessage { + return (*MsgSetUri)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgSetUri) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Authority != "" { + value := protoreflect.ValueOfString(x.Authority) + if !f(fd_MsgSetUri_authority, value) { + return + } + } + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_MsgSetUri_denom, value) { + return + } + } + if x.Uri != "" { + value := protoreflect.ValueOfString(x.Uri) + if !f(fd_MsgSetUri_uri, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgSetUri) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetUri.authority": + return x.Authority != "" + case "bitsong.fantoken.v1beta1.MsgSetUri.denom": + return x.Denom != "" + case "bitsong.fantoken.v1beta1.MsgSetUri.uri": + return x.Uri != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetUri")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetUri does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetUri) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetUri.authority": + x.Authority = "" + case "bitsong.fantoken.v1beta1.MsgSetUri.denom": + x.Denom = "" + case "bitsong.fantoken.v1beta1.MsgSetUri.uri": + x.Uri = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetUri")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetUri does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgSetUri) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetUri.authority": + value := x.Authority + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgSetUri.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + case "bitsong.fantoken.v1beta1.MsgSetUri.uri": + value := x.Uri + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetUri")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetUri does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetUri) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetUri.authority": + x.Authority = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgSetUri.denom": + x.Denom = value.Interface().(string) + case "bitsong.fantoken.v1beta1.MsgSetUri.uri": + x.Uri = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetUri")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetUri does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetUri) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetUri.authority": + panic(fmt.Errorf("field authority of message bitsong.fantoken.v1beta1.MsgSetUri is not mutable")) + case "bitsong.fantoken.v1beta1.MsgSetUri.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.MsgSetUri is not mutable")) + case "bitsong.fantoken.v1beta1.MsgSetUri.uri": + panic(fmt.Errorf("field uri of message bitsong.fantoken.v1beta1.MsgSetUri is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetUri")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetUri does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgSetUri) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetUri.authority": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgSetUri.denom": + return protoreflect.ValueOfString("") + case "bitsong.fantoken.v1beta1.MsgSetUri.uri": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetUri")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetUri does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgSetUri) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgSetUri", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgSetUri) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetUri) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgSetUri) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgSetUri) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgSetUri) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Authority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Uri) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgSetUri) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Uri) > 0 { + i -= len(x.Uri) + copy(dAtA[i:], x.Uri) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Uri))) + i-- + dAtA[i] = 0x1a + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0x12 + } + if len(x.Authority) > 0 { + i -= len(x.Authority) + copy(dAtA[i:], x.Authority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Authority))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgSetUri) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetUri: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetUri: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Uri", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Uri = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgSetUriResponse protoreflect.MessageDescriptor + fd_MsgSetUriResponse_denom protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_fantoken_v1beta1_tx_proto_init() + md_MsgSetUriResponse = File_bitsong_fantoken_v1beta1_tx_proto.Messages().ByName("MsgSetUriResponse") + fd_MsgSetUriResponse_denom = md_MsgSetUriResponse.Fields().ByName("denom") +} + +var _ protoreflect.Message = (*fastReflection_MsgSetUriResponse)(nil) + +type fastReflection_MsgSetUriResponse MsgSetUriResponse + +func (x *MsgSetUriResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgSetUriResponse)(x) +} + +func (x *MsgSetUriResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgSetUriResponse_messageType fastReflection_MsgSetUriResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgSetUriResponse_messageType{} + +type fastReflection_MsgSetUriResponse_messageType struct{} + +func (x fastReflection_MsgSetUriResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgSetUriResponse)(nil) +} +func (x fastReflection_MsgSetUriResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgSetUriResponse) +} +func (x fastReflection_MsgSetUriResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetUriResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgSetUriResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetUriResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgSetUriResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgSetUriResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgSetUriResponse) New() protoreflect.Message { + return new(fastReflection_MsgSetUriResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgSetUriResponse) Interface() protoreflect.ProtoMessage { + return (*MsgSetUriResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgSetUriResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Denom != "" { + value := protoreflect.ValueOfString(x.Denom) + if !f(fd_MsgSetUriResponse_denom, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgSetUriResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetUriResponse.denom": + return x.Denom != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetUriResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetUriResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetUriResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetUriResponse.denom": + x.Denom = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetUriResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetUriResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgSetUriResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetUriResponse.denom": + value := x.Denom + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetUriResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetUriResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetUriResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetUriResponse.denom": + x.Denom = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetUriResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetUriResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetUriResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetUriResponse.denom": + panic(fmt.Errorf("field denom of message bitsong.fantoken.v1beta1.MsgSetUriResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetUriResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetUriResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgSetUriResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.fantoken.v1beta1.MsgSetUriResponse.denom": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.fantoken.v1beta1.MsgSetUriResponse")) + } + panic(fmt.Errorf("message bitsong.fantoken.v1beta1.MsgSetUriResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgSetUriResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.fantoken.v1beta1.MsgSetUriResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgSetUriResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetUriResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgSetUriResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgSetUriResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgSetUriResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Denom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgSetUriResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Denom) > 0 { + i -= len(x.Denom) + copy(dAtA[i:], x.Denom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Denom))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgSetUriResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetUriResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetUriResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: bitsong/fantoken/v1beta1/tx.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// MsgIssue defines a message for issuing a new fan token +type MsgIssue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // symbol which corresponds to the symbol of the fan token. It is a string and + // cannot change for the whole life of the fan token + Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"` + // name which corresponds to the name of the fan token. It is a string and + // cannot change for the whole life of the fan token + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // max_supply that represents the maximum number of possible mintable tokens. + // It is an integer number, expressed in micro unit 10^6 + MaxSupply string `protobuf:"bytes,3,opt,name=max_supply,json=maxSupply,proto3" json:"max_supply,omitempty"` + // authority which is who can set a new uri metadata + Authority string `protobuf:"bytes,4,opt,name=authority,proto3" json:"authority,omitempty"` + // minter who is who can mint new fantoken and disable the minter process, the + // minter key also pay the gas fee + Minter string `protobuf:"bytes,5,opt,name=minter,proto3" json:"minter,omitempty"` + // URI which is the current uri of the fan token. It is a string can change + // during the fan token lifecycle thanks to the MsgEdit + Uri string `protobuf:"bytes,6,opt,name=uri,proto3" json:"uri,omitempty"` +} + +func (x *MsgIssue) Reset() { + *x = MsgIssue{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgIssue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgIssue) ProtoMessage() {} + +// Deprecated: Use MsgIssue.ProtoReflect.Descriptor instead. +func (*MsgIssue) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{0} +} + +func (x *MsgIssue) GetSymbol() string { + if x != nil { + return x.Symbol + } + return "" +} + +func (x *MsgIssue) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *MsgIssue) GetMaxSupply() string { + if x != nil { + return x.MaxSupply + } + return "" +} + +func (x *MsgIssue) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +func (x *MsgIssue) GetMinter() string { + if x != nil { + return x.Minter + } + return "" +} + +func (x *MsgIssue) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +// MsgIssueResponse defines the MsgIssue response type +type MsgIssueResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (x *MsgIssueResponse) Reset() { + *x = MsgIssueResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgIssueResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgIssueResponse) ProtoMessage() {} + +// Deprecated: Use MsgIssueResponse.ProtoReflect.Descriptor instead. +func (*MsgIssueResponse) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{1} +} + +func (x *MsgIssueResponse) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +// MsgDisableMint defines a message for disable the mint function +type MsgDisableMint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Minter string `protobuf:"bytes,2,opt,name=minter,proto3" json:"minter,omitempty"` +} + +func (x *MsgDisableMint) Reset() { + *x = MsgDisableMint{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgDisableMint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgDisableMint) ProtoMessage() {} + +// Deprecated: Use MsgDisableMint.ProtoReflect.Descriptor instead. +func (*MsgDisableMint) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{2} +} + +func (x *MsgDisableMint) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *MsgDisableMint) GetMinter() string { + if x != nil { + return x.Minter + } + return "" +} + +// MsgDisableMintResponse defines the MsgDisableMint response type +type MsgDisableMintResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (x *MsgDisableMintResponse) Reset() { + *x = MsgDisableMintResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgDisableMintResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgDisableMintResponse) ProtoMessage() {} + +// Deprecated: Use MsgDisableMintResponse.ProtoReflect.Descriptor instead. +func (*MsgDisableMintResponse) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{3} +} + +func (x *MsgDisableMintResponse) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +// MsgMint defines a message for minting a new fan token +type MsgMint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Recipient string `protobuf:"bytes,1,opt,name=recipient,proto3" json:"recipient,omitempty"` + // coin mean the amount + denom, eg: 10000ftFADJID34MCDM + Coin *v1beta1.Coin `protobuf:"bytes,2,opt,name=coin,proto3" json:"coin,omitempty"` + Minter string `protobuf:"bytes,3,opt,name=minter,proto3" json:"minter,omitempty"` +} + +func (x *MsgMint) Reset() { + *x = MsgMint{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgMint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgMint) ProtoMessage() {} + +// Deprecated: Use MsgMint.ProtoReflect.Descriptor instead. +func (*MsgMint) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{4} +} + +func (x *MsgMint) GetRecipient() string { + if x != nil { + return x.Recipient + } + return "" +} + +func (x *MsgMint) GetCoin() *v1beta1.Coin { + if x != nil { + return x.Coin + } + return nil +} + +func (x *MsgMint) GetMinter() string { + if x != nil { + return x.Minter + } + return "" +} + +// MsgMintResponse defines the MsgMint response type +type MsgMintResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Recipient string `protobuf:"bytes,1,opt,name=recipient,proto3" json:"recipient,omitempty"` + Coin *v1beta1.Coin `protobuf:"bytes,2,opt,name=coin,proto3" json:"coin,omitempty"` +} + +func (x *MsgMintResponse) Reset() { + *x = MsgMintResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgMintResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgMintResponse) ProtoMessage() {} + +// Deprecated: Use MsgMintResponse.ProtoReflect.Descriptor instead. +func (*MsgMintResponse) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{5} +} + +func (x *MsgMintResponse) GetRecipient() string { + if x != nil { + return x.Recipient + } + return "" +} + +func (x *MsgMintResponse) GetCoin() *v1beta1.Coin { + if x != nil { + return x.Coin + } + return nil +} + +// MsgBurn defines a message for burning some fan tokens +type MsgBurn struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // coin mean the amount + denom, eg: 10000ftFADJID34MCDM + Coin *v1beta1.Coin `protobuf:"bytes,1,opt,name=coin,proto3" json:"coin,omitempty"` + Sender string `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"` +} + +func (x *MsgBurn) Reset() { + *x = MsgBurn{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgBurn) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgBurn) ProtoMessage() {} + +// Deprecated: Use MsgBurn.ProtoReflect.Descriptor instead. +func (*MsgBurn) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{6} +} + +func (x *MsgBurn) GetCoin() *v1beta1.Coin { + if x != nil { + return x.Coin + } + return nil +} + +func (x *MsgBurn) GetSender() string { + if x != nil { + return x.Sender + } + return "" +} + +// MsgBurnResponse defines the MsgBurn response type +type MsgBurnResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Coin *v1beta1.Coin `protobuf:"bytes,2,opt,name=coin,proto3" json:"coin,omitempty"` +} + +func (x *MsgBurnResponse) Reset() { + *x = MsgBurnResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgBurnResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgBurnResponse) ProtoMessage() {} + +// Deprecated: Use MsgBurnResponse.ProtoReflect.Descriptor instead. +func (*MsgBurnResponse) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{7} +} + +func (x *MsgBurnResponse) GetSender() string { + if x != nil { + return x.Sender + } + return "" +} + +func (x *MsgBurnResponse) GetCoin() *v1beta1.Coin { + if x != nil { + return x.Coin + } + return nil +} + +// MsgSetMinter defines a message for changing the fan token minter address +type MsgSetMinter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // denom the fan token denom + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // old_minter, the actual minter + OldMinter string `protobuf:"bytes,2,opt,name=old_minter,json=oldMinter,proto3" json:"old_minter,omitempty"` + // new_minter, the new fan token minter + NewMinter string `protobuf:"bytes,3,opt,name=new_minter,json=newMinter,proto3" json:"new_minter,omitempty"` +} + +func (x *MsgSetMinter) Reset() { + *x = MsgSetMinter{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgSetMinter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSetMinter) ProtoMessage() {} + +// Deprecated: Use MsgSetMinter.ProtoReflect.Descriptor instead. +func (*MsgSetMinter) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{8} +} + +func (x *MsgSetMinter) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *MsgSetMinter) GetOldMinter() string { + if x != nil { + return x.OldMinter + } + return "" +} + +func (x *MsgSetMinter) GetNewMinter() string { + if x != nil { + return x.NewMinter + } + return "" +} + +// MsgSetMinterResponse defines the MsgTransferAuthority response type +type MsgSetMinterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // denom the fan token denom + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // old_minter, the actual minter + OldMinter string `protobuf:"bytes,2,opt,name=old_minter,json=oldMinter,proto3" json:"old_minter,omitempty"` + // new_minter, the new fan token minter + NewMinter string `protobuf:"bytes,3,opt,name=new_minter,json=newMinter,proto3" json:"new_minter,omitempty"` +} + +func (x *MsgSetMinterResponse) Reset() { + *x = MsgSetMinterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgSetMinterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSetMinterResponse) ProtoMessage() {} + +// Deprecated: Use MsgSetMinterResponse.ProtoReflect.Descriptor instead. +func (*MsgSetMinterResponse) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{9} +} + +func (x *MsgSetMinterResponse) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *MsgSetMinterResponse) GetOldMinter() string { + if x != nil { + return x.OldMinter + } + return "" +} + +func (x *MsgSetMinterResponse) GetNewMinter() string { + if x != nil { + return x.NewMinter + } + return "" +} + +// MsgSetAuthority defines a message for changing the fan token minter address +type MsgSetAuthority struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // denom the fan token denom + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // old_authority, the actual metadata authority + OldAuthority string `protobuf:"bytes,2,opt,name=old_authority,json=oldAuthority,proto3" json:"old_authority,omitempty"` + // new_authority, the new fan token metadata authority + NewAuthority string `protobuf:"bytes,3,opt,name=new_authority,json=newAuthority,proto3" json:"new_authority,omitempty"` +} + +func (x *MsgSetAuthority) Reset() { + *x = MsgSetAuthority{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgSetAuthority) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSetAuthority) ProtoMessage() {} + +// Deprecated: Use MsgSetAuthority.ProtoReflect.Descriptor instead. +func (*MsgSetAuthority) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{10} +} + +func (x *MsgSetAuthority) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *MsgSetAuthority) GetOldAuthority() string { + if x != nil { + return x.OldAuthority + } + return "" +} + +func (x *MsgSetAuthority) GetNewAuthority() string { + if x != nil { + return x.NewAuthority + } + return "" +} + +// MsgSetAuthorityResponse defines the MsgTransferAuthority response type +type MsgSetAuthorityResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // denom the fan token denom + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // old_authority, the actual metadata authority + OldAuthority string `protobuf:"bytes,2,opt,name=old_authority,json=oldAuthority,proto3" json:"old_authority,omitempty"` + // new_authority, the new fan token metadata authority + NewAuthority string `protobuf:"bytes,3,opt,name=new_authority,json=newAuthority,proto3" json:"new_authority,omitempty"` +} + +func (x *MsgSetAuthorityResponse) Reset() { + *x = MsgSetAuthorityResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgSetAuthorityResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSetAuthorityResponse) ProtoMessage() {} + +// Deprecated: Use MsgSetAuthorityResponse.ProtoReflect.Descriptor instead. +func (*MsgSetAuthorityResponse) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{11} +} + +func (x *MsgSetAuthorityResponse) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *MsgSetAuthorityResponse) GetOldAuthority() string { + if x != nil { + return x.OldAuthority + } + return "" +} + +func (x *MsgSetAuthorityResponse) GetNewAuthority() string { + if x != nil { + return x.NewAuthority + } + return "" +} + +type MsgSetUri struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"` +} + +func (x *MsgSetUri) Reset() { + *x = MsgSetUri{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgSetUri) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSetUri) ProtoMessage() {} + +// Deprecated: Use MsgSetUri.ProtoReflect.Descriptor instead. +func (*MsgSetUri) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{12} +} + +func (x *MsgSetUri) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +func (x *MsgSetUri) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *MsgSetUri) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +type MsgSetUriResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (x *MsgSetUriResponse) Reset() { + *x = MsgSetUriResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgSetUriResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSetUriResponse) ProtoMessage() {} + +// Deprecated: Use MsgSetUriResponse.ProtoReflect.Descriptor instead. +func (*MsgSetUriResponse) Descriptor() ([]byte, []int) { + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP(), []int{13} +} + +func (x *MsgSetUriResponse) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +var File_bitsong_fantoken_v1beta1_tx_proto protoreflect.FileDescriptor + +var file_bitsong_fantoken_v1beta1_tx_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x78, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, + 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, + 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe7, 0x01, 0x0a, 0x08, 0x4d, + 0x73, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, + 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x52, 0x09, 0x6d, 0x61, 0x78, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x03, + 0x75, 0x72, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xe2, 0xde, 0x1f, 0x03, 0x55, + 0x52, 0x49, 0x52, 0x03, 0x75, 0x72, 0x69, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x6d, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3a, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xf2, 0xde, 0x1f, 0x0c, 0x79, 0x61, 0x6d, + 0x6c, 0x3a, 0x22, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x22, 0x4b, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, + 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x2e, 0x0a, + 0x16, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x90, 0x01, + 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x4d, 0x69, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, + 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x13, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0b, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x63, 0x6f, 0x69, 0x6e, 0x22, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x22, 0x73, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x4d, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x42, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x13, 0xc8, 0xde, 0x1f, 0x00, + 0xf2, 0xde, 0x1f, 0x0b, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x69, 0x6e, 0x22, 0x52, + 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x22, 0x72, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x42, 0x75, 0x72, 0x6e, + 0x12, 0x42, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x13, 0xc8, 0xde, 0x1f, 0x00, 0xf2, + 0xde, 0x1f, 0x0b, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x69, 0x6e, 0x22, 0x52, 0x04, + 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, + 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x6d, 0x0a, 0x0f, 0x4d, 0x73, 0x67, + 0x42, 0x75, 0x72, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x13, 0xc8, + 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0b, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x69, + 0x6e, 0x22, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x22, 0xa1, 0x01, 0x0a, 0x0c, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x74, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, + 0x34, 0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, + 0x6c, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x4d, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, 0x11, 0x79, + 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x22, + 0x52, 0x09, 0x6e, 0x65, 0x77, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x3a, 0x0f, 0x82, 0xe7, 0xb0, + 0x2a, 0x0a, 0x6f, 0x6c, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x98, 0x01, 0x0a, + 0x14, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x34, 0x0a, 0x0a, 0x6f, + 0x6c, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x15, 0xf2, 0xde, 0x1f, 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x6c, 0x64, 0x5f, 0x6d, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x4d, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x34, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x52, 0x09, 0x6e, 0x65, + 0x77, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x22, 0xb9, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, + 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x12, 0x3d, 0x0a, 0x0d, 0x6f, 0x6c, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xf2, 0xde, 0x1f, 0x14, 0x79, 0x61, + 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x6c, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x22, 0x52, 0x0c, 0x6f, 0x6c, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x12, 0x3d, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xf2, 0xde, 0x1f, 0x14, 0x79, 0x61, 0x6d, + 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x22, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x3a, + 0x12, 0x82, 0xe7, 0xb0, 0x2a, 0x0d, 0x6f, 0x6c, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x22, 0xad, 0x01, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x3d, 0x0a, 0x0d, 0x6f, 0x6c, 0x64, 0x5f, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xf2, 0xde, + 0x1f, 0x14, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x6c, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x52, 0x0c, 0x6f, 0x6c, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xf2, 0xde, 0x1f, + 0x14, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x22, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x22, 0x6a, 0x0a, 0x09, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x55, 0x72, 0x69, + 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, + 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x19, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xe2, 0xde, 0x1f, 0x03, 0x55, 0x52, 0x49, 0x52, 0x03, 0x75, 0x72, 0x69, 0x3a, + 0x0e, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, + 0x29, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x55, 0x72, 0x69, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x32, 0xab, 0x05, 0x0a, 0x03, 0x4d, + 0x73, 0x67, 0x12, 0x57, 0x0a, 0x05, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x22, 0x2e, 0x62, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x1a, + 0x2a, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x04, 0x4d, + 0x69, 0x6e, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, + 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x4d, 0x69, 0x6e, 0x74, 0x1a, 0x29, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, + 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x54, 0x0a, 0x04, 0x42, 0x75, 0x72, 0x6e, 0x12, 0x21, 0x2e, 0x62, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x75, 0x72, 0x6e, 0x1a, 0x29, 0x2e, 0x62, + 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x75, 0x72, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x4d, 0x69, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, + 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x6e, 0x74, + 0x1a, 0x30, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x63, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x26, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x74, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x1a, 0x2e, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, + 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x41, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x29, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, + 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x1a, 0x31, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x06, 0x53, 0x65, 0x74, 0x55, 0x72, 0x69, 0x12, + 0x23, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x74, 0x55, 0x72, 0x69, 0x1a, 0x2b, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, + 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x55, 0x72, 0x69, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xe8, 0x01, 0xc8, 0xe1, 0x1e, 0x00, 0x0a, + 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x66, 0x61, 0x6e, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, + 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x62, 0x69, 0x74, 0x73, 0x6f, + 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x3b, 0x66, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x42, 0x46, 0x58, 0xaa, 0x02, 0x18, 0x42, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2e, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x18, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x46, + 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, + 0x02, 0x24, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, + 0x3a, 0x3a, 0x46, 0x61, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_bitsong_fantoken_v1beta1_tx_proto_rawDescOnce sync.Once + file_bitsong_fantoken_v1beta1_tx_proto_rawDescData = file_bitsong_fantoken_v1beta1_tx_proto_rawDesc +) + +func file_bitsong_fantoken_v1beta1_tx_proto_rawDescGZIP() []byte { + file_bitsong_fantoken_v1beta1_tx_proto_rawDescOnce.Do(func() { + file_bitsong_fantoken_v1beta1_tx_proto_rawDescData = protoimpl.X.CompressGZIP(file_bitsong_fantoken_v1beta1_tx_proto_rawDescData) + }) + return file_bitsong_fantoken_v1beta1_tx_proto_rawDescData +} + +var file_bitsong_fantoken_v1beta1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_bitsong_fantoken_v1beta1_tx_proto_goTypes = []interface{}{ + (*MsgIssue)(nil), // 0: bitsong.fantoken.v1beta1.MsgIssue + (*MsgIssueResponse)(nil), // 1: bitsong.fantoken.v1beta1.MsgIssueResponse + (*MsgDisableMint)(nil), // 2: bitsong.fantoken.v1beta1.MsgDisableMint + (*MsgDisableMintResponse)(nil), // 3: bitsong.fantoken.v1beta1.MsgDisableMintResponse + (*MsgMint)(nil), // 4: bitsong.fantoken.v1beta1.MsgMint + (*MsgMintResponse)(nil), // 5: bitsong.fantoken.v1beta1.MsgMintResponse + (*MsgBurn)(nil), // 6: bitsong.fantoken.v1beta1.MsgBurn + (*MsgBurnResponse)(nil), // 7: bitsong.fantoken.v1beta1.MsgBurnResponse + (*MsgSetMinter)(nil), // 8: bitsong.fantoken.v1beta1.MsgSetMinter + (*MsgSetMinterResponse)(nil), // 9: bitsong.fantoken.v1beta1.MsgSetMinterResponse + (*MsgSetAuthority)(nil), // 10: bitsong.fantoken.v1beta1.MsgSetAuthority + (*MsgSetAuthorityResponse)(nil), // 11: bitsong.fantoken.v1beta1.MsgSetAuthorityResponse + (*MsgSetUri)(nil), // 12: bitsong.fantoken.v1beta1.MsgSetUri + (*MsgSetUriResponse)(nil), // 13: bitsong.fantoken.v1beta1.MsgSetUriResponse + (*v1beta1.Coin)(nil), // 14: cosmos.base.v1beta1.Coin +} +var file_bitsong_fantoken_v1beta1_tx_proto_depIdxs = []int32{ + 14, // 0: bitsong.fantoken.v1beta1.MsgMint.coin:type_name -> cosmos.base.v1beta1.Coin + 14, // 1: bitsong.fantoken.v1beta1.MsgMintResponse.coin:type_name -> cosmos.base.v1beta1.Coin + 14, // 2: bitsong.fantoken.v1beta1.MsgBurn.coin:type_name -> cosmos.base.v1beta1.Coin + 14, // 3: bitsong.fantoken.v1beta1.MsgBurnResponse.coin:type_name -> cosmos.base.v1beta1.Coin + 0, // 4: bitsong.fantoken.v1beta1.Msg.Issue:input_type -> bitsong.fantoken.v1beta1.MsgIssue + 4, // 5: bitsong.fantoken.v1beta1.Msg.Mint:input_type -> bitsong.fantoken.v1beta1.MsgMint + 6, // 6: bitsong.fantoken.v1beta1.Msg.Burn:input_type -> bitsong.fantoken.v1beta1.MsgBurn + 2, // 7: bitsong.fantoken.v1beta1.Msg.DisableMint:input_type -> bitsong.fantoken.v1beta1.MsgDisableMint + 8, // 8: bitsong.fantoken.v1beta1.Msg.SetMinter:input_type -> bitsong.fantoken.v1beta1.MsgSetMinter + 10, // 9: bitsong.fantoken.v1beta1.Msg.SetAuthority:input_type -> bitsong.fantoken.v1beta1.MsgSetAuthority + 12, // 10: bitsong.fantoken.v1beta1.Msg.SetUri:input_type -> bitsong.fantoken.v1beta1.MsgSetUri + 1, // 11: bitsong.fantoken.v1beta1.Msg.Issue:output_type -> bitsong.fantoken.v1beta1.MsgIssueResponse + 5, // 12: bitsong.fantoken.v1beta1.Msg.Mint:output_type -> bitsong.fantoken.v1beta1.MsgMintResponse + 7, // 13: bitsong.fantoken.v1beta1.Msg.Burn:output_type -> bitsong.fantoken.v1beta1.MsgBurnResponse + 3, // 14: bitsong.fantoken.v1beta1.Msg.DisableMint:output_type -> bitsong.fantoken.v1beta1.MsgDisableMintResponse + 9, // 15: bitsong.fantoken.v1beta1.Msg.SetMinter:output_type -> bitsong.fantoken.v1beta1.MsgSetMinterResponse + 11, // 16: bitsong.fantoken.v1beta1.Msg.SetAuthority:output_type -> bitsong.fantoken.v1beta1.MsgSetAuthorityResponse + 13, // 17: bitsong.fantoken.v1beta1.Msg.SetUri:output_type -> bitsong.fantoken.v1beta1.MsgSetUriResponse + 11, // [11:18] is the sub-list for method output_type + 4, // [4:11] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_bitsong_fantoken_v1beta1_tx_proto_init() } +func file_bitsong_fantoken_v1beta1_tx_proto_init() { + if File_bitsong_fantoken_v1beta1_tx_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgIssue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgIssueResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgDisableMint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgDisableMintResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgMint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgMintResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgBurn); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgBurnResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgSetMinter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgSetMinterResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgSetAuthority); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgSetAuthorityResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgSetUri); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_fantoken_v1beta1_tx_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgSetUriResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bitsong_fantoken_v1beta1_tx_proto_rawDesc, + NumEnums: 0, + NumMessages: 14, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_bitsong_fantoken_v1beta1_tx_proto_goTypes, + DependencyIndexes: file_bitsong_fantoken_v1beta1_tx_proto_depIdxs, + MessageInfos: file_bitsong_fantoken_v1beta1_tx_proto_msgTypes, + }.Build() + File_bitsong_fantoken_v1beta1_tx_proto = out.File + file_bitsong_fantoken_v1beta1_tx_proto_rawDesc = nil + file_bitsong_fantoken_v1beta1_tx_proto_goTypes = nil + file_bitsong_fantoken_v1beta1_tx_proto_depIdxs = nil +} diff --git a/api/bitsong/fantoken/v1beta1/tx_grpc.pb.go b/api/bitsong/fantoken/v1beta1/tx_grpc.pb.go new file mode 100644 index 00000000..4388b724 --- /dev/null +++ b/api/bitsong/fantoken/v1beta1/tx_grpc.pb.go @@ -0,0 +1,361 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.5.1 +// - protoc (unknown) +// source: bitsong/fantoken/v1beta1/tx.proto + +package fantokenv1beta1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Msg_Issue_FullMethodName = "/bitsong.fantoken.v1beta1.Msg/Issue" + Msg_Mint_FullMethodName = "/bitsong.fantoken.v1beta1.Msg/Mint" + Msg_Burn_FullMethodName = "/bitsong.fantoken.v1beta1.Msg/Burn" + Msg_DisableMint_FullMethodName = "/bitsong.fantoken.v1beta1.Msg/DisableMint" + Msg_SetMinter_FullMethodName = "/bitsong.fantoken.v1beta1.Msg/SetMinter" + Msg_SetAuthority_FullMethodName = "/bitsong.fantoken.v1beta1.Msg/SetAuthority" + Msg_SetUri_FullMethodName = "/bitsong.fantoken.v1beta1.Msg/SetUri" +) + +// MsgClient is the client API for Msg service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// Msg defines the oracle Msg service +type MsgClient interface { + // Issue defines a method for issuing a new fan token + Issue(ctx context.Context, in *MsgIssue, opts ...grpc.CallOption) (*MsgIssueResponse, error) + // Mint defines a method for minting some fan tokens + Mint(ctx context.Context, in *MsgMint, opts ...grpc.CallOption) (*MsgMintResponse, error) + // Burn defines a method for burning some fan tokens + Burn(ctx context.Context, in *MsgBurn, opts ...grpc.CallOption) (*MsgBurnResponse, error) + // DisableMint defines a method for disable the mint function + DisableMint(ctx context.Context, in *MsgDisableMint, opts ...grpc.CallOption) (*MsgDisableMintResponse, error) + SetMinter(ctx context.Context, in *MsgSetMinter, opts ...grpc.CallOption) (*MsgSetMinterResponse, error) + SetAuthority(ctx context.Context, in *MsgSetAuthority, opts ...grpc.CallOption) (*MsgSetAuthorityResponse, error) + SetUri(ctx context.Context, in *MsgSetUri, opts ...grpc.CallOption) (*MsgSetUriResponse, error) +} + +type msgClient struct { + cc grpc.ClientConnInterface +} + +func NewMsgClient(cc grpc.ClientConnInterface) MsgClient { + return &msgClient{cc} +} + +func (c *msgClient) Issue(ctx context.Context, in *MsgIssue, opts ...grpc.CallOption) (*MsgIssueResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(MsgIssueResponse) + err := c.cc.Invoke(ctx, Msg_Issue_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) Mint(ctx context.Context, in *MsgMint, opts ...grpc.CallOption) (*MsgMintResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(MsgMintResponse) + err := c.cc.Invoke(ctx, Msg_Mint_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) Burn(ctx context.Context, in *MsgBurn, opts ...grpc.CallOption) (*MsgBurnResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(MsgBurnResponse) + err := c.cc.Invoke(ctx, Msg_Burn_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) DisableMint(ctx context.Context, in *MsgDisableMint, opts ...grpc.CallOption) (*MsgDisableMintResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(MsgDisableMintResponse) + err := c.cc.Invoke(ctx, Msg_DisableMint_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) SetMinter(ctx context.Context, in *MsgSetMinter, opts ...grpc.CallOption) (*MsgSetMinterResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(MsgSetMinterResponse) + err := c.cc.Invoke(ctx, Msg_SetMinter_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) SetAuthority(ctx context.Context, in *MsgSetAuthority, opts ...grpc.CallOption) (*MsgSetAuthorityResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(MsgSetAuthorityResponse) + err := c.cc.Invoke(ctx, Msg_SetAuthority_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) SetUri(ctx context.Context, in *MsgSetUri, opts ...grpc.CallOption) (*MsgSetUriResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(MsgSetUriResponse) + err := c.cc.Invoke(ctx, Msg_SetUri_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// MsgServer is the server API for Msg service. +// All implementations must embed UnimplementedMsgServer +// for forward compatibility. +// +// Msg defines the oracle Msg service +type MsgServer interface { + // Issue defines a method for issuing a new fan token + Issue(context.Context, *MsgIssue) (*MsgIssueResponse, error) + // Mint defines a method for minting some fan tokens + Mint(context.Context, *MsgMint) (*MsgMintResponse, error) + // Burn defines a method for burning some fan tokens + Burn(context.Context, *MsgBurn) (*MsgBurnResponse, error) + // DisableMint defines a method for disable the mint function + DisableMint(context.Context, *MsgDisableMint) (*MsgDisableMintResponse, error) + SetMinter(context.Context, *MsgSetMinter) (*MsgSetMinterResponse, error) + SetAuthority(context.Context, *MsgSetAuthority) (*MsgSetAuthorityResponse, error) + SetUri(context.Context, *MsgSetUri) (*MsgSetUriResponse, error) + mustEmbedUnimplementedMsgServer() +} + +// UnimplementedMsgServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedMsgServer struct{} + +func (UnimplementedMsgServer) Issue(context.Context, *MsgIssue) (*MsgIssueResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Issue not implemented") +} +func (UnimplementedMsgServer) Mint(context.Context, *MsgMint) (*MsgMintResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Mint not implemented") +} +func (UnimplementedMsgServer) Burn(context.Context, *MsgBurn) (*MsgBurnResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Burn not implemented") +} +func (UnimplementedMsgServer) DisableMint(context.Context, *MsgDisableMint) (*MsgDisableMintResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisableMint not implemented") +} +func (UnimplementedMsgServer) SetMinter(context.Context, *MsgSetMinter) (*MsgSetMinterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetMinter not implemented") +} +func (UnimplementedMsgServer) SetAuthority(context.Context, *MsgSetAuthority) (*MsgSetAuthorityResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetAuthority not implemented") +} +func (UnimplementedMsgServer) SetUri(context.Context, *MsgSetUri) (*MsgSetUriResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetUri not implemented") +} +func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {} +func (UnimplementedMsgServer) testEmbeddedByValue() {} + +// UnsafeMsgServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to MsgServer will +// result in compilation errors. +type UnsafeMsgServer interface { + mustEmbedUnimplementedMsgServer() +} + +func RegisterMsgServer(s grpc.ServiceRegistrar, srv MsgServer) { + // If the following call pancis, it indicates UnimplementedMsgServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&Msg_ServiceDesc, srv) +} + +func _Msg_Issue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgIssue) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).Issue(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_Issue_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).Issue(ctx, req.(*MsgIssue)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_Mint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgMint) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).Mint(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_Mint_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).Mint(ctx, req.(*MsgMint)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_Burn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgBurn) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).Burn(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_Burn_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).Burn(ctx, req.(*MsgBurn)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_DisableMint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgDisableMint) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).DisableMint(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_DisableMint_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).DisableMint(ctx, req.(*MsgDisableMint)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_SetMinter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgSetMinter) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).SetMinter(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_SetMinter_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).SetMinter(ctx, req.(*MsgSetMinter)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_SetAuthority_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgSetAuthority) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).SetAuthority(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_SetAuthority_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).SetAuthority(ctx, req.(*MsgSetAuthority)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_SetUri_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgSetUri) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).SetUri(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_SetUri_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).SetUri(ctx, req.(*MsgSetUri)) + } + return interceptor(ctx, in, info, handler) +} + +// Msg_ServiceDesc is the grpc.ServiceDesc for Msg service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Msg_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "bitsong.fantoken.v1beta1.Msg", + HandlerType: (*MsgServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Issue", + Handler: _Msg_Issue_Handler, + }, + { + MethodName: "Mint", + Handler: _Msg_Mint_Handler, + }, + { + MethodName: "Burn", + Handler: _Msg_Burn_Handler, + }, + { + MethodName: "DisableMint", + Handler: _Msg_DisableMint_Handler, + }, + { + MethodName: "SetMinter", + Handler: _Msg_SetMinter_Handler, + }, + { + MethodName: "SetAuthority", + Handler: _Msg_SetAuthority_Handler, + }, + { + MethodName: "SetUri", + Handler: _Msg_SetUri_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "bitsong/fantoken/v1beta1/tx.proto", +} diff --git a/api/bitsong/smartaccount/v1beta1/genesis.pulsar.go b/api/bitsong/smartaccount/v1beta1/genesis.pulsar.go new file mode 100644 index 00000000..2cd5b305 --- /dev/null +++ b/api/bitsong/smartaccount/v1beta1/genesis.pulsar.go @@ -0,0 +1,1452 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package smartaccountv1beta1 + +import ( + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var _ protoreflect.List = (*_AuthenticatorData_2_list)(nil) + +type _AuthenticatorData_2_list struct { + list *[]*AccountAuthenticator +} + +func (x *_AuthenticatorData_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_AuthenticatorData_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_AuthenticatorData_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*AccountAuthenticator) + (*x.list)[i] = concreteValue +} + +func (x *_AuthenticatorData_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*AccountAuthenticator) + *x.list = append(*x.list, concreteValue) +} + +func (x *_AuthenticatorData_2_list) AppendMutable() protoreflect.Value { + v := new(AccountAuthenticator) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_AuthenticatorData_2_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_AuthenticatorData_2_list) NewElement() protoreflect.Value { + v := new(AccountAuthenticator) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_AuthenticatorData_2_list) IsValid() bool { + return x.list != nil +} + +var ( + md_AuthenticatorData protoreflect.MessageDescriptor + fd_AuthenticatorData_address protoreflect.FieldDescriptor + fd_AuthenticatorData_authenticators protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_genesis_proto_init() + md_AuthenticatorData = File_bitsong_smartaccount_v1beta1_genesis_proto.Messages().ByName("AuthenticatorData") + fd_AuthenticatorData_address = md_AuthenticatorData.Fields().ByName("address") + fd_AuthenticatorData_authenticators = md_AuthenticatorData.Fields().ByName("authenticators") +} + +var _ protoreflect.Message = (*fastReflection_AuthenticatorData)(nil) + +type fastReflection_AuthenticatorData AuthenticatorData + +func (x *AuthenticatorData) ProtoReflect() protoreflect.Message { + return (*fastReflection_AuthenticatorData)(x) +} + +func (x *AuthenticatorData) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_genesis_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_AuthenticatorData_messageType fastReflection_AuthenticatorData_messageType +var _ protoreflect.MessageType = fastReflection_AuthenticatorData_messageType{} + +type fastReflection_AuthenticatorData_messageType struct{} + +func (x fastReflection_AuthenticatorData_messageType) Zero() protoreflect.Message { + return (*fastReflection_AuthenticatorData)(nil) +} +func (x fastReflection_AuthenticatorData_messageType) New() protoreflect.Message { + return new(fastReflection_AuthenticatorData) +} +func (x fastReflection_AuthenticatorData_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_AuthenticatorData +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_AuthenticatorData) Descriptor() protoreflect.MessageDescriptor { + return md_AuthenticatorData +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_AuthenticatorData) Type() protoreflect.MessageType { + return _fastReflection_AuthenticatorData_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_AuthenticatorData) New() protoreflect.Message { + return new(fastReflection_AuthenticatorData) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_AuthenticatorData) Interface() protoreflect.ProtoMessage { + return (*AuthenticatorData)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_AuthenticatorData) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Address != "" { + value := protoreflect.ValueOfString(x.Address) + if !f(fd_AuthenticatorData_address, value) { + return + } + } + if len(x.Authenticators) != 0 { + value := protoreflect.ValueOfList(&_AuthenticatorData_2_list{list: &x.Authenticators}) + if !f(fd_AuthenticatorData_authenticators, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_AuthenticatorData) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AuthenticatorData.address": + return x.Address != "" + case "bitsong.smartaccount.v1beta1.AuthenticatorData.authenticators": + return len(x.Authenticators) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AuthenticatorData")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AuthenticatorData does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AuthenticatorData) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AuthenticatorData.address": + x.Address = "" + case "bitsong.smartaccount.v1beta1.AuthenticatorData.authenticators": + x.Authenticators = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AuthenticatorData")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AuthenticatorData does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_AuthenticatorData) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.AuthenticatorData.address": + value := x.Address + return protoreflect.ValueOfString(value) + case "bitsong.smartaccount.v1beta1.AuthenticatorData.authenticators": + if len(x.Authenticators) == 0 { + return protoreflect.ValueOfList(&_AuthenticatorData_2_list{}) + } + listValue := &_AuthenticatorData_2_list{list: &x.Authenticators} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AuthenticatorData")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AuthenticatorData does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AuthenticatorData) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AuthenticatorData.address": + x.Address = value.Interface().(string) + case "bitsong.smartaccount.v1beta1.AuthenticatorData.authenticators": + lv := value.List() + clv := lv.(*_AuthenticatorData_2_list) + x.Authenticators = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AuthenticatorData")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AuthenticatorData does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AuthenticatorData) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AuthenticatorData.authenticators": + if x.Authenticators == nil { + x.Authenticators = []*AccountAuthenticator{} + } + value := &_AuthenticatorData_2_list{list: &x.Authenticators} + return protoreflect.ValueOfList(value) + case "bitsong.smartaccount.v1beta1.AuthenticatorData.address": + panic(fmt.Errorf("field address of message bitsong.smartaccount.v1beta1.AuthenticatorData is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AuthenticatorData")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AuthenticatorData does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_AuthenticatorData) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AuthenticatorData.address": + return protoreflect.ValueOfString("") + case "bitsong.smartaccount.v1beta1.AuthenticatorData.authenticators": + list := []*AccountAuthenticator{} + return protoreflect.ValueOfList(&_AuthenticatorData_2_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AuthenticatorData")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AuthenticatorData does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_AuthenticatorData) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.AuthenticatorData", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_AuthenticatorData) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AuthenticatorData) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_AuthenticatorData) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_AuthenticatorData) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*AuthenticatorData) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Address) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.Authenticators) > 0 { + for _, e := range x.Authenticators { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*AuthenticatorData) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Authenticators) > 0 { + for iNdEx := len(x.Authenticators) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Authenticators[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + } + if len(x.Address) > 0 { + i -= len(x.Address) + copy(dAtA[i:], x.Address) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Address))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*AuthenticatorData) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AuthenticatorData: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AuthenticatorData: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Authenticators", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Authenticators = append(x.Authenticators, &AccountAuthenticator{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Authenticators[len(x.Authenticators)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_GenesisState_3_list)(nil) + +type _GenesisState_3_list struct { + list *[]*AuthenticatorData +} + +func (x *_GenesisState_3_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_GenesisState_3_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_GenesisState_3_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*AuthenticatorData) + (*x.list)[i] = concreteValue +} + +func (x *_GenesisState_3_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*AuthenticatorData) + *x.list = append(*x.list, concreteValue) +} + +func (x *_GenesisState_3_list) AppendMutable() protoreflect.Value { + v := new(AuthenticatorData) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_3_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_GenesisState_3_list) NewElement() protoreflect.Value { + v := new(AuthenticatorData) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_3_list) IsValid() bool { + return x.list != nil +} + +var ( + md_GenesisState protoreflect.MessageDescriptor + fd_GenesisState_params protoreflect.FieldDescriptor + fd_GenesisState_next_authenticator_id protoreflect.FieldDescriptor + fd_GenesisState_authenticator_data protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_genesis_proto_init() + md_GenesisState = File_bitsong_smartaccount_v1beta1_genesis_proto.Messages().ByName("GenesisState") + fd_GenesisState_params = md_GenesisState.Fields().ByName("params") + fd_GenesisState_next_authenticator_id = md_GenesisState.Fields().ByName("next_authenticator_id") + fd_GenesisState_authenticator_data = md_GenesisState.Fields().ByName("authenticator_data") +} + +var _ protoreflect.Message = (*fastReflection_GenesisState)(nil) + +type fastReflection_GenesisState GenesisState + +func (x *GenesisState) ProtoReflect() protoreflect.Message { + return (*fastReflection_GenesisState)(x) +} + +func (x *GenesisState) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_genesis_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_GenesisState_messageType fastReflection_GenesisState_messageType +var _ protoreflect.MessageType = fastReflection_GenesisState_messageType{} + +type fastReflection_GenesisState_messageType struct{} + +func (x fastReflection_GenesisState_messageType) Zero() protoreflect.Message { + return (*fastReflection_GenesisState)(nil) +} +func (x fastReflection_GenesisState_messageType) New() protoreflect.Message { + return new(fastReflection_GenesisState) +} +func (x fastReflection_GenesisState_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_GenesisState +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_GenesisState) Descriptor() protoreflect.MessageDescriptor { + return md_GenesisState +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_GenesisState) Type() protoreflect.MessageType { + return _fastReflection_GenesisState_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_GenesisState) New() protoreflect.Message { + return new(fastReflection_GenesisState) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_GenesisState) Interface() protoreflect.ProtoMessage { + return (*GenesisState)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Params != nil { + value := protoreflect.ValueOfMessage(x.Params.ProtoReflect()) + if !f(fd_GenesisState_params, value) { + return + } + } + if x.NextAuthenticatorId != uint64(0) { + value := protoreflect.ValueOfUint64(x.NextAuthenticatorId) + if !f(fd_GenesisState_next_authenticator_id, value) { + return + } + } + if len(x.AuthenticatorData) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_3_list{list: &x.AuthenticatorData}) + if !f(fd_GenesisState_authenticator_data, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GenesisState.params": + return x.Params != nil + case "bitsong.smartaccount.v1beta1.GenesisState.next_authenticator_id": + return x.NextAuthenticatorId != uint64(0) + case "bitsong.smartaccount.v1beta1.GenesisState.authenticator_data": + return len(x.AuthenticatorData) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GenesisState")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GenesisState does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GenesisState.params": + x.Params = nil + case "bitsong.smartaccount.v1beta1.GenesisState.next_authenticator_id": + x.NextAuthenticatorId = uint64(0) + case "bitsong.smartaccount.v1beta1.GenesisState.authenticator_data": + x.AuthenticatorData = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GenesisState")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GenesisState does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.GenesisState.params": + value := x.Params + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "bitsong.smartaccount.v1beta1.GenesisState.next_authenticator_id": + value := x.NextAuthenticatorId + return protoreflect.ValueOfUint64(value) + case "bitsong.smartaccount.v1beta1.GenesisState.authenticator_data": + if len(x.AuthenticatorData) == 0 { + return protoreflect.ValueOfList(&_GenesisState_3_list{}) + } + listValue := &_GenesisState_3_list{list: &x.AuthenticatorData} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GenesisState")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GenesisState does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GenesisState.params": + x.Params = value.Message().Interface().(*Params) + case "bitsong.smartaccount.v1beta1.GenesisState.next_authenticator_id": + x.NextAuthenticatorId = value.Uint() + case "bitsong.smartaccount.v1beta1.GenesisState.authenticator_data": + lv := value.List() + clv := lv.(*_GenesisState_3_list) + x.AuthenticatorData = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GenesisState")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GenesisState does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GenesisState.params": + if x.Params == nil { + x.Params = new(Params) + } + return protoreflect.ValueOfMessage(x.Params.ProtoReflect()) + case "bitsong.smartaccount.v1beta1.GenesisState.authenticator_data": + if x.AuthenticatorData == nil { + x.AuthenticatorData = []*AuthenticatorData{} + } + value := &_GenesisState_3_list{list: &x.AuthenticatorData} + return protoreflect.ValueOfList(value) + case "bitsong.smartaccount.v1beta1.GenesisState.next_authenticator_id": + panic(fmt.Errorf("field next_authenticator_id of message bitsong.smartaccount.v1beta1.GenesisState is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GenesisState")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GenesisState does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GenesisState.params": + m := new(Params) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "bitsong.smartaccount.v1beta1.GenesisState.next_authenticator_id": + return protoreflect.ValueOfUint64(uint64(0)) + case "bitsong.smartaccount.v1beta1.GenesisState.authenticator_data": + list := []*AuthenticatorData{} + return protoreflect.ValueOfList(&_GenesisState_3_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GenesisState")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GenesisState does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_GenesisState) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.GenesisState", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_GenesisState) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GenesisState) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_GenesisState) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*GenesisState) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Params != nil { + l = options.Size(x.Params) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.NextAuthenticatorId != 0 { + n += 1 + runtime.Sov(uint64(x.NextAuthenticatorId)) + } + if len(x.AuthenticatorData) > 0 { + for _, e := range x.AuthenticatorData { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*GenesisState) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.AuthenticatorData) > 0 { + for iNdEx := len(x.AuthenticatorData) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.AuthenticatorData[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + } + if x.NextAuthenticatorId != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.NextAuthenticatorId)) + i-- + dAtA[i] = 0x10 + } + if x.Params != nil { + encoded, err := options.Marshal(x.Params) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*GenesisState) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Params == nil { + x.Params = &Params{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Params); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NextAuthenticatorId", wireType) + } + x.NextAuthenticatorId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.NextAuthenticatorId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AuthenticatorData", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.AuthenticatorData = append(x.AuthenticatorData, &AuthenticatorData{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.AuthenticatorData[len(x.AuthenticatorData)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: bitsong/smartaccount/v1beta1/genesis.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// AuthenticatorData represents a genesis exported account with Authenticators. +// The address is used as the key, and the account authenticators are stored in +// the authenticators field. +type AuthenticatorData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // address is an account address, one address can have many authenticators + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // authenticators are the account's authenticators, these can be multiple + // types including SignatureVerification, AllOfs, CosmWasmAuthenticators, etc + Authenticators []*AccountAuthenticator `protobuf:"bytes,2,rep,name=authenticators,proto3" json:"authenticators,omitempty"` +} + +func (x *AuthenticatorData) Reset() { + *x = AuthenticatorData{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_genesis_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuthenticatorData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthenticatorData) ProtoMessage() {} + +// Deprecated: Use AuthenticatorData.ProtoReflect.Descriptor instead. +func (*AuthenticatorData) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_genesis_proto_rawDescGZIP(), []int{0} +} + +func (x *AuthenticatorData) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *AuthenticatorData) GetAuthenticators() []*AccountAuthenticator { + if x != nil { + return x.Authenticators + } + return nil +} + +// GenesisState defines the authenticator module's genesis state. +type GenesisState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // params define the parameters for the authenticator module. + Params *Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params,omitempty"` + // next_authenticator_id is the next available authenticator ID. + NextAuthenticatorId uint64 `protobuf:"varint,2,opt,name=next_authenticator_id,json=nextAuthenticatorId,proto3" json:"next_authenticator_id,omitempty"` + // authenticator_data contains the data for multiple accounts, each with their + // authenticators. + AuthenticatorData []*AuthenticatorData `protobuf:"bytes,3,rep,name=authenticator_data,json=authenticatorData,proto3" json:"authenticator_data,omitempty"` +} + +func (x *GenesisState) Reset() { + *x = GenesisState{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_genesis_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenesisState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenesisState) ProtoMessage() {} + +// Deprecated: Use GenesisState.ProtoReflect.Descriptor instead. +func (*GenesisState) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_genesis_proto_rawDescGZIP(), []int{1} +} + +func (x *GenesisState) GetParams() *Params { + if x != nil { + return x.Params + } + return nil +} + +func (x *GenesisState) GetNextAuthenticatorId() uint64 { + if x != nil { + return x.NextAuthenticatorId + } + return 0 +} + +func (x *GenesisState) GetAuthenticatorData() []*AuthenticatorData { + if x != nil { + return x.AuthenticatorData + } + return nil +} + +var File_bitsong_smartaccount_v1beta1_genesis_proto protoreflect.FileDescriptor + +var file_bitsong_smartaccount_v1beta1_genesis_proto_rawDesc = []byte{ + 0x0a, 0x2a, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x67, + 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x62, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x29, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x62, 0x69, 0x74, + 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8f, 0x01, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x60, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x6f, 0x72, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xec, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x6e, + 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, + 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x32, 0x0a, + 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x6e, 0x65, + 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x12, 0x64, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x11, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x85, 0x02, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x2e, + 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x47, 0x65, + 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x62, + 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x6d, 0x61, 0x72, + 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, + 0x02, 0x03, 0x42, 0x53, 0x58, 0xaa, 0x02, 0x1c, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, + 0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1c, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x53, + 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xe2, 0x02, 0x28, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x53, 0x6d, + 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x1e, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_bitsong_smartaccount_v1beta1_genesis_proto_rawDescOnce sync.Once + file_bitsong_smartaccount_v1beta1_genesis_proto_rawDescData = file_bitsong_smartaccount_v1beta1_genesis_proto_rawDesc +) + +func file_bitsong_smartaccount_v1beta1_genesis_proto_rawDescGZIP() []byte { + file_bitsong_smartaccount_v1beta1_genesis_proto_rawDescOnce.Do(func() { + file_bitsong_smartaccount_v1beta1_genesis_proto_rawDescData = protoimpl.X.CompressGZIP(file_bitsong_smartaccount_v1beta1_genesis_proto_rawDescData) + }) + return file_bitsong_smartaccount_v1beta1_genesis_proto_rawDescData +} + +var file_bitsong_smartaccount_v1beta1_genesis_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_bitsong_smartaccount_v1beta1_genesis_proto_goTypes = []interface{}{ + (*AuthenticatorData)(nil), // 0: bitsong.smartaccount.v1beta1.AuthenticatorData + (*GenesisState)(nil), // 1: bitsong.smartaccount.v1beta1.GenesisState + (*AccountAuthenticator)(nil), // 2: bitsong.smartaccount.v1beta1.AccountAuthenticator + (*Params)(nil), // 3: bitsong.smartaccount.v1beta1.Params +} +var file_bitsong_smartaccount_v1beta1_genesis_proto_depIdxs = []int32{ + 2, // 0: bitsong.smartaccount.v1beta1.AuthenticatorData.authenticators:type_name -> bitsong.smartaccount.v1beta1.AccountAuthenticator + 3, // 1: bitsong.smartaccount.v1beta1.GenesisState.params:type_name -> bitsong.smartaccount.v1beta1.Params + 0, // 2: bitsong.smartaccount.v1beta1.GenesisState.authenticator_data:type_name -> bitsong.smartaccount.v1beta1.AuthenticatorData + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_bitsong_smartaccount_v1beta1_genesis_proto_init() } +func file_bitsong_smartaccount_v1beta1_genesis_proto_init() { + if File_bitsong_smartaccount_v1beta1_genesis_proto != nil { + return + } + file_bitsong_smartaccount_v1beta1_params_proto_init() + file_bitsong_smartaccount_v1beta1_models_proto_init() + if !protoimpl.UnsafeEnabled { + file_bitsong_smartaccount_v1beta1_genesis_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuthenticatorData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_genesis_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bitsong_smartaccount_v1beta1_genesis_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_bitsong_smartaccount_v1beta1_genesis_proto_goTypes, + DependencyIndexes: file_bitsong_smartaccount_v1beta1_genesis_proto_depIdxs, + MessageInfos: file_bitsong_smartaccount_v1beta1_genesis_proto_msgTypes, + }.Build() + File_bitsong_smartaccount_v1beta1_genesis_proto = out.File + file_bitsong_smartaccount_v1beta1_genesis_proto_rawDesc = nil + file_bitsong_smartaccount_v1beta1_genesis_proto_goTypes = nil + file_bitsong_smartaccount_v1beta1_genesis_proto_depIdxs = nil +} diff --git a/api/bitsong/smartaccount/v1beta1/models.pulsar.go b/api/bitsong/smartaccount/v1beta1/models.pulsar.go new file mode 100644 index 00000000..8ae418f8 --- /dev/null +++ b/api/bitsong/smartaccount/v1beta1/models.pulsar.go @@ -0,0 +1,717 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package smartaccountv1beta1 + +import ( + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_AccountAuthenticator protoreflect.MessageDescriptor + fd_AccountAuthenticator_id protoreflect.FieldDescriptor + fd_AccountAuthenticator_type protoreflect.FieldDescriptor + fd_AccountAuthenticator_config protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_models_proto_init() + md_AccountAuthenticator = File_bitsong_smartaccount_v1beta1_models_proto.Messages().ByName("AccountAuthenticator") + fd_AccountAuthenticator_id = md_AccountAuthenticator.Fields().ByName("id") + fd_AccountAuthenticator_type = md_AccountAuthenticator.Fields().ByName("type") + fd_AccountAuthenticator_config = md_AccountAuthenticator.Fields().ByName("config") +} + +var _ protoreflect.Message = (*fastReflection_AccountAuthenticator)(nil) + +type fastReflection_AccountAuthenticator AccountAuthenticator + +func (x *AccountAuthenticator) ProtoReflect() protoreflect.Message { + return (*fastReflection_AccountAuthenticator)(x) +} + +func (x *AccountAuthenticator) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_models_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_AccountAuthenticator_messageType fastReflection_AccountAuthenticator_messageType +var _ protoreflect.MessageType = fastReflection_AccountAuthenticator_messageType{} + +type fastReflection_AccountAuthenticator_messageType struct{} + +func (x fastReflection_AccountAuthenticator_messageType) Zero() protoreflect.Message { + return (*fastReflection_AccountAuthenticator)(nil) +} +func (x fastReflection_AccountAuthenticator_messageType) New() protoreflect.Message { + return new(fastReflection_AccountAuthenticator) +} +func (x fastReflection_AccountAuthenticator_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_AccountAuthenticator +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_AccountAuthenticator) Descriptor() protoreflect.MessageDescriptor { + return md_AccountAuthenticator +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_AccountAuthenticator) Type() protoreflect.MessageType { + return _fastReflection_AccountAuthenticator_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_AccountAuthenticator) New() protoreflect.Message { + return new(fastReflection_AccountAuthenticator) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_AccountAuthenticator) Interface() protoreflect.ProtoMessage { + return (*AccountAuthenticator)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_AccountAuthenticator) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Id != uint64(0) { + value := protoreflect.ValueOfUint64(x.Id) + if !f(fd_AccountAuthenticator_id, value) { + return + } + } + if x.Type_ != "" { + value := protoreflect.ValueOfString(x.Type_) + if !f(fd_AccountAuthenticator_type, value) { + return + } + } + if len(x.Config) != 0 { + value := protoreflect.ValueOfBytes(x.Config) + if !f(fd_AccountAuthenticator_config, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_AccountAuthenticator) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.id": + return x.Id != uint64(0) + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.type": + return x.Type_ != "" + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.config": + return len(x.Config) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AccountAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AccountAuthenticator does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AccountAuthenticator) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.id": + x.Id = uint64(0) + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.type": + x.Type_ = "" + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.config": + x.Config = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AccountAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AccountAuthenticator does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_AccountAuthenticator) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.id": + value := x.Id + return protoreflect.ValueOfUint64(value) + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.type": + value := x.Type_ + return protoreflect.ValueOfString(value) + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.config": + value := x.Config + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AccountAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AccountAuthenticator does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AccountAuthenticator) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.id": + x.Id = value.Uint() + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.type": + x.Type_ = value.Interface().(string) + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.config": + x.Config = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AccountAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AccountAuthenticator does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AccountAuthenticator) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.id": + panic(fmt.Errorf("field id of message bitsong.smartaccount.v1beta1.AccountAuthenticator is not mutable")) + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.type": + panic(fmt.Errorf("field type of message bitsong.smartaccount.v1beta1.AccountAuthenticator is not mutable")) + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.config": + panic(fmt.Errorf("field config of message bitsong.smartaccount.v1beta1.AccountAuthenticator is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AccountAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AccountAuthenticator does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_AccountAuthenticator) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.id": + return protoreflect.ValueOfUint64(uint64(0)) + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.type": + return protoreflect.ValueOfString("") + case "bitsong.smartaccount.v1beta1.AccountAuthenticator.config": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AccountAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AccountAuthenticator does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_AccountAuthenticator) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.AccountAuthenticator", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_AccountAuthenticator) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AccountAuthenticator) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_AccountAuthenticator) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_AccountAuthenticator) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*AccountAuthenticator) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Id != 0 { + n += 1 + runtime.Sov(uint64(x.Id)) + } + l = len(x.Type_) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Config) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*AccountAuthenticator) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Config) > 0 { + i -= len(x.Config) + copy(dAtA[i:], x.Config) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Config))) + i-- + dAtA[i] = 0x1a + } + if len(x.Type_) > 0 { + i -= len(x.Type_) + copy(dAtA[i:], x.Type_) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Type_))) + i-- + dAtA[i] = 0x12 + } + if x.Id != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Id)) + i-- + dAtA[i] = 0x8 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*AccountAuthenticator) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccountAuthenticator: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AccountAuthenticator: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + x.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Type_", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Type_ = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Config", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Config = append(x.Config[:0], dAtA[iNdEx:postIndex]...) + if x.Config == nil { + x.Config = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: bitsong/smartaccount/v1beta1/models.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// AccountAuthenticator represents a foundational model for all authenticators. +// It provides extensibility by allowing concrete types to interpret and +// validate transactions based on the encapsulated data. +type AccountAuthenticator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ID uniquely identifies the authenticator instance. + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // Type specifies the category of the AccountAuthenticator. + // This type information is essential for differentiating authenticators + // and ensuring precise data retrieval from the storage layer. + Type_ string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + // Config is a versatile field used in conjunction with the specific type of + // account authenticator to facilitate complex authentication processes. + // The interpretation of this field is overloaded, enabling multiple + // authenticators to utilize it for their respective purposes. + Config []byte `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"` +} + +func (x *AccountAuthenticator) Reset() { + *x = AccountAuthenticator{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_models_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountAuthenticator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountAuthenticator) ProtoMessage() {} + +// Deprecated: Use AccountAuthenticator.ProtoReflect.Descriptor instead. +func (*AccountAuthenticator) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_models_proto_rawDescGZIP(), []int{0} +} + +func (x *AccountAuthenticator) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AccountAuthenticator) GetType_() string { + if x != nil { + return x.Type_ + } + return "" +} + +func (x *AccountAuthenticator) GetConfig() []byte { + if x != nil { + return x.Config + } + return nil +} + +var File_bitsong_smartaccount_v1beta1_models_proto protoreflect.FileDescriptor + +var file_bitsong_smartaccount_v1beta1_models_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x62, 0x69, 0x74, + 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x22, 0x52, 0x0a, 0x14, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x84, 0x02, + 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, + 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x42, 0x0b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x41, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, + 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x3b, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x42, 0x53, 0x58, 0xaa, 0x02, 0x1c, 0x42, 0x69, 0x74, + 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1c, 0x42, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x5c, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x28, 0x42, 0x69, 0x74, 0x73, 0x6f, + 0x6e, 0x67, 0x5c, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5c, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x1e, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x53, + 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_bitsong_smartaccount_v1beta1_models_proto_rawDescOnce sync.Once + file_bitsong_smartaccount_v1beta1_models_proto_rawDescData = file_bitsong_smartaccount_v1beta1_models_proto_rawDesc +) + +func file_bitsong_smartaccount_v1beta1_models_proto_rawDescGZIP() []byte { + file_bitsong_smartaccount_v1beta1_models_proto_rawDescOnce.Do(func() { + file_bitsong_smartaccount_v1beta1_models_proto_rawDescData = protoimpl.X.CompressGZIP(file_bitsong_smartaccount_v1beta1_models_proto_rawDescData) + }) + return file_bitsong_smartaccount_v1beta1_models_proto_rawDescData +} + +var file_bitsong_smartaccount_v1beta1_models_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_bitsong_smartaccount_v1beta1_models_proto_goTypes = []interface{}{ + (*AccountAuthenticator)(nil), // 0: bitsong.smartaccount.v1beta1.AccountAuthenticator +} +var file_bitsong_smartaccount_v1beta1_models_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_bitsong_smartaccount_v1beta1_models_proto_init() } +func file_bitsong_smartaccount_v1beta1_models_proto_init() { + if File_bitsong_smartaccount_v1beta1_models_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_bitsong_smartaccount_v1beta1_models_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountAuthenticator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bitsong_smartaccount_v1beta1_models_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_bitsong_smartaccount_v1beta1_models_proto_goTypes, + DependencyIndexes: file_bitsong_smartaccount_v1beta1_models_proto_depIdxs, + MessageInfos: file_bitsong_smartaccount_v1beta1_models_proto_msgTypes, + }.Build() + File_bitsong_smartaccount_v1beta1_models_proto = out.File + file_bitsong_smartaccount_v1beta1_models_proto_rawDesc = nil + file_bitsong_smartaccount_v1beta1_models_proto_goTypes = nil + file_bitsong_smartaccount_v1beta1_models_proto_depIdxs = nil +} diff --git a/api/bitsong/smartaccount/v1beta1/params.pulsar.go b/api/bitsong/smartaccount/v1beta1/params.pulsar.go new file mode 100644 index 00000000..e7103e8f --- /dev/null +++ b/api/bitsong/smartaccount/v1beta1/params.pulsar.go @@ -0,0 +1,780 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package smartaccountv1beta1 + +import ( + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var _ protoreflect.List = (*_Params_3_list)(nil) + +type _Params_3_list struct { + list *[]string +} + +func (x *_Params_3_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Params_3_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_Params_3_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_Params_3_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_Params_3_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message Params at list field CircuitBreakerControllers as it is not of Message kind")) +} + +func (x *_Params_3_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_Params_3_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_Params_3_list) IsValid() bool { + return x.list != nil +} + +var ( + md_Params protoreflect.MessageDescriptor + fd_Params_maximum_unauthenticated_gas protoreflect.FieldDescriptor + fd_Params_is_smart_account_active protoreflect.FieldDescriptor + fd_Params_circuit_breaker_controllers protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_params_proto_init() + md_Params = File_bitsong_smartaccount_v1beta1_params_proto.Messages().ByName("Params") + fd_Params_maximum_unauthenticated_gas = md_Params.Fields().ByName("maximum_unauthenticated_gas") + fd_Params_is_smart_account_active = md_Params.Fields().ByName("is_smart_account_active") + fd_Params_circuit_breaker_controllers = md_Params.Fields().ByName("circuit_breaker_controllers") +} + +var _ protoreflect.Message = (*fastReflection_Params)(nil) + +type fastReflection_Params Params + +func (x *Params) ProtoReflect() protoreflect.Message { + return (*fastReflection_Params)(x) +} + +func (x *Params) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_params_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Params_messageType fastReflection_Params_messageType +var _ protoreflect.MessageType = fastReflection_Params_messageType{} + +type fastReflection_Params_messageType struct{} + +func (x fastReflection_Params_messageType) Zero() protoreflect.Message { + return (*fastReflection_Params)(nil) +} +func (x fastReflection_Params_messageType) New() protoreflect.Message { + return new(fastReflection_Params) +} +func (x fastReflection_Params_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Params +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Params) Descriptor() protoreflect.MessageDescriptor { + return md_Params +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_Params) Type() protoreflect.MessageType { + return _fastReflection_Params_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Params) New() protoreflect.Message { + return new(fastReflection_Params) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Params) Interface() protoreflect.ProtoMessage { + return (*Params)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.MaximumUnauthenticatedGas != uint64(0) { + value := protoreflect.ValueOfUint64(x.MaximumUnauthenticatedGas) + if !f(fd_Params_maximum_unauthenticated_gas, value) { + return + } + } + if x.IsSmartAccountActive != false { + value := protoreflect.ValueOfBool(x.IsSmartAccountActive) + if !f(fd_Params_is_smart_account_active, value) { + return + } + } + if len(x.CircuitBreakerControllers) != 0 { + value := protoreflect.ValueOfList(&_Params_3_list{list: &x.CircuitBreakerControllers}) + if !f(fd_Params_circuit_breaker_controllers, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.Params.maximum_unauthenticated_gas": + return x.MaximumUnauthenticatedGas != uint64(0) + case "bitsong.smartaccount.v1beta1.Params.is_smart_account_active": + return x.IsSmartAccountActive != false + case "bitsong.smartaccount.v1beta1.Params.circuit_breaker_controllers": + return len(x.CircuitBreakerControllers) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.Params")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.Params does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.Params.maximum_unauthenticated_gas": + x.MaximumUnauthenticatedGas = uint64(0) + case "bitsong.smartaccount.v1beta1.Params.is_smart_account_active": + x.IsSmartAccountActive = false + case "bitsong.smartaccount.v1beta1.Params.circuit_breaker_controllers": + x.CircuitBreakerControllers = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.Params")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.Params does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.Params.maximum_unauthenticated_gas": + value := x.MaximumUnauthenticatedGas + return protoreflect.ValueOfUint64(value) + case "bitsong.smartaccount.v1beta1.Params.is_smart_account_active": + value := x.IsSmartAccountActive + return protoreflect.ValueOfBool(value) + case "bitsong.smartaccount.v1beta1.Params.circuit_breaker_controllers": + if len(x.CircuitBreakerControllers) == 0 { + return protoreflect.ValueOfList(&_Params_3_list{}) + } + listValue := &_Params_3_list{list: &x.CircuitBreakerControllers} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.Params")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.Params does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.Params.maximum_unauthenticated_gas": + x.MaximumUnauthenticatedGas = value.Uint() + case "bitsong.smartaccount.v1beta1.Params.is_smart_account_active": + x.IsSmartAccountActive = value.Bool() + case "bitsong.smartaccount.v1beta1.Params.circuit_breaker_controllers": + lv := value.List() + clv := lv.(*_Params_3_list) + x.CircuitBreakerControllers = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.Params")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.Params does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.Params.circuit_breaker_controllers": + if x.CircuitBreakerControllers == nil { + x.CircuitBreakerControllers = []string{} + } + value := &_Params_3_list{list: &x.CircuitBreakerControllers} + return protoreflect.ValueOfList(value) + case "bitsong.smartaccount.v1beta1.Params.maximum_unauthenticated_gas": + panic(fmt.Errorf("field maximum_unauthenticated_gas of message bitsong.smartaccount.v1beta1.Params is not mutable")) + case "bitsong.smartaccount.v1beta1.Params.is_smart_account_active": + panic(fmt.Errorf("field is_smart_account_active of message bitsong.smartaccount.v1beta1.Params is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.Params")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.Params does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_Params) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.Params.maximum_unauthenticated_gas": + return protoreflect.ValueOfUint64(uint64(0)) + case "bitsong.smartaccount.v1beta1.Params.is_smart_account_active": + return protoreflect.ValueOfBool(false) + case "bitsong.smartaccount.v1beta1.Params.circuit_breaker_controllers": + list := []string{} + return protoreflect.ValueOfList(&_Params_3_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.Params")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.Params does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_Params) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.Params", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_Params) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Params) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_Params) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Params) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.MaximumUnauthenticatedGas != 0 { + n += 1 + runtime.Sov(uint64(x.MaximumUnauthenticatedGas)) + } + if x.IsSmartAccountActive { + n += 2 + } + if len(x.CircuitBreakerControllers) > 0 { + for _, s := range x.CircuitBreakerControllers { + l = len(s) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Params) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.CircuitBreakerControllers) > 0 { + for iNdEx := len(x.CircuitBreakerControllers) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.CircuitBreakerControllers[iNdEx]) + copy(dAtA[i:], x.CircuitBreakerControllers[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.CircuitBreakerControllers[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if x.IsSmartAccountActive { + i-- + if x.IsSmartAccountActive { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if x.MaximumUnauthenticatedGas != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.MaximumUnauthenticatedGas)) + i-- + dAtA[i] = 0x8 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*Params) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Params: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MaximumUnauthenticatedGas", wireType) + } + x.MaximumUnauthenticatedGas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.MaximumUnauthenticatedGas |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field IsSmartAccountActive", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.IsSmartAccountActive = bool(v != 0) + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field CircuitBreakerControllers", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.CircuitBreakerControllers = append(x.CircuitBreakerControllers, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: bitsong/smartaccount/v1beta1/params.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Params defines the parameters for the module. +type Params struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // MaximumUnauthenticatedGas defines the maximum amount of gas that can be + // used to authenticate a transaction in ante handler without having fee payer + // authenticated. + MaximumUnauthenticatedGas uint64 `protobuf:"varint,1,opt,name=maximum_unauthenticated_gas,json=maximumUnauthenticatedGas,proto3" json:"maximum_unauthenticated_gas,omitempty"` + // IsSmartAccountActive defines the state of the authenticator. + // If set to false, the authenticator module will not be used + // and the classic cosmos sdk authentication will be used instead. + IsSmartAccountActive bool `protobuf:"varint,2,opt,name=is_smart_account_active,json=isSmartAccountActive,proto3" json:"is_smart_account_active,omitempty"` + // CircuitBreakerControllers defines list of addresses that are allowed to + // set is_smart_account_active without going through governance. + CircuitBreakerControllers []string `protobuf:"bytes,3,rep,name=circuit_breaker_controllers,json=circuitBreakerControllers,proto3" json:"circuit_breaker_controllers,omitempty"` +} + +func (x *Params) Reset() { + *x = Params{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_params_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Params) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Params) ProtoMessage() {} + +// Deprecated: Use Params.ProtoReflect.Descriptor instead. +func (*Params) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_params_proto_rawDescGZIP(), []int{0} +} + +func (x *Params) GetMaximumUnauthenticatedGas() uint64 { + if x != nil { + return x.MaximumUnauthenticatedGas + } + return 0 +} + +func (x *Params) GetIsSmartAccountActive() bool { + if x != nil { + return x.IsSmartAccountActive + } + return false +} + +func (x *Params) GetCircuitBreakerControllers() []string { + if x != nil { + return x.CircuitBreakerControllers + } + return nil +} + +var File_bitsong_smartaccount_v1beta1_params_proto protoreflect.FileDescriptor + +var file_bitsong_smartaccount_v1beta1_params_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x62, 0x69, 0x74, + 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0xb3, 0x02, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x66, 0x0a, 0x1b, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x26, 0xf2, 0xde, 0x1f, 0x22, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x67, 0x61, 0x73, 0x22, 0x52, 0x19, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x47, + 0x61, 0x73, 0x12, 0x59, 0x0a, 0x17, 0x69, 0x73, 0x5f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x22, 0xf2, 0xde, 0x1f, 0x1e, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x69, + 0x73, 0x5f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x52, 0x14, 0x69, 0x73, 0x53, 0x6d, 0x61, 0x72, 0x74, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x66, 0x0a, + 0x1b, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x42, 0x26, 0xf2, 0xde, 0x1f, 0x22, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x69, + 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x22, 0x52, 0x19, 0x63, 0x69, 0x72, 0x63, + 0x75, 0x69, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x42, 0x84, 0x02, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0b, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x62, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x42, + 0x53, 0x58, 0xaa, 0x02, 0x1c, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x53, 0x6d, 0x61, + 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xca, 0x02, 0x1c, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x53, 0x6d, 0x61, 0x72, + 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xe2, 0x02, 0x28, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x53, 0x6d, 0x61, 0x72, 0x74, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1e, 0x42, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_bitsong_smartaccount_v1beta1_params_proto_rawDescOnce sync.Once + file_bitsong_smartaccount_v1beta1_params_proto_rawDescData = file_bitsong_smartaccount_v1beta1_params_proto_rawDesc +) + +func file_bitsong_smartaccount_v1beta1_params_proto_rawDescGZIP() []byte { + file_bitsong_smartaccount_v1beta1_params_proto_rawDescOnce.Do(func() { + file_bitsong_smartaccount_v1beta1_params_proto_rawDescData = protoimpl.X.CompressGZIP(file_bitsong_smartaccount_v1beta1_params_proto_rawDescData) + }) + return file_bitsong_smartaccount_v1beta1_params_proto_rawDescData +} + +var file_bitsong_smartaccount_v1beta1_params_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_bitsong_smartaccount_v1beta1_params_proto_goTypes = []interface{}{ + (*Params)(nil), // 0: bitsong.smartaccount.v1beta1.Params +} +var file_bitsong_smartaccount_v1beta1_params_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_bitsong_smartaccount_v1beta1_params_proto_init() } +func file_bitsong_smartaccount_v1beta1_params_proto_init() { + if File_bitsong_smartaccount_v1beta1_params_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_bitsong_smartaccount_v1beta1_params_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Params); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bitsong_smartaccount_v1beta1_params_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_bitsong_smartaccount_v1beta1_params_proto_goTypes, + DependencyIndexes: file_bitsong_smartaccount_v1beta1_params_proto_depIdxs, + MessageInfos: file_bitsong_smartaccount_v1beta1_params_proto_msgTypes, + }.Build() + File_bitsong_smartaccount_v1beta1_params_proto = out.File + file_bitsong_smartaccount_v1beta1_params_proto_rawDesc = nil + file_bitsong_smartaccount_v1beta1_params_proto_goTypes = nil + file_bitsong_smartaccount_v1beta1_params_proto_depIdxs = nil +} diff --git a/api/bitsong/smartaccount/v1beta1/query.pulsar.go b/api/bitsong/smartaccount/v1beta1/query.pulsar.go new file mode 100644 index 00000000..4ae41431 --- /dev/null +++ b/api/bitsong/smartaccount/v1beta1/query.pulsar.go @@ -0,0 +1,3100 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package smartaccountv1beta1 + +import ( + _ "cosmossdk.io/api/cosmos/base/query/v1beta1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_QueryParamsRequest protoreflect.MessageDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_query_proto_init() + md_QueryParamsRequest = File_bitsong_smartaccount_v1beta1_query_proto.Messages().ByName("QueryParamsRequest") +} + +var _ protoreflect.Message = (*fastReflection_QueryParamsRequest)(nil) + +type fastReflection_QueryParamsRequest QueryParamsRequest + +func (x *QueryParamsRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryParamsRequest)(x) +} + +func (x *QueryParamsRequest) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryParamsRequest_messageType fastReflection_QueryParamsRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryParamsRequest_messageType{} + +type fastReflection_QueryParamsRequest_messageType struct{} + +func (x fastReflection_QueryParamsRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryParamsRequest)(nil) +} +func (x fastReflection_QueryParamsRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryParamsRequest) +} +func (x fastReflection_QueryParamsRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryParamsRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryParamsRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryParamsRequest +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryParamsRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryParamsRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryParamsRequest) New() protoreflect.Message { + return new(fastReflection_QueryParamsRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryParamsRequest) Interface() protoreflect.ProtoMessage { + return (*QueryParamsRequest)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryParamsRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryParamsRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.QueryParamsRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.QueryParamsRequest does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.QueryParamsRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.QueryParamsRequest does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryParamsRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.QueryParamsRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.QueryParamsRequest does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.QueryParamsRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.QueryParamsRequest does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.QueryParamsRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.QueryParamsRequest does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryParamsRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.QueryParamsRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.QueryParamsRequest does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryParamsRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.QueryParamsRequest", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryParamsRequest) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsRequest) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryParamsRequest) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryParamsRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryParamsRequest) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryParamsRequest) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryParamsRequest) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_QueryParamsResponse protoreflect.MessageDescriptor + fd_QueryParamsResponse_params protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_query_proto_init() + md_QueryParamsResponse = File_bitsong_smartaccount_v1beta1_query_proto.Messages().ByName("QueryParamsResponse") + fd_QueryParamsResponse_params = md_QueryParamsResponse.Fields().ByName("params") +} + +var _ protoreflect.Message = (*fastReflection_QueryParamsResponse)(nil) + +type fastReflection_QueryParamsResponse QueryParamsResponse + +func (x *QueryParamsResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryParamsResponse)(x) +} + +func (x *QueryParamsResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryParamsResponse_messageType fastReflection_QueryParamsResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryParamsResponse_messageType{} + +type fastReflection_QueryParamsResponse_messageType struct{} + +func (x fastReflection_QueryParamsResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryParamsResponse)(nil) +} +func (x fastReflection_QueryParamsResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryParamsResponse) +} +func (x fastReflection_QueryParamsResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryParamsResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryParamsResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryParamsResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryParamsResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryParamsResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryParamsResponse) New() protoreflect.Message { + return new(fastReflection_QueryParamsResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryParamsResponse) Interface() protoreflect.ProtoMessage { + return (*QueryParamsResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryParamsResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Params != nil { + value := protoreflect.ValueOfMessage(x.Params.ProtoReflect()) + if !f(fd_QueryParamsResponse_params, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryParamsResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.QueryParamsResponse.params": + return x.Params != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.QueryParamsResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.QueryParamsResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.QueryParamsResponse.params": + x.Params = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.QueryParamsResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.QueryParamsResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryParamsResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.QueryParamsResponse.params": + value := x.Params + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.QueryParamsResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.QueryParamsResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.QueryParamsResponse.params": + x.Params = value.Message().Interface().(*Params) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.QueryParamsResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.QueryParamsResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.QueryParamsResponse.params": + if x.Params == nil { + x.Params = new(Params) + } + return protoreflect.ValueOfMessage(x.Params.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.QueryParamsResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.QueryParamsResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryParamsResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.QueryParamsResponse.params": + m := new(Params) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.QueryParamsResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.QueryParamsResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryParamsResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.QueryParamsResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryParamsResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryParamsResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryParamsResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryParamsResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryParamsResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Params != nil { + l = options.Size(x.Params) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryParamsResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Params != nil { + encoded, err := options.Marshal(x.Params) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryParamsResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Params == nil { + x.Params = &Params{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Params); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_GetAuthenticatorsRequest protoreflect.MessageDescriptor + fd_GetAuthenticatorsRequest_account protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_query_proto_init() + md_GetAuthenticatorsRequest = File_bitsong_smartaccount_v1beta1_query_proto.Messages().ByName("GetAuthenticatorsRequest") + fd_GetAuthenticatorsRequest_account = md_GetAuthenticatorsRequest.Fields().ByName("account") +} + +var _ protoreflect.Message = (*fastReflection_GetAuthenticatorsRequest)(nil) + +type fastReflection_GetAuthenticatorsRequest GetAuthenticatorsRequest + +func (x *GetAuthenticatorsRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_GetAuthenticatorsRequest)(x) +} + +func (x *GetAuthenticatorsRequest) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_GetAuthenticatorsRequest_messageType fastReflection_GetAuthenticatorsRequest_messageType +var _ protoreflect.MessageType = fastReflection_GetAuthenticatorsRequest_messageType{} + +type fastReflection_GetAuthenticatorsRequest_messageType struct{} + +func (x fastReflection_GetAuthenticatorsRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_GetAuthenticatorsRequest)(nil) +} +func (x fastReflection_GetAuthenticatorsRequest_messageType) New() protoreflect.Message { + return new(fastReflection_GetAuthenticatorsRequest) +} +func (x fastReflection_GetAuthenticatorsRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_GetAuthenticatorsRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_GetAuthenticatorsRequest) Descriptor() protoreflect.MessageDescriptor { + return md_GetAuthenticatorsRequest +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_GetAuthenticatorsRequest) Type() protoreflect.MessageType { + return _fastReflection_GetAuthenticatorsRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_GetAuthenticatorsRequest) New() protoreflect.Message { + return new(fastReflection_GetAuthenticatorsRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_GetAuthenticatorsRequest) Interface() protoreflect.ProtoMessage { + return (*GetAuthenticatorsRequest)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_GetAuthenticatorsRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Account != "" { + value := protoreflect.ValueOfString(x.Account) + if !f(fd_GetAuthenticatorsRequest_account, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_GetAuthenticatorsRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest.account": + return x.Account != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorsRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest.account": + x.Account = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_GetAuthenticatorsRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest.account": + value := x.Account + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorsRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest.account": + x.Account = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorsRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest.account": + panic(fmt.Errorf("field account of message bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_GetAuthenticatorsRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest.account": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_GetAuthenticatorsRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_GetAuthenticatorsRequest) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorsRequest) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_GetAuthenticatorsRequest) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_GetAuthenticatorsRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*GetAuthenticatorsRequest) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Account) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*GetAuthenticatorsRequest) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Account) > 0 { + i -= len(x.Account) + copy(dAtA[i:], x.Account) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Account))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*GetAuthenticatorsRequest) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GetAuthenticatorsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GetAuthenticatorsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Account", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Account = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_GetAuthenticatorsResponse_1_list)(nil) + +type _GetAuthenticatorsResponse_1_list struct { + list *[]*AccountAuthenticator +} + +func (x *_GetAuthenticatorsResponse_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_GetAuthenticatorsResponse_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_GetAuthenticatorsResponse_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*AccountAuthenticator) + (*x.list)[i] = concreteValue +} + +func (x *_GetAuthenticatorsResponse_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*AccountAuthenticator) + *x.list = append(*x.list, concreteValue) +} + +func (x *_GetAuthenticatorsResponse_1_list) AppendMutable() protoreflect.Value { + v := new(AccountAuthenticator) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GetAuthenticatorsResponse_1_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_GetAuthenticatorsResponse_1_list) NewElement() protoreflect.Value { + v := new(AccountAuthenticator) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GetAuthenticatorsResponse_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_GetAuthenticatorsResponse protoreflect.MessageDescriptor + fd_GetAuthenticatorsResponse_account_authenticators protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_query_proto_init() + md_GetAuthenticatorsResponse = File_bitsong_smartaccount_v1beta1_query_proto.Messages().ByName("GetAuthenticatorsResponse") + fd_GetAuthenticatorsResponse_account_authenticators = md_GetAuthenticatorsResponse.Fields().ByName("account_authenticators") +} + +var _ protoreflect.Message = (*fastReflection_GetAuthenticatorsResponse)(nil) + +type fastReflection_GetAuthenticatorsResponse GetAuthenticatorsResponse + +func (x *GetAuthenticatorsResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_GetAuthenticatorsResponse)(x) +} + +func (x *GetAuthenticatorsResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_GetAuthenticatorsResponse_messageType fastReflection_GetAuthenticatorsResponse_messageType +var _ protoreflect.MessageType = fastReflection_GetAuthenticatorsResponse_messageType{} + +type fastReflection_GetAuthenticatorsResponse_messageType struct{} + +func (x fastReflection_GetAuthenticatorsResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_GetAuthenticatorsResponse)(nil) +} +func (x fastReflection_GetAuthenticatorsResponse_messageType) New() protoreflect.Message { + return new(fastReflection_GetAuthenticatorsResponse) +} +func (x fastReflection_GetAuthenticatorsResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_GetAuthenticatorsResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_GetAuthenticatorsResponse) Descriptor() protoreflect.MessageDescriptor { + return md_GetAuthenticatorsResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_GetAuthenticatorsResponse) Type() protoreflect.MessageType { + return _fastReflection_GetAuthenticatorsResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_GetAuthenticatorsResponse) New() protoreflect.Message { + return new(fastReflection_GetAuthenticatorsResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_GetAuthenticatorsResponse) Interface() protoreflect.ProtoMessage { + return (*GetAuthenticatorsResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_GetAuthenticatorsResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.AccountAuthenticators) != 0 { + value := protoreflect.ValueOfList(&_GetAuthenticatorsResponse_1_list{list: &x.AccountAuthenticators}) + if !f(fd_GetAuthenticatorsResponse_account_authenticators, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_GetAuthenticatorsResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse.account_authenticators": + return len(x.AccountAuthenticators) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorsResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse.account_authenticators": + x.AccountAuthenticators = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_GetAuthenticatorsResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse.account_authenticators": + if len(x.AccountAuthenticators) == 0 { + return protoreflect.ValueOfList(&_GetAuthenticatorsResponse_1_list{}) + } + listValue := &_GetAuthenticatorsResponse_1_list{list: &x.AccountAuthenticators} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorsResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse.account_authenticators": + lv := value.List() + clv := lv.(*_GetAuthenticatorsResponse_1_list) + x.AccountAuthenticators = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorsResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse.account_authenticators": + if x.AccountAuthenticators == nil { + x.AccountAuthenticators = []*AccountAuthenticator{} + } + value := &_GetAuthenticatorsResponse_1_list{list: &x.AccountAuthenticators} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_GetAuthenticatorsResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse.account_authenticators": + list := []*AccountAuthenticator{} + return protoreflect.ValueOfList(&_GetAuthenticatorsResponse_1_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_GetAuthenticatorsResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_GetAuthenticatorsResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorsResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_GetAuthenticatorsResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_GetAuthenticatorsResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*GetAuthenticatorsResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.AccountAuthenticators) > 0 { + for _, e := range x.AccountAuthenticators { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*GetAuthenticatorsResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.AccountAuthenticators) > 0 { + for iNdEx := len(x.AccountAuthenticators) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.AccountAuthenticators[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*GetAuthenticatorsResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GetAuthenticatorsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GetAuthenticatorsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AccountAuthenticators", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.AccountAuthenticators = append(x.AccountAuthenticators, &AccountAuthenticator{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.AccountAuthenticators[len(x.AccountAuthenticators)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_GetAuthenticatorRequest protoreflect.MessageDescriptor + fd_GetAuthenticatorRequest_account protoreflect.FieldDescriptor + fd_GetAuthenticatorRequest_authenticator_id protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_query_proto_init() + md_GetAuthenticatorRequest = File_bitsong_smartaccount_v1beta1_query_proto.Messages().ByName("GetAuthenticatorRequest") + fd_GetAuthenticatorRequest_account = md_GetAuthenticatorRequest.Fields().ByName("account") + fd_GetAuthenticatorRequest_authenticator_id = md_GetAuthenticatorRequest.Fields().ByName("authenticator_id") +} + +var _ protoreflect.Message = (*fastReflection_GetAuthenticatorRequest)(nil) + +type fastReflection_GetAuthenticatorRequest GetAuthenticatorRequest + +func (x *GetAuthenticatorRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_GetAuthenticatorRequest)(x) +} + +func (x *GetAuthenticatorRequest) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_GetAuthenticatorRequest_messageType fastReflection_GetAuthenticatorRequest_messageType +var _ protoreflect.MessageType = fastReflection_GetAuthenticatorRequest_messageType{} + +type fastReflection_GetAuthenticatorRequest_messageType struct{} + +func (x fastReflection_GetAuthenticatorRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_GetAuthenticatorRequest)(nil) +} +func (x fastReflection_GetAuthenticatorRequest_messageType) New() protoreflect.Message { + return new(fastReflection_GetAuthenticatorRequest) +} +func (x fastReflection_GetAuthenticatorRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_GetAuthenticatorRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_GetAuthenticatorRequest) Descriptor() protoreflect.MessageDescriptor { + return md_GetAuthenticatorRequest +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_GetAuthenticatorRequest) Type() protoreflect.MessageType { + return _fastReflection_GetAuthenticatorRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_GetAuthenticatorRequest) New() protoreflect.Message { + return new(fastReflection_GetAuthenticatorRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_GetAuthenticatorRequest) Interface() protoreflect.ProtoMessage { + return (*GetAuthenticatorRequest)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_GetAuthenticatorRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Account != "" { + value := protoreflect.ValueOfString(x.Account) + if !f(fd_GetAuthenticatorRequest_account, value) { + return + } + } + if x.AuthenticatorId != uint64(0) { + value := protoreflect.ValueOfUint64(x.AuthenticatorId) + if !f(fd_GetAuthenticatorRequest_authenticator_id, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_GetAuthenticatorRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorRequest.account": + return x.Account != "" + case "bitsong.smartaccount.v1beta1.GetAuthenticatorRequest.authenticator_id": + return x.AuthenticatorId != uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorRequest does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorRequest.account": + x.Account = "" + case "bitsong.smartaccount.v1beta1.GetAuthenticatorRequest.authenticator_id": + x.AuthenticatorId = uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorRequest does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_GetAuthenticatorRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorRequest.account": + value := x.Account + return protoreflect.ValueOfString(value) + case "bitsong.smartaccount.v1beta1.GetAuthenticatorRequest.authenticator_id": + value := x.AuthenticatorId + return protoreflect.ValueOfUint64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorRequest does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorRequest.account": + x.Account = value.Interface().(string) + case "bitsong.smartaccount.v1beta1.GetAuthenticatorRequest.authenticator_id": + x.AuthenticatorId = value.Uint() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorRequest does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorRequest.account": + panic(fmt.Errorf("field account of message bitsong.smartaccount.v1beta1.GetAuthenticatorRequest is not mutable")) + case "bitsong.smartaccount.v1beta1.GetAuthenticatorRequest.authenticator_id": + panic(fmt.Errorf("field authenticator_id of message bitsong.smartaccount.v1beta1.GetAuthenticatorRequest is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorRequest does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_GetAuthenticatorRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorRequest.account": + return protoreflect.ValueOfString("") + case "bitsong.smartaccount.v1beta1.GetAuthenticatorRequest.authenticator_id": + return protoreflect.ValueOfUint64(uint64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorRequest")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorRequest does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_GetAuthenticatorRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.GetAuthenticatorRequest", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_GetAuthenticatorRequest) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorRequest) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_GetAuthenticatorRequest) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_GetAuthenticatorRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*GetAuthenticatorRequest) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Account) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.AuthenticatorId != 0 { + n += 1 + runtime.Sov(uint64(x.AuthenticatorId)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*GetAuthenticatorRequest) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.AuthenticatorId != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.AuthenticatorId)) + i-- + dAtA[i] = 0x10 + } + if len(x.Account) > 0 { + i -= len(x.Account) + copy(dAtA[i:], x.Account) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Account))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*GetAuthenticatorRequest) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GetAuthenticatorRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GetAuthenticatorRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Account", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Account = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AuthenticatorId", wireType) + } + x.AuthenticatorId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.AuthenticatorId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_GetAuthenticatorResponse protoreflect.MessageDescriptor + fd_GetAuthenticatorResponse_account_authenticator protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_query_proto_init() + md_GetAuthenticatorResponse = File_bitsong_smartaccount_v1beta1_query_proto.Messages().ByName("GetAuthenticatorResponse") + fd_GetAuthenticatorResponse_account_authenticator = md_GetAuthenticatorResponse.Fields().ByName("account_authenticator") +} + +var _ protoreflect.Message = (*fastReflection_GetAuthenticatorResponse)(nil) + +type fastReflection_GetAuthenticatorResponse GetAuthenticatorResponse + +func (x *GetAuthenticatorResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_GetAuthenticatorResponse)(x) +} + +func (x *GetAuthenticatorResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_GetAuthenticatorResponse_messageType fastReflection_GetAuthenticatorResponse_messageType +var _ protoreflect.MessageType = fastReflection_GetAuthenticatorResponse_messageType{} + +type fastReflection_GetAuthenticatorResponse_messageType struct{} + +func (x fastReflection_GetAuthenticatorResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_GetAuthenticatorResponse)(nil) +} +func (x fastReflection_GetAuthenticatorResponse_messageType) New() protoreflect.Message { + return new(fastReflection_GetAuthenticatorResponse) +} +func (x fastReflection_GetAuthenticatorResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_GetAuthenticatorResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_GetAuthenticatorResponse) Descriptor() protoreflect.MessageDescriptor { + return md_GetAuthenticatorResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_GetAuthenticatorResponse) Type() protoreflect.MessageType { + return _fastReflection_GetAuthenticatorResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_GetAuthenticatorResponse) New() protoreflect.Message { + return new(fastReflection_GetAuthenticatorResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_GetAuthenticatorResponse) Interface() protoreflect.ProtoMessage { + return (*GetAuthenticatorResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_GetAuthenticatorResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.AccountAuthenticator != nil { + value := protoreflect.ValueOfMessage(x.AccountAuthenticator.ProtoReflect()) + if !f(fd_GetAuthenticatorResponse_account_authenticator, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_GetAuthenticatorResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorResponse.account_authenticator": + return x.AccountAuthenticator != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorResponse.account_authenticator": + x.AccountAuthenticator = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_GetAuthenticatorResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorResponse.account_authenticator": + value := x.AccountAuthenticator + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorResponse.account_authenticator": + x.AccountAuthenticator = value.Message().Interface().(*AccountAuthenticator) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorResponse.account_authenticator": + if x.AccountAuthenticator == nil { + x.AccountAuthenticator = new(AccountAuthenticator) + } + return protoreflect.ValueOfMessage(x.AccountAuthenticator.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_GetAuthenticatorResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.GetAuthenticatorResponse.account_authenticator": + m := new(AccountAuthenticator) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.GetAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.GetAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_GetAuthenticatorResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.GetAuthenticatorResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_GetAuthenticatorResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_GetAuthenticatorResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_GetAuthenticatorResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_GetAuthenticatorResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*GetAuthenticatorResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.AccountAuthenticator != nil { + l = options.Size(x.AccountAuthenticator) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*GetAuthenticatorResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.AccountAuthenticator != nil { + encoded, err := options.Marshal(x.AccountAuthenticator) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*GetAuthenticatorResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GetAuthenticatorResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GetAuthenticatorResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AccountAuthenticator", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.AccountAuthenticator == nil { + x.AccountAuthenticator = &AccountAuthenticator{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.AccountAuthenticator); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: bitsong/smartaccount/v1beta1/query.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// QueryParamsRequest is request type for the Query/Params RPC method. +type QueryParamsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *QueryParamsRequest) Reset() { + *x = QueryParamsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryParamsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryParamsRequest) ProtoMessage() {} + +// Deprecated: Use QueryParamsRequest.ProtoReflect.Descriptor instead. +func (*QueryParamsRequest) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_query_proto_rawDescGZIP(), []int{0} +} + +// QueryParamsResponse is response type for the Query/Params RPC method. +type QueryParamsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // params holds all the parameters of this module. + Params *Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params,omitempty"` +} + +func (x *QueryParamsResponse) Reset() { + *x = QueryParamsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryParamsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryParamsResponse) ProtoMessage() {} + +// Deprecated: Use QueryParamsResponse.ProtoReflect.Descriptor instead. +func (*QueryParamsResponse) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_query_proto_rawDescGZIP(), []int{1} +} + +func (x *QueryParamsResponse) GetParams() *Params { + if x != nil { + return x.Params + } + return nil +} + +// MsgGetAuthenticatorsRequest defines the Msg/GetAuthenticators request type. +type GetAuthenticatorsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` +} + +func (x *GetAuthenticatorsRequest) Reset() { + *x = GetAuthenticatorsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAuthenticatorsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAuthenticatorsRequest) ProtoMessage() {} + +// Deprecated: Use GetAuthenticatorsRequest.ProtoReflect.Descriptor instead. +func (*GetAuthenticatorsRequest) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_query_proto_rawDescGZIP(), []int{2} +} + +func (x *GetAuthenticatorsRequest) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +// MsgGetAuthenticatorsResponse defines the Msg/GetAuthenticators response type. +type GetAuthenticatorsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountAuthenticators []*AccountAuthenticator `protobuf:"bytes,1,rep,name=account_authenticators,json=accountAuthenticators,proto3" json:"account_authenticators,omitempty"` +} + +func (x *GetAuthenticatorsResponse) Reset() { + *x = GetAuthenticatorsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAuthenticatorsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAuthenticatorsResponse) ProtoMessage() {} + +// Deprecated: Use GetAuthenticatorsResponse.ProtoReflect.Descriptor instead. +func (*GetAuthenticatorsResponse) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_query_proto_rawDescGZIP(), []int{3} +} + +func (x *GetAuthenticatorsResponse) GetAccountAuthenticators() []*AccountAuthenticator { + if x != nil { + return x.AccountAuthenticators + } + return nil +} + +// MsgGetAuthenticatorRequest defines the Msg/GetAuthenticator request type. +type GetAuthenticatorRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + AuthenticatorId uint64 `protobuf:"varint,2,opt,name=authenticator_id,json=authenticatorId,proto3" json:"authenticator_id,omitempty"` +} + +func (x *GetAuthenticatorRequest) Reset() { + *x = GetAuthenticatorRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAuthenticatorRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAuthenticatorRequest) ProtoMessage() {} + +// Deprecated: Use GetAuthenticatorRequest.ProtoReflect.Descriptor instead. +func (*GetAuthenticatorRequest) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_query_proto_rawDescGZIP(), []int{4} +} + +func (x *GetAuthenticatorRequest) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +func (x *GetAuthenticatorRequest) GetAuthenticatorId() uint64 { + if x != nil { + return x.AuthenticatorId + } + return 0 +} + +// MsgGetAuthenticatorResponse defines the Msg/GetAuthenticator response type. +type GetAuthenticatorResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountAuthenticator *AccountAuthenticator `protobuf:"bytes,1,opt,name=account_authenticator,json=accountAuthenticator,proto3" json:"account_authenticator,omitempty"` +} + +func (x *GetAuthenticatorResponse) Reset() { + *x = GetAuthenticatorResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAuthenticatorResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAuthenticatorResponse) ProtoMessage() {} + +// Deprecated: Use GetAuthenticatorResponse.ProtoReflect.Descriptor instead. +func (*GetAuthenticatorResponse) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_query_proto_rawDescGZIP(), []int{5} +} + +func (x *GetAuthenticatorResponse) GetAccountAuthenticator() *AccountAuthenticator { + if x != nil { + return x.AccountAuthenticator + } + return nil +} + +var File_bitsong_smartaccount_v1beta1_query_proto protoreflect.FileDescriptor + +var file_bitsong_smartaccount_v1beta1_query_proto_rawDesc = []byte{ + 0x0a, 0x28, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x62, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, + 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, + 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x14, + 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x59, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, + 0x34, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x16, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, + 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x15, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x5e, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x83, + 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x15, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x62, 0x69, 0x74, + 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x14, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x6f, 0x72, 0x32, 0xaa, 0x04, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x93, + 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x30, 0x2e, 0x62, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x62, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, + 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0xcb, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x35, 0x2e, 0x62, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x36, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, + 0x12, 0x40, 0x2f, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x6f, 0x72, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x2f, + 0x7b, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, + 0x64, 0x7d, 0x12, 0xbc, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x36, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, + 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x37, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x30, 0x12, 0x2e, 0x2f, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, + 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x7d, 0x42, 0x83, 0x02, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, + 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, + 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, + 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x3b, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x42, 0x53, 0x58, 0xaa, 0x02, 0x1c, + 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1c, 0x42, + 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x28, 0x42, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1e, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, + 0x3a, 0x3a, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_bitsong_smartaccount_v1beta1_query_proto_rawDescOnce sync.Once + file_bitsong_smartaccount_v1beta1_query_proto_rawDescData = file_bitsong_smartaccount_v1beta1_query_proto_rawDesc +) + +func file_bitsong_smartaccount_v1beta1_query_proto_rawDescGZIP() []byte { + file_bitsong_smartaccount_v1beta1_query_proto_rawDescOnce.Do(func() { + file_bitsong_smartaccount_v1beta1_query_proto_rawDescData = protoimpl.X.CompressGZIP(file_bitsong_smartaccount_v1beta1_query_proto_rawDescData) + }) + return file_bitsong_smartaccount_v1beta1_query_proto_rawDescData +} + +var file_bitsong_smartaccount_v1beta1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_bitsong_smartaccount_v1beta1_query_proto_goTypes = []interface{}{ + (*QueryParamsRequest)(nil), // 0: bitsong.smartaccount.v1beta1.QueryParamsRequest + (*QueryParamsResponse)(nil), // 1: bitsong.smartaccount.v1beta1.QueryParamsResponse + (*GetAuthenticatorsRequest)(nil), // 2: bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest + (*GetAuthenticatorsResponse)(nil), // 3: bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse + (*GetAuthenticatorRequest)(nil), // 4: bitsong.smartaccount.v1beta1.GetAuthenticatorRequest + (*GetAuthenticatorResponse)(nil), // 5: bitsong.smartaccount.v1beta1.GetAuthenticatorResponse + (*Params)(nil), // 6: bitsong.smartaccount.v1beta1.Params + (*AccountAuthenticator)(nil), // 7: bitsong.smartaccount.v1beta1.AccountAuthenticator +} +var file_bitsong_smartaccount_v1beta1_query_proto_depIdxs = []int32{ + 6, // 0: bitsong.smartaccount.v1beta1.QueryParamsResponse.params:type_name -> bitsong.smartaccount.v1beta1.Params + 7, // 1: bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse.account_authenticators:type_name -> bitsong.smartaccount.v1beta1.AccountAuthenticator + 7, // 2: bitsong.smartaccount.v1beta1.GetAuthenticatorResponse.account_authenticator:type_name -> bitsong.smartaccount.v1beta1.AccountAuthenticator + 0, // 3: bitsong.smartaccount.v1beta1.Query.Params:input_type -> bitsong.smartaccount.v1beta1.QueryParamsRequest + 4, // 4: bitsong.smartaccount.v1beta1.Query.GetAuthenticator:input_type -> bitsong.smartaccount.v1beta1.GetAuthenticatorRequest + 2, // 5: bitsong.smartaccount.v1beta1.Query.GetAuthenticators:input_type -> bitsong.smartaccount.v1beta1.GetAuthenticatorsRequest + 1, // 6: bitsong.smartaccount.v1beta1.Query.Params:output_type -> bitsong.smartaccount.v1beta1.QueryParamsResponse + 5, // 7: bitsong.smartaccount.v1beta1.Query.GetAuthenticator:output_type -> bitsong.smartaccount.v1beta1.GetAuthenticatorResponse + 3, // 8: bitsong.smartaccount.v1beta1.Query.GetAuthenticators:output_type -> bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse + 6, // [6:9] is the sub-list for method output_type + 3, // [3:6] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_bitsong_smartaccount_v1beta1_query_proto_init() } +func file_bitsong_smartaccount_v1beta1_query_proto_init() { + if File_bitsong_smartaccount_v1beta1_query_proto != nil { + return + } + file_bitsong_smartaccount_v1beta1_params_proto_init() + file_bitsong_smartaccount_v1beta1_models_proto_init() + if !protoimpl.UnsafeEnabled { + file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryParamsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryParamsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAuthenticatorsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAuthenticatorsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAuthenticatorRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_query_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAuthenticatorResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bitsong_smartaccount_v1beta1_query_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_bitsong_smartaccount_v1beta1_query_proto_goTypes, + DependencyIndexes: file_bitsong_smartaccount_v1beta1_query_proto_depIdxs, + MessageInfos: file_bitsong_smartaccount_v1beta1_query_proto_msgTypes, + }.Build() + File_bitsong_smartaccount_v1beta1_query_proto = out.File + file_bitsong_smartaccount_v1beta1_query_proto_rawDesc = nil + file_bitsong_smartaccount_v1beta1_query_proto_goTypes = nil + file_bitsong_smartaccount_v1beta1_query_proto_depIdxs = nil +} diff --git a/api/bitsong/smartaccount/v1beta1/query_grpc.pb.go b/api/bitsong/smartaccount/v1beta1/query_grpc.pb.go new file mode 100644 index 00000000..100fa65e --- /dev/null +++ b/api/bitsong/smartaccount/v1beta1/query_grpc.pb.go @@ -0,0 +1,203 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.5.1 +// - protoc (unknown) +// source: bitsong/smartaccount/v1beta1/query.proto + +package smartaccountv1beta1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Query_Params_FullMethodName = "/bitsong.smartaccount.v1beta1.Query/Params" + Query_GetAuthenticator_FullMethodName = "/bitsong.smartaccount.v1beta1.Query/GetAuthenticator" + Query_GetAuthenticators_FullMethodName = "/bitsong.smartaccount.v1beta1.Query/GetAuthenticators" +) + +// QueryClient is the client API for Query service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// Query defines the gRPC querier service. +type QueryClient interface { + // Parameters queries the parameters of the module. + Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + GetAuthenticator(ctx context.Context, in *GetAuthenticatorRequest, opts ...grpc.CallOption) (*GetAuthenticatorResponse, error) + GetAuthenticators(ctx context.Context, in *GetAuthenticatorsRequest, opts ...grpc.CallOption) (*GetAuthenticatorsResponse, error) +} + +type queryClient struct { + cc grpc.ClientConnInterface +} + +func NewQueryClient(cc grpc.ClientConnInterface) QueryClient { + return &queryClient{cc} +} + +func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(QueryParamsResponse) + err := c.cc.Invoke(ctx, Query_Params_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) GetAuthenticator(ctx context.Context, in *GetAuthenticatorRequest, opts ...grpc.CallOption) (*GetAuthenticatorResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetAuthenticatorResponse) + err := c.cc.Invoke(ctx, Query_GetAuthenticator_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) GetAuthenticators(ctx context.Context, in *GetAuthenticatorsRequest, opts ...grpc.CallOption) (*GetAuthenticatorsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetAuthenticatorsResponse) + err := c.cc.Invoke(ctx, Query_GetAuthenticators_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// QueryServer is the server API for Query service. +// All implementations must embed UnimplementedQueryServer +// for forward compatibility. +// +// Query defines the gRPC querier service. +type QueryServer interface { + // Parameters queries the parameters of the module. + Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + GetAuthenticator(context.Context, *GetAuthenticatorRequest) (*GetAuthenticatorResponse, error) + GetAuthenticators(context.Context, *GetAuthenticatorsRequest) (*GetAuthenticatorsResponse, error) + mustEmbedUnimplementedQueryServer() +} + +// UnimplementedQueryServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedQueryServer struct{} + +func (UnimplementedQueryServer) Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") +} +func (UnimplementedQueryServer) GetAuthenticator(context.Context, *GetAuthenticatorRequest) (*GetAuthenticatorResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAuthenticator not implemented") +} +func (UnimplementedQueryServer) GetAuthenticators(context.Context, *GetAuthenticatorsRequest) (*GetAuthenticatorsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAuthenticators not implemented") +} +func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {} +func (UnimplementedQueryServer) testEmbeddedByValue() {} + +// UnsafeQueryServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to QueryServer will +// result in compilation errors. +type UnsafeQueryServer interface { + mustEmbedUnimplementedQueryServer() +} + +func RegisterQueryServer(s grpc.ServiceRegistrar, srv QueryServer) { + // If the following call pancis, it indicates UnimplementedQueryServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&Query_ServiceDesc, srv) +} + +func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryParamsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Params(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_Params_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Params(ctx, req.(*QueryParamsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_GetAuthenticator_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAuthenticatorRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).GetAuthenticator(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_GetAuthenticator_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).GetAuthenticator(ctx, req.(*GetAuthenticatorRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_GetAuthenticators_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAuthenticatorsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).GetAuthenticators(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_GetAuthenticators_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).GetAuthenticators(ctx, req.(*GetAuthenticatorsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Query_ServiceDesc is the grpc.ServiceDesc for Query service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Query_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "bitsong.smartaccount.v1beta1.Query", + HandlerType: (*QueryServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Params", + Handler: _Query_Params_Handler, + }, + { + MethodName: "GetAuthenticator", + Handler: _Query_GetAuthenticator_Handler, + }, + { + MethodName: "GetAuthenticators", + Handler: _Query_GetAuthenticators_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "bitsong/smartaccount/v1beta1/query.proto", +} diff --git a/api/bitsong/smartaccount/v1beta1/tx.pulsar.go b/api/bitsong/smartaccount/v1beta1/tx.pulsar.go new file mode 100644 index 00000000..5b52865b --- /dev/null +++ b/api/bitsong/smartaccount/v1beta1/tx.pulsar.go @@ -0,0 +1,4913 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package smartaccountv1beta1 + +import ( + _ "cosmossdk.io/api/amino" + _ "cosmossdk.io/api/cosmos/msg/v1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_MsgAddAuthenticator protoreflect.MessageDescriptor + fd_MsgAddAuthenticator_sender protoreflect.FieldDescriptor + fd_MsgAddAuthenticator_authenticator_type protoreflect.FieldDescriptor + fd_MsgAddAuthenticator_data protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_tx_proto_init() + md_MsgAddAuthenticator = File_bitsong_smartaccount_v1beta1_tx_proto.Messages().ByName("MsgAddAuthenticator") + fd_MsgAddAuthenticator_sender = md_MsgAddAuthenticator.Fields().ByName("sender") + fd_MsgAddAuthenticator_authenticator_type = md_MsgAddAuthenticator.Fields().ByName("authenticator_type") + fd_MsgAddAuthenticator_data = md_MsgAddAuthenticator.Fields().ByName("data") +} + +var _ protoreflect.Message = (*fastReflection_MsgAddAuthenticator)(nil) + +type fastReflection_MsgAddAuthenticator MsgAddAuthenticator + +func (x *MsgAddAuthenticator) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgAddAuthenticator)(x) +} + +func (x *MsgAddAuthenticator) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgAddAuthenticator_messageType fastReflection_MsgAddAuthenticator_messageType +var _ protoreflect.MessageType = fastReflection_MsgAddAuthenticator_messageType{} + +type fastReflection_MsgAddAuthenticator_messageType struct{} + +func (x fastReflection_MsgAddAuthenticator_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgAddAuthenticator)(nil) +} +func (x fastReflection_MsgAddAuthenticator_messageType) New() protoreflect.Message { + return new(fastReflection_MsgAddAuthenticator) +} +func (x fastReflection_MsgAddAuthenticator_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgAddAuthenticator +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgAddAuthenticator) Descriptor() protoreflect.MessageDescriptor { + return md_MsgAddAuthenticator +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgAddAuthenticator) Type() protoreflect.MessageType { + return _fastReflection_MsgAddAuthenticator_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgAddAuthenticator) New() protoreflect.Message { + return new(fastReflection_MsgAddAuthenticator) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgAddAuthenticator) Interface() protoreflect.ProtoMessage { + return (*MsgAddAuthenticator)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgAddAuthenticator) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Sender != "" { + value := protoreflect.ValueOfString(x.Sender) + if !f(fd_MsgAddAuthenticator_sender, value) { + return + } + } + if x.AuthenticatorType != "" { + value := protoreflect.ValueOfString(x.AuthenticatorType) + if !f(fd_MsgAddAuthenticator_authenticator_type, value) { + return + } + } + if len(x.Data) != 0 { + value := protoreflect.ValueOfBytes(x.Data) + if !f(fd_MsgAddAuthenticator_data, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgAddAuthenticator) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.sender": + return x.Sender != "" + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.authenticator_type": + return x.AuthenticatorType != "" + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.data": + return len(x.Data) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgAddAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgAddAuthenticator does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgAddAuthenticator) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.sender": + x.Sender = "" + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.authenticator_type": + x.AuthenticatorType = "" + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.data": + x.Data = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgAddAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgAddAuthenticator does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgAddAuthenticator) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.sender": + value := x.Sender + return protoreflect.ValueOfString(value) + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.authenticator_type": + value := x.AuthenticatorType + return protoreflect.ValueOfString(value) + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.data": + value := x.Data + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgAddAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgAddAuthenticator does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgAddAuthenticator) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.sender": + x.Sender = value.Interface().(string) + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.authenticator_type": + x.AuthenticatorType = value.Interface().(string) + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.data": + x.Data = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgAddAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgAddAuthenticator does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgAddAuthenticator) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.sender": + panic(fmt.Errorf("field sender of message bitsong.smartaccount.v1beta1.MsgAddAuthenticator is not mutable")) + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.authenticator_type": + panic(fmt.Errorf("field authenticator_type of message bitsong.smartaccount.v1beta1.MsgAddAuthenticator is not mutable")) + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.data": + panic(fmt.Errorf("field data of message bitsong.smartaccount.v1beta1.MsgAddAuthenticator is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgAddAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgAddAuthenticator does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgAddAuthenticator) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.sender": + return protoreflect.ValueOfString("") + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.authenticator_type": + return protoreflect.ValueOfString("") + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticator.data": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgAddAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgAddAuthenticator does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgAddAuthenticator) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.MsgAddAuthenticator", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgAddAuthenticator) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgAddAuthenticator) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgAddAuthenticator) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgAddAuthenticator) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgAddAuthenticator) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Sender) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.AuthenticatorType) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Data) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgAddAuthenticator) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Data) > 0 { + i -= len(x.Data) + copy(dAtA[i:], x.Data) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Data))) + i-- + dAtA[i] = 0x1a + } + if len(x.AuthenticatorType) > 0 { + i -= len(x.AuthenticatorType) + copy(dAtA[i:], x.AuthenticatorType) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.AuthenticatorType))) + i-- + dAtA[i] = 0x12 + } + if len(x.Sender) > 0 { + i -= len(x.Sender) + copy(dAtA[i:], x.Sender) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Sender))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgAddAuthenticator) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgAddAuthenticator: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgAddAuthenticator: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AuthenticatorType", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.AuthenticatorType = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Data = append(x.Data[:0], dAtA[iNdEx:postIndex]...) + if x.Data == nil { + x.Data = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgAddAuthenticatorResponse protoreflect.MessageDescriptor + fd_MsgAddAuthenticatorResponse_success protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_tx_proto_init() + md_MsgAddAuthenticatorResponse = File_bitsong_smartaccount_v1beta1_tx_proto.Messages().ByName("MsgAddAuthenticatorResponse") + fd_MsgAddAuthenticatorResponse_success = md_MsgAddAuthenticatorResponse.Fields().ByName("success") +} + +var _ protoreflect.Message = (*fastReflection_MsgAddAuthenticatorResponse)(nil) + +type fastReflection_MsgAddAuthenticatorResponse MsgAddAuthenticatorResponse + +func (x *MsgAddAuthenticatorResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgAddAuthenticatorResponse)(x) +} + +func (x *MsgAddAuthenticatorResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgAddAuthenticatorResponse_messageType fastReflection_MsgAddAuthenticatorResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgAddAuthenticatorResponse_messageType{} + +type fastReflection_MsgAddAuthenticatorResponse_messageType struct{} + +func (x fastReflection_MsgAddAuthenticatorResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgAddAuthenticatorResponse)(nil) +} +func (x fastReflection_MsgAddAuthenticatorResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgAddAuthenticatorResponse) +} +func (x fastReflection_MsgAddAuthenticatorResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgAddAuthenticatorResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgAddAuthenticatorResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgAddAuthenticatorResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgAddAuthenticatorResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgAddAuthenticatorResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgAddAuthenticatorResponse) New() protoreflect.Message { + return new(fastReflection_MsgAddAuthenticatorResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgAddAuthenticatorResponse) Interface() protoreflect.ProtoMessage { + return (*MsgAddAuthenticatorResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgAddAuthenticatorResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Success != false { + value := protoreflect.ValueOfBool(x.Success) + if !f(fd_MsgAddAuthenticatorResponse_success, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgAddAuthenticatorResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse.success": + return x.Success != false + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgAddAuthenticatorResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse.success": + x.Success = false + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgAddAuthenticatorResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse.success": + value := x.Success + return protoreflect.ValueOfBool(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgAddAuthenticatorResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse.success": + x.Success = value.Bool() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgAddAuthenticatorResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse.success": + panic(fmt.Errorf("field success of message bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgAddAuthenticatorResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse.success": + return protoreflect.ValueOfBool(false) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgAddAuthenticatorResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgAddAuthenticatorResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgAddAuthenticatorResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgAddAuthenticatorResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgAddAuthenticatorResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgAddAuthenticatorResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Success { + n += 2 + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgAddAuthenticatorResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Success { + i-- + if x.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgAddAuthenticatorResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgAddAuthenticatorResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgAddAuthenticatorResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Success = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgRemoveAuthenticator protoreflect.MessageDescriptor + fd_MsgRemoveAuthenticator_sender protoreflect.FieldDescriptor + fd_MsgRemoveAuthenticator_id protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_tx_proto_init() + md_MsgRemoveAuthenticator = File_bitsong_smartaccount_v1beta1_tx_proto.Messages().ByName("MsgRemoveAuthenticator") + fd_MsgRemoveAuthenticator_sender = md_MsgRemoveAuthenticator.Fields().ByName("sender") + fd_MsgRemoveAuthenticator_id = md_MsgRemoveAuthenticator.Fields().ByName("id") +} + +var _ protoreflect.Message = (*fastReflection_MsgRemoveAuthenticator)(nil) + +type fastReflection_MsgRemoveAuthenticator MsgRemoveAuthenticator + +func (x *MsgRemoveAuthenticator) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgRemoveAuthenticator)(x) +} + +func (x *MsgRemoveAuthenticator) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgRemoveAuthenticator_messageType fastReflection_MsgRemoveAuthenticator_messageType +var _ protoreflect.MessageType = fastReflection_MsgRemoveAuthenticator_messageType{} + +type fastReflection_MsgRemoveAuthenticator_messageType struct{} + +func (x fastReflection_MsgRemoveAuthenticator_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgRemoveAuthenticator)(nil) +} +func (x fastReflection_MsgRemoveAuthenticator_messageType) New() protoreflect.Message { + return new(fastReflection_MsgRemoveAuthenticator) +} +func (x fastReflection_MsgRemoveAuthenticator_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgRemoveAuthenticator +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgRemoveAuthenticator) Descriptor() protoreflect.MessageDescriptor { + return md_MsgRemoveAuthenticator +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgRemoveAuthenticator) Type() protoreflect.MessageType { + return _fastReflection_MsgRemoveAuthenticator_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgRemoveAuthenticator) New() protoreflect.Message { + return new(fastReflection_MsgRemoveAuthenticator) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgRemoveAuthenticator) Interface() protoreflect.ProtoMessage { + return (*MsgRemoveAuthenticator)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgRemoveAuthenticator) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Sender != "" { + value := protoreflect.ValueOfString(x.Sender) + if !f(fd_MsgRemoveAuthenticator_sender, value) { + return + } + } + if x.Id != uint64(0) { + value := protoreflect.ValueOfUint64(x.Id) + if !f(fd_MsgRemoveAuthenticator_id, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgRemoveAuthenticator) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator.sender": + return x.Sender != "" + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator.id": + return x.Id != uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRemoveAuthenticator) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator.sender": + x.Sender = "" + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator.id": + x.Id = uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgRemoveAuthenticator) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator.sender": + value := x.Sender + return protoreflect.ValueOfString(value) + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator.id": + value := x.Id + return protoreflect.ValueOfUint64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRemoveAuthenticator) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator.sender": + x.Sender = value.Interface().(string) + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator.id": + x.Id = value.Uint() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRemoveAuthenticator) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator.sender": + panic(fmt.Errorf("field sender of message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator is not mutable")) + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator.id": + panic(fmt.Errorf("field id of message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgRemoveAuthenticator) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator.sender": + return protoreflect.ValueOfString("") + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator.id": + return protoreflect.ValueOfUint64(uint64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgRemoveAuthenticator) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgRemoveAuthenticator) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRemoveAuthenticator) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgRemoveAuthenticator) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgRemoveAuthenticator) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgRemoveAuthenticator) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Sender) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Id != 0 { + n += 1 + runtime.Sov(uint64(x.Id)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgRemoveAuthenticator) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Id != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Id)) + i-- + dAtA[i] = 0x10 + } + if len(x.Sender) > 0 { + i -= len(x.Sender) + copy(dAtA[i:], x.Sender) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Sender))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgRemoveAuthenticator) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRemoveAuthenticator: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRemoveAuthenticator: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + x.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgRemoveAuthenticatorResponse protoreflect.MessageDescriptor + fd_MsgRemoveAuthenticatorResponse_success protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_tx_proto_init() + md_MsgRemoveAuthenticatorResponse = File_bitsong_smartaccount_v1beta1_tx_proto.Messages().ByName("MsgRemoveAuthenticatorResponse") + fd_MsgRemoveAuthenticatorResponse_success = md_MsgRemoveAuthenticatorResponse.Fields().ByName("success") +} + +var _ protoreflect.Message = (*fastReflection_MsgRemoveAuthenticatorResponse)(nil) + +type fastReflection_MsgRemoveAuthenticatorResponse MsgRemoveAuthenticatorResponse + +func (x *MsgRemoveAuthenticatorResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgRemoveAuthenticatorResponse)(x) +} + +func (x *MsgRemoveAuthenticatorResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgRemoveAuthenticatorResponse_messageType fastReflection_MsgRemoveAuthenticatorResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgRemoveAuthenticatorResponse_messageType{} + +type fastReflection_MsgRemoveAuthenticatorResponse_messageType struct{} + +func (x fastReflection_MsgRemoveAuthenticatorResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgRemoveAuthenticatorResponse)(nil) +} +func (x fastReflection_MsgRemoveAuthenticatorResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgRemoveAuthenticatorResponse) +} +func (x fastReflection_MsgRemoveAuthenticatorResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgRemoveAuthenticatorResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgRemoveAuthenticatorResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgRemoveAuthenticatorResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) New() protoreflect.Message { + return new(fastReflection_MsgRemoveAuthenticatorResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) Interface() protoreflect.ProtoMessage { + return (*MsgRemoveAuthenticatorResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Success != false { + value := protoreflect.ValueOfBool(x.Success) + if !f(fd_MsgRemoveAuthenticatorResponse_success, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse.success": + return x.Success != false + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse.success": + x.Success = false + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse.success": + value := x.Success + return protoreflect.ValueOfBool(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse.success": + x.Success = value.Bool() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse.success": + panic(fmt.Errorf("field success of message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse.success": + return protoreflect.ValueOfBool(false) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgRemoveAuthenticatorResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgRemoveAuthenticatorResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Success { + n += 2 + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgRemoveAuthenticatorResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Success { + i-- + if x.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgRemoveAuthenticatorResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRemoveAuthenticatorResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRemoveAuthenticatorResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Success = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgSetActiveState protoreflect.MessageDescriptor + fd_MsgSetActiveState_sender protoreflect.FieldDescriptor + fd_MsgSetActiveState_active protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_tx_proto_init() + md_MsgSetActiveState = File_bitsong_smartaccount_v1beta1_tx_proto.Messages().ByName("MsgSetActiveState") + fd_MsgSetActiveState_sender = md_MsgSetActiveState.Fields().ByName("sender") + fd_MsgSetActiveState_active = md_MsgSetActiveState.Fields().ByName("active") +} + +var _ protoreflect.Message = (*fastReflection_MsgSetActiveState)(nil) + +type fastReflection_MsgSetActiveState MsgSetActiveState + +func (x *MsgSetActiveState) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgSetActiveState)(x) +} + +func (x *MsgSetActiveState) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgSetActiveState_messageType fastReflection_MsgSetActiveState_messageType +var _ protoreflect.MessageType = fastReflection_MsgSetActiveState_messageType{} + +type fastReflection_MsgSetActiveState_messageType struct{} + +func (x fastReflection_MsgSetActiveState_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgSetActiveState)(nil) +} +func (x fastReflection_MsgSetActiveState_messageType) New() protoreflect.Message { + return new(fastReflection_MsgSetActiveState) +} +func (x fastReflection_MsgSetActiveState_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetActiveState +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgSetActiveState) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetActiveState +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgSetActiveState) Type() protoreflect.MessageType { + return _fastReflection_MsgSetActiveState_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgSetActiveState) New() protoreflect.Message { + return new(fastReflection_MsgSetActiveState) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgSetActiveState) Interface() protoreflect.ProtoMessage { + return (*MsgSetActiveState)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgSetActiveState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Sender != "" { + value := protoreflect.ValueOfString(x.Sender) + if !f(fd_MsgSetActiveState_sender, value) { + return + } + } + if x.Active != false { + value := protoreflect.ValueOfBool(x.Active) + if !f(fd_MsgSetActiveState_active, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgSetActiveState) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgSetActiveState.sender": + return x.Sender != "" + case "bitsong.smartaccount.v1beta1.MsgSetActiveState.active": + return x.Active != false + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgSetActiveState")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgSetActiveState does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetActiveState) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgSetActiveState.sender": + x.Sender = "" + case "bitsong.smartaccount.v1beta1.MsgSetActiveState.active": + x.Active = false + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgSetActiveState")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgSetActiveState does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgSetActiveState) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.MsgSetActiveState.sender": + value := x.Sender + return protoreflect.ValueOfString(value) + case "bitsong.smartaccount.v1beta1.MsgSetActiveState.active": + value := x.Active + return protoreflect.ValueOfBool(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgSetActiveState")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgSetActiveState does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetActiveState) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgSetActiveState.sender": + x.Sender = value.Interface().(string) + case "bitsong.smartaccount.v1beta1.MsgSetActiveState.active": + x.Active = value.Bool() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgSetActiveState")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgSetActiveState does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetActiveState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgSetActiveState.sender": + panic(fmt.Errorf("field sender of message bitsong.smartaccount.v1beta1.MsgSetActiveState is not mutable")) + case "bitsong.smartaccount.v1beta1.MsgSetActiveState.active": + panic(fmt.Errorf("field active of message bitsong.smartaccount.v1beta1.MsgSetActiveState is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgSetActiveState")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgSetActiveState does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgSetActiveState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.MsgSetActiveState.sender": + return protoreflect.ValueOfString("") + case "bitsong.smartaccount.v1beta1.MsgSetActiveState.active": + return protoreflect.ValueOfBool(false) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgSetActiveState")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgSetActiveState does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgSetActiveState) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.MsgSetActiveState", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgSetActiveState) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetActiveState) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgSetActiveState) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgSetActiveState) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgSetActiveState) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Sender) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Active { + n += 2 + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgSetActiveState) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Active { + i-- + if x.Active { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if len(x.Sender) > 0 { + i -= len(x.Sender) + copy(dAtA[i:], x.Sender) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Sender))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgSetActiveState) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetActiveState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetActiveState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Active", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Active = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgSetActiveStateResponse protoreflect.MessageDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_tx_proto_init() + md_MsgSetActiveStateResponse = File_bitsong_smartaccount_v1beta1_tx_proto.Messages().ByName("MsgSetActiveStateResponse") +} + +var _ protoreflect.Message = (*fastReflection_MsgSetActiveStateResponse)(nil) + +type fastReflection_MsgSetActiveStateResponse MsgSetActiveStateResponse + +func (x *MsgSetActiveStateResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgSetActiveStateResponse)(x) +} + +func (x *MsgSetActiveStateResponse) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgSetActiveStateResponse_messageType fastReflection_MsgSetActiveStateResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgSetActiveStateResponse_messageType{} + +type fastReflection_MsgSetActiveStateResponse_messageType struct{} + +func (x fastReflection_MsgSetActiveStateResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgSetActiveStateResponse)(nil) +} +func (x fastReflection_MsgSetActiveStateResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgSetActiveStateResponse) +} +func (x fastReflection_MsgSetActiveStateResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetActiveStateResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgSetActiveStateResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetActiveStateResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgSetActiveStateResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgSetActiveStateResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgSetActiveStateResponse) New() protoreflect.Message { + return new(fastReflection_MsgSetActiveStateResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgSetActiveStateResponse) Interface() protoreflect.ProtoMessage { + return (*MsgSetActiveStateResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgSetActiveStateResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgSetActiveStateResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetActiveStateResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgSetActiveStateResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetActiveStateResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetActiveStateResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgSetActiveStateResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgSetActiveStateResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgSetActiveStateResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgSetActiveStateResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgSetActiveStateResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgSetActiveStateResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgSetActiveStateResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgSetActiveStateResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgSetActiveStateResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetActiveStateResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetActiveStateResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_AgAuthData protoreflect.MessageDescriptor + fd_AgAuthData_data protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_tx_proto_init() + md_AgAuthData = File_bitsong_smartaccount_v1beta1_tx_proto.Messages().ByName("AgAuthData") + fd_AgAuthData_data = md_AgAuthData.Fields().ByName("data") +} + +var _ protoreflect.Message = (*fastReflection_AgAuthData)(nil) + +type fastReflection_AgAuthData AgAuthData + +func (x *AgAuthData) ProtoReflect() protoreflect.Message { + return (*fastReflection_AgAuthData)(x) +} + +func (x *AgAuthData) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_AgAuthData_messageType fastReflection_AgAuthData_messageType +var _ protoreflect.MessageType = fastReflection_AgAuthData_messageType{} + +type fastReflection_AgAuthData_messageType struct{} + +func (x fastReflection_AgAuthData_messageType) Zero() protoreflect.Message { + return (*fastReflection_AgAuthData)(nil) +} +func (x fastReflection_AgAuthData_messageType) New() protoreflect.Message { + return new(fastReflection_AgAuthData) +} +func (x fastReflection_AgAuthData_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_AgAuthData +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_AgAuthData) Descriptor() protoreflect.MessageDescriptor { + return md_AgAuthData +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_AgAuthData) Type() protoreflect.MessageType { + return _fastReflection_AgAuthData_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_AgAuthData) New() protoreflect.Message { + return new(fastReflection_AgAuthData) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_AgAuthData) Interface() protoreflect.ProtoMessage { + return (*AgAuthData)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_AgAuthData) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Data) != 0 { + value := protoreflect.ValueOfBytes(x.Data) + if !f(fd_AgAuthData_data, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_AgAuthData) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AgAuthData.data": + return len(x.Data) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AgAuthData")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AgAuthData does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AgAuthData) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AgAuthData.data": + x.Data = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AgAuthData")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AgAuthData does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_AgAuthData) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.AgAuthData.data": + value := x.Data + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AgAuthData")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AgAuthData does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AgAuthData) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AgAuthData.data": + x.Data = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AgAuthData")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AgAuthData does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AgAuthData) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AgAuthData.data": + panic(fmt.Errorf("field data of message bitsong.smartaccount.v1beta1.AgAuthData is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AgAuthData")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AgAuthData does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_AgAuthData) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.AgAuthData.data": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.AgAuthData")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.AgAuthData does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_AgAuthData) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.AgAuthData", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_AgAuthData) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AgAuthData) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_AgAuthData) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_AgAuthData) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*AgAuthData) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Data) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*AgAuthData) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Data) > 0 { + i -= len(x.Data) + copy(dAtA[i:], x.Data) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Data))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*AgAuthData) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AgAuthData: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AgAuthData: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Data = append(x.Data[:0], dAtA[iNdEx:postIndex]...) + if x.Data == nil { + x.Data = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_TxExtension_1_list)(nil) + +type _TxExtension_1_list struct { + list *[]uint64 +} + +func (x *_TxExtension_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_TxExtension_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfUint64((*x.list)[i]) +} + +func (x *_TxExtension_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_TxExtension_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_TxExtension_1_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message TxExtension at list field SelectedAuthenticators as it is not of Message kind")) +} + +func (x *_TxExtension_1_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_TxExtension_1_list) NewElement() protoreflect.Value { + v := uint64(0) + return protoreflect.ValueOfUint64(v) +} + +func (x *_TxExtension_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_TxExtension protoreflect.MessageDescriptor + fd_TxExtension_selected_authenticators protoreflect.FieldDescriptor + fd_TxExtension_agg_auth protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_tx_proto_init() + md_TxExtension = File_bitsong_smartaccount_v1beta1_tx_proto.Messages().ByName("TxExtension") + fd_TxExtension_selected_authenticators = md_TxExtension.Fields().ByName("selected_authenticators") + fd_TxExtension_agg_auth = md_TxExtension.Fields().ByName("agg_auth") +} + +var _ protoreflect.Message = (*fastReflection_TxExtension)(nil) + +type fastReflection_TxExtension TxExtension + +func (x *TxExtension) ProtoReflect() protoreflect.Message { + return (*fastReflection_TxExtension)(x) +} + +func (x *TxExtension) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_TxExtension_messageType fastReflection_TxExtension_messageType +var _ protoreflect.MessageType = fastReflection_TxExtension_messageType{} + +type fastReflection_TxExtension_messageType struct{} + +func (x fastReflection_TxExtension_messageType) Zero() protoreflect.Message { + return (*fastReflection_TxExtension)(nil) +} +func (x fastReflection_TxExtension_messageType) New() protoreflect.Message { + return new(fastReflection_TxExtension) +} +func (x fastReflection_TxExtension_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_TxExtension +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_TxExtension) Descriptor() protoreflect.MessageDescriptor { + return md_TxExtension +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_TxExtension) Type() protoreflect.MessageType { + return _fastReflection_TxExtension_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_TxExtension) New() protoreflect.Message { + return new(fastReflection_TxExtension) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_TxExtension) Interface() protoreflect.ProtoMessage { + return (*TxExtension)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_TxExtension) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.SelectedAuthenticators) != 0 { + value := protoreflect.ValueOfList(&_TxExtension_1_list{list: &x.SelectedAuthenticators}) + if !f(fd_TxExtension_selected_authenticators, value) { + return + } + } + if x.AggAuth != nil { + value := protoreflect.ValueOfMessage(x.AggAuth.ProtoReflect()) + if !f(fd_TxExtension_agg_auth, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_TxExtension) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.TxExtension.selected_authenticators": + return len(x.SelectedAuthenticators) != 0 + case "bitsong.smartaccount.v1beta1.TxExtension.agg_auth": + return x.AggAuth != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.TxExtension")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.TxExtension does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_TxExtension) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.TxExtension.selected_authenticators": + x.SelectedAuthenticators = nil + case "bitsong.smartaccount.v1beta1.TxExtension.agg_auth": + x.AggAuth = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.TxExtension")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.TxExtension does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_TxExtension) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.TxExtension.selected_authenticators": + if len(x.SelectedAuthenticators) == 0 { + return protoreflect.ValueOfList(&_TxExtension_1_list{}) + } + listValue := &_TxExtension_1_list{list: &x.SelectedAuthenticators} + return protoreflect.ValueOfList(listValue) + case "bitsong.smartaccount.v1beta1.TxExtension.agg_auth": + value := x.AggAuth + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.TxExtension")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.TxExtension does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_TxExtension) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.TxExtension.selected_authenticators": + lv := value.List() + clv := lv.(*_TxExtension_1_list) + x.SelectedAuthenticators = *clv.list + case "bitsong.smartaccount.v1beta1.TxExtension.agg_auth": + x.AggAuth = value.Message().Interface().(*AgAuthData) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.TxExtension")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.TxExtension does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_TxExtension) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.TxExtension.selected_authenticators": + if x.SelectedAuthenticators == nil { + x.SelectedAuthenticators = []uint64{} + } + value := &_TxExtension_1_list{list: &x.SelectedAuthenticators} + return protoreflect.ValueOfList(value) + case "bitsong.smartaccount.v1beta1.TxExtension.agg_auth": + if x.AggAuth == nil { + x.AggAuth = new(AgAuthData) + } + return protoreflect.ValueOfMessage(x.AggAuth.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.TxExtension")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.TxExtension does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_TxExtension) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.TxExtension.selected_authenticators": + list := []uint64{} + return protoreflect.ValueOfList(&_TxExtension_1_list{list: &list}) + case "bitsong.smartaccount.v1beta1.TxExtension.agg_auth": + m := new(AgAuthData) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.TxExtension")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.TxExtension does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_TxExtension) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.TxExtension", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_TxExtension) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_TxExtension) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_TxExtension) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_TxExtension) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*TxExtension) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.SelectedAuthenticators) > 0 { + l = 0 + for _, e := range x.SelectedAuthenticators { + l += runtime.Sov(uint64(e)) + } + n += 1 + runtime.Sov(uint64(l)) + l + } + if x.AggAuth != nil { + l = options.Size(x.AggAuth) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*TxExtension) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.AggAuth != nil { + encoded, err := options.Marshal(x.AggAuth) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.SelectedAuthenticators) > 0 { + var pksize2 int + for _, num := range x.SelectedAuthenticators { + pksize2 += runtime.Sov(uint64(num)) + } + i -= pksize2 + j1 := i + for _, num := range x.SelectedAuthenticators { + for num >= 1<<7 { + dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA[j1] = uint8(num) + j1++ + } + i = runtime.EncodeVarint(dAtA, i, uint64(pksize2)) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*TxExtension) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TxExtension: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TxExtension: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.SelectedAuthenticators = append(x.SelectedAuthenticators, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(x.SelectedAuthenticators) == 0 { + x.SelectedAuthenticators = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.SelectedAuthenticators = append(x.SelectedAuthenticators, v) + } + } else { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SelectedAuthenticators", wireType) + } + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AggAuth", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.AggAuth == nil { + x.AggAuth = &AgAuthData{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.AggAuth); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_BlsConfig_1_list)(nil) + +type _BlsConfig_1_list struct { + list *[][]byte +} + +func (x *_BlsConfig_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_BlsConfig_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfBytes((*x.list)[i]) +} + +func (x *_BlsConfig_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Bytes() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_BlsConfig_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Bytes() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_BlsConfig_1_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message BlsConfig at list field Pubkeys as it is not of Message kind")) +} + +func (x *_BlsConfig_1_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_BlsConfig_1_list) NewElement() protoreflect.Value { + var v []byte + return protoreflect.ValueOfBytes(v) +} + +func (x *_BlsConfig_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_BlsConfig protoreflect.MessageDescriptor + fd_BlsConfig_pubkeys protoreflect.FieldDescriptor + fd_BlsConfig_threshold protoreflect.FieldDescriptor +) + +func init() { + file_bitsong_smartaccount_v1beta1_tx_proto_init() + md_BlsConfig = File_bitsong_smartaccount_v1beta1_tx_proto.Messages().ByName("BlsConfig") + fd_BlsConfig_pubkeys = md_BlsConfig.Fields().ByName("pubkeys") + fd_BlsConfig_threshold = md_BlsConfig.Fields().ByName("threshold") +} + +var _ protoreflect.Message = (*fastReflection_BlsConfig)(nil) + +type fastReflection_BlsConfig BlsConfig + +func (x *BlsConfig) ProtoReflect() protoreflect.Message { + return (*fastReflection_BlsConfig)(x) +} + +func (x *BlsConfig) slowProtoReflect() protoreflect.Message { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_BlsConfig_messageType fastReflection_BlsConfig_messageType +var _ protoreflect.MessageType = fastReflection_BlsConfig_messageType{} + +type fastReflection_BlsConfig_messageType struct{} + +func (x fastReflection_BlsConfig_messageType) Zero() protoreflect.Message { + return (*fastReflection_BlsConfig)(nil) +} +func (x fastReflection_BlsConfig_messageType) New() protoreflect.Message { + return new(fastReflection_BlsConfig) +} +func (x fastReflection_BlsConfig_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_BlsConfig +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_BlsConfig) Descriptor() protoreflect.MessageDescriptor { + return md_BlsConfig +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_BlsConfig) Type() protoreflect.MessageType { + return _fastReflection_BlsConfig_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_BlsConfig) New() protoreflect.Message { + return new(fastReflection_BlsConfig) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_BlsConfig) Interface() protoreflect.ProtoMessage { + return (*BlsConfig)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_BlsConfig) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Pubkeys) != 0 { + value := protoreflect.ValueOfList(&_BlsConfig_1_list{list: &x.Pubkeys}) + if !f(fd_BlsConfig_pubkeys, value) { + return + } + } + if x.Threshold != uint64(0) { + value := protoreflect.ValueOfUint64(x.Threshold) + if !f(fd_BlsConfig_threshold, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_BlsConfig) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.BlsConfig.pubkeys": + return len(x.Pubkeys) != 0 + case "bitsong.smartaccount.v1beta1.BlsConfig.threshold": + return x.Threshold != uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.BlsConfig")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.BlsConfig does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_BlsConfig) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.BlsConfig.pubkeys": + x.Pubkeys = nil + case "bitsong.smartaccount.v1beta1.BlsConfig.threshold": + x.Threshold = uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.BlsConfig")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.BlsConfig does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_BlsConfig) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "bitsong.smartaccount.v1beta1.BlsConfig.pubkeys": + if len(x.Pubkeys) == 0 { + return protoreflect.ValueOfList(&_BlsConfig_1_list{}) + } + listValue := &_BlsConfig_1_list{list: &x.Pubkeys} + return protoreflect.ValueOfList(listValue) + case "bitsong.smartaccount.v1beta1.BlsConfig.threshold": + value := x.Threshold + return protoreflect.ValueOfUint64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.BlsConfig")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.BlsConfig does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_BlsConfig) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.BlsConfig.pubkeys": + lv := value.List() + clv := lv.(*_BlsConfig_1_list) + x.Pubkeys = *clv.list + case "bitsong.smartaccount.v1beta1.BlsConfig.threshold": + x.Threshold = value.Uint() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.BlsConfig")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.BlsConfig does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_BlsConfig) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.BlsConfig.pubkeys": + if x.Pubkeys == nil { + x.Pubkeys = [][]byte{} + } + value := &_BlsConfig_1_list{list: &x.Pubkeys} + return protoreflect.ValueOfList(value) + case "bitsong.smartaccount.v1beta1.BlsConfig.threshold": + panic(fmt.Errorf("field threshold of message bitsong.smartaccount.v1beta1.BlsConfig is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.BlsConfig")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.BlsConfig does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_BlsConfig) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "bitsong.smartaccount.v1beta1.BlsConfig.pubkeys": + list := [][]byte{} + return protoreflect.ValueOfList(&_BlsConfig_1_list{list: &list}) + case "bitsong.smartaccount.v1beta1.BlsConfig.threshold": + return protoreflect.ValueOfUint64(uint64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: bitsong.smartaccount.v1beta1.BlsConfig")) + } + panic(fmt.Errorf("message bitsong.smartaccount.v1beta1.BlsConfig does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_BlsConfig) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in bitsong.smartaccount.v1beta1.BlsConfig", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_BlsConfig) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_BlsConfig) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_BlsConfig) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_BlsConfig) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*BlsConfig) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.Pubkeys) > 0 { + for _, b := range x.Pubkeys { + l = len(b) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.Threshold != 0 { + n += 1 + runtime.Sov(uint64(x.Threshold)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*BlsConfig) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Threshold != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Threshold)) + i-- + dAtA[i] = 0x10 + } + if len(x.Pubkeys) > 0 { + for iNdEx := len(x.Pubkeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.Pubkeys[iNdEx]) + copy(dAtA[i:], x.Pubkeys[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Pubkeys[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*BlsConfig) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: BlsConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: BlsConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Pubkeys", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Pubkeys = append(x.Pubkeys, make([]byte, postIndex-iNdEx)) + copy(x.Pubkeys[len(x.Pubkeys)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Threshold", wireType) + } + x.Threshold = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Threshold |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: bitsong/smartaccount/v1beta1/tx.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// MsgAddAuthenticatorRequest defines the Msg/AddAuthenticator request type. +type MsgAddAuthenticator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + AuthenticatorType string `protobuf:"bytes,2,opt,name=authenticator_type,json=authenticatorType,proto3" json:"authenticator_type,omitempty"` + Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *MsgAddAuthenticator) Reset() { + *x = MsgAddAuthenticator{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgAddAuthenticator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgAddAuthenticator) ProtoMessage() {} + +// Deprecated: Use MsgAddAuthenticator.ProtoReflect.Descriptor instead. +func (*MsgAddAuthenticator) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_tx_proto_rawDescGZIP(), []int{0} +} + +func (x *MsgAddAuthenticator) GetSender() string { + if x != nil { + return x.Sender + } + return "" +} + +func (x *MsgAddAuthenticator) GetAuthenticatorType() string { + if x != nil { + return x.AuthenticatorType + } + return "" +} + +func (x *MsgAddAuthenticator) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +// MsgAddAuthenticatorResponse defines the Msg/AddAuthenticator response type. +type MsgAddAuthenticatorResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` +} + +func (x *MsgAddAuthenticatorResponse) Reset() { + *x = MsgAddAuthenticatorResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgAddAuthenticatorResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgAddAuthenticatorResponse) ProtoMessage() {} + +// Deprecated: Use MsgAddAuthenticatorResponse.ProtoReflect.Descriptor instead. +func (*MsgAddAuthenticatorResponse) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_tx_proto_rawDescGZIP(), []int{1} +} + +func (x *MsgAddAuthenticatorResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +// MsgRemoveAuthenticatorRequest defines the Msg/RemoveAuthenticator request +// type. +type MsgRemoveAuthenticator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *MsgRemoveAuthenticator) Reset() { + *x = MsgRemoveAuthenticator{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgRemoveAuthenticator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgRemoveAuthenticator) ProtoMessage() {} + +// Deprecated: Use MsgRemoveAuthenticator.ProtoReflect.Descriptor instead. +func (*MsgRemoveAuthenticator) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_tx_proto_rawDescGZIP(), []int{2} +} + +func (x *MsgRemoveAuthenticator) GetSender() string { + if x != nil { + return x.Sender + } + return "" +} + +func (x *MsgRemoveAuthenticator) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +// MsgRemoveAuthenticatorResponse defines the Msg/RemoveAuthenticator response +// type. +type MsgRemoveAuthenticatorResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` +} + +func (x *MsgRemoveAuthenticatorResponse) Reset() { + *x = MsgRemoveAuthenticatorResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgRemoveAuthenticatorResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgRemoveAuthenticatorResponse) ProtoMessage() {} + +// Deprecated: Use MsgRemoveAuthenticatorResponse.ProtoReflect.Descriptor instead. +func (*MsgRemoveAuthenticatorResponse) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_tx_proto_rawDescGZIP(), []int{3} +} + +func (x *MsgRemoveAuthenticatorResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +type MsgSetActiveState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Active bool `protobuf:"varint,2,opt,name=active,proto3" json:"active,omitempty"` +} + +func (x *MsgSetActiveState) Reset() { + *x = MsgSetActiveState{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgSetActiveState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSetActiveState) ProtoMessage() {} + +// Deprecated: Use MsgSetActiveState.ProtoReflect.Descriptor instead. +func (*MsgSetActiveState) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_tx_proto_rawDescGZIP(), []int{4} +} + +func (x *MsgSetActiveState) GetSender() string { + if x != nil { + return x.Sender + } + return "" +} + +func (x *MsgSetActiveState) GetActive() bool { + if x != nil { + return x.Active + } + return false +} + +type MsgSetActiveStateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MsgSetActiveStateResponse) Reset() { + *x = MsgSetActiveStateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgSetActiveStateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSetActiveStateResponse) ProtoMessage() {} + +// Deprecated: Use MsgSetActiveStateResponse.ProtoReflect.Descriptor instead. +func (*MsgSetActiveStateResponse) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_tx_proto_rawDescGZIP(), []int{5} +} + +// AgAuthData is a Serialized array of signing.SignatureV2. +// We Marshal & Unmarshal via `UnmarshalSignatureJSON` & `MarshalSignatureJSON` +type AgAuthData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *AgAuthData) Reset() { + *x = AgAuthData{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AgAuthData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AgAuthData) ProtoMessage() {} + +// Deprecated: Use AgAuthData.ProtoReflect.Descriptor instead. +func (*AgAuthData) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_tx_proto_rawDescGZIP(), []int{6} +} + +func (x *AgAuthData) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +// TxExtension allows for additional authenticator-specific data in +// transactions. +type TxExtension struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // selected_authenticators holds the authenticator_id for the chosen + // authenticator per message. + SelectedAuthenticators []uint64 `protobuf:"varint,1,rep,packed,name=selected_authenticators,json=selectedAuthenticators,proto3" json:"selected_authenticators,omitempty"` + // optional, used to provide aggregate key signature data to module for authentication. + AggAuth *AgAuthData `protobuf:"bytes,2,opt,name=agg_auth,json=aggAuth,proto3" json:"agg_auth,omitempty"` +} + +func (x *TxExtension) Reset() { + *x = TxExtension{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TxExtension) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TxExtension) ProtoMessage() {} + +// Deprecated: Use TxExtension.ProtoReflect.Descriptor instead. +func (*TxExtension) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_tx_proto_rawDescGZIP(), []int{7} +} + +func (x *TxExtension) GetSelectedAuthenticators() []uint64 { + if x != nil { + return x.SelectedAuthenticators + } + return nil +} + +func (x *TxExtension) GetAggAuth() *AgAuthData { + if x != nil { + return x.AggAuth + } + return nil +} + +// BlsConfig +type BlsConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // list of pubkeys that are points in aggregate key set + Pubkeys [][]byte `protobuf:"bytes,1,rep,name=pubkeys,proto3" json:"pubkeys,omitempty"` + // minimum threshold of points in order for tx to be valid + Threshold uint64 `protobuf:"varint,2,opt,name=threshold,proto3" json:"threshold,omitempty"` +} + +func (x *BlsConfig) Reset() { + *x = BlsConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlsConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlsConfig) ProtoMessage() {} + +// Deprecated: Use BlsConfig.ProtoReflect.Descriptor instead. +func (*BlsConfig) Descriptor() ([]byte, []int) { + return file_bitsong_smartaccount_v1beta1_tx_proto_rawDescGZIP(), []int{8} +} + +func (x *BlsConfig) GetPubkeys() [][]byte { + if x != nil { + return x.Pubkeys + } + return nil +} + +func (x *BlsConfig) GetThreshold() uint64 { + if x != nil { + return x.Threshold + } + return 0 +} + +var File_bitsong_smartaccount_v1beta1_tx_proto protoreflect.FileDescriptor + +var file_bitsong_smartaccount_v1beta1_tx_proto_rawDesc = []byte{ + 0x0a, 0x25, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, + 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, + 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, + 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, + 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, + 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x41, + 0x64, 0x64, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x36, 0x82, 0xe7, 0xb0, 0x2a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x26, 0x62, 0x69, 0x74, 0x73, + 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x2f, 0x61, 0x64, 0x64, 0x2d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x6f, 0x72, 0x22, 0x37, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x41, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x7b, 0x0a, 0x16, 0x4d, + 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x3a, 0x39, 0x82, + 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x29, 0x62, + 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x2d, 0x61, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x3a, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x22, 0x7a, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x35, 0x82, 0xe7, 0xb0, 0x2a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x62, 0x69, 0x74, 0x73, 0x6f, + 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, + 0x73, 0x65, 0x74, 0x2d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x0a, + 0x0a, 0x41, 0x67, 0x41, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x8b, 0x01, 0x0a, 0x0b, 0x54, 0x78, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x37, 0x0a, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x43, 0x0a, 0x08, 0x61, 0x67, 0x67, 0x5f, + 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x69, 0x74, + 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x41, 0x75, 0x74, 0x68, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x61, 0x67, 0x67, 0x41, 0x75, 0x74, 0x68, 0x22, 0x43, 0x0a, + 0x09, 0x42, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x75, + 0x62, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x75, 0x62, + 0x6b, 0x65, 0x79, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x32, 0x97, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x80, 0x01, 0x0a, 0x10, 0x41, + 0x64, 0x64, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x31, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x41, 0x64, 0x64, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x6f, 0x72, 0x1a, 0x39, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, + 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, + 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x34, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, + 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x75, + 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x3c, 0x2e, 0x62, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x0e, 0x53, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x62, 0x69, + 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x37, 0x2e, 0x62, + 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0x80, 0x02, 0x0a, + 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, 0x73, 0x6d, 0x61, + 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x62, + 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x6d, 0x61, 0x72, + 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, + 0x02, 0x03, 0x42, 0x53, 0x58, 0xaa, 0x02, 0x1c, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x2e, + 0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1c, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x53, + 0x6d, 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xe2, 0x02, 0x28, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x5c, 0x53, 0x6d, + 0x61, 0x72, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x1e, 0x42, 0x69, 0x74, 0x73, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_bitsong_smartaccount_v1beta1_tx_proto_rawDescOnce sync.Once + file_bitsong_smartaccount_v1beta1_tx_proto_rawDescData = file_bitsong_smartaccount_v1beta1_tx_proto_rawDesc +) + +func file_bitsong_smartaccount_v1beta1_tx_proto_rawDescGZIP() []byte { + file_bitsong_smartaccount_v1beta1_tx_proto_rawDescOnce.Do(func() { + file_bitsong_smartaccount_v1beta1_tx_proto_rawDescData = protoimpl.X.CompressGZIP(file_bitsong_smartaccount_v1beta1_tx_proto_rawDescData) + }) + return file_bitsong_smartaccount_v1beta1_tx_proto_rawDescData +} + +var file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_bitsong_smartaccount_v1beta1_tx_proto_goTypes = []interface{}{ + (*MsgAddAuthenticator)(nil), // 0: bitsong.smartaccount.v1beta1.MsgAddAuthenticator + (*MsgAddAuthenticatorResponse)(nil), // 1: bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse + (*MsgRemoveAuthenticator)(nil), // 2: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator + (*MsgRemoveAuthenticatorResponse)(nil), // 3: bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse + (*MsgSetActiveState)(nil), // 4: bitsong.smartaccount.v1beta1.MsgSetActiveState + (*MsgSetActiveStateResponse)(nil), // 5: bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse + (*AgAuthData)(nil), // 6: bitsong.smartaccount.v1beta1.AgAuthData + (*TxExtension)(nil), // 7: bitsong.smartaccount.v1beta1.TxExtension + (*BlsConfig)(nil), // 8: bitsong.smartaccount.v1beta1.BlsConfig +} +var file_bitsong_smartaccount_v1beta1_tx_proto_depIdxs = []int32{ + 6, // 0: bitsong.smartaccount.v1beta1.TxExtension.agg_auth:type_name -> bitsong.smartaccount.v1beta1.AgAuthData + 0, // 1: bitsong.smartaccount.v1beta1.Msg.AddAuthenticator:input_type -> bitsong.smartaccount.v1beta1.MsgAddAuthenticator + 2, // 2: bitsong.smartaccount.v1beta1.Msg.RemoveAuthenticator:input_type -> bitsong.smartaccount.v1beta1.MsgRemoveAuthenticator + 4, // 3: bitsong.smartaccount.v1beta1.Msg.SetActiveState:input_type -> bitsong.smartaccount.v1beta1.MsgSetActiveState + 1, // 4: bitsong.smartaccount.v1beta1.Msg.AddAuthenticator:output_type -> bitsong.smartaccount.v1beta1.MsgAddAuthenticatorResponse + 3, // 5: bitsong.smartaccount.v1beta1.Msg.RemoveAuthenticator:output_type -> bitsong.smartaccount.v1beta1.MsgRemoveAuthenticatorResponse + 5, // 6: bitsong.smartaccount.v1beta1.Msg.SetActiveState:output_type -> bitsong.smartaccount.v1beta1.MsgSetActiveStateResponse + 4, // [4:7] is the sub-list for method output_type + 1, // [1:4] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_bitsong_smartaccount_v1beta1_tx_proto_init() } +func file_bitsong_smartaccount_v1beta1_tx_proto_init() { + if File_bitsong_smartaccount_v1beta1_tx_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgAddAuthenticator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgAddAuthenticatorResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgRemoveAuthenticator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgRemoveAuthenticatorResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgSetActiveState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgSetActiveStateResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AgAuthData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TxExtension); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlsConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bitsong_smartaccount_v1beta1_tx_proto_rawDesc, + NumEnums: 0, + NumMessages: 9, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_bitsong_smartaccount_v1beta1_tx_proto_goTypes, + DependencyIndexes: file_bitsong_smartaccount_v1beta1_tx_proto_depIdxs, + MessageInfos: file_bitsong_smartaccount_v1beta1_tx_proto_msgTypes, + }.Build() + File_bitsong_smartaccount_v1beta1_tx_proto = out.File + file_bitsong_smartaccount_v1beta1_tx_proto_rawDesc = nil + file_bitsong_smartaccount_v1beta1_tx_proto_goTypes = nil + file_bitsong_smartaccount_v1beta1_tx_proto_depIdxs = nil +} diff --git a/api/bitsong/smartaccount/v1beta1/tx_grpc.pb.go b/api/bitsong/smartaccount/v1beta1/tx_grpc.pb.go new file mode 100644 index 00000000..f4439148 --- /dev/null +++ b/api/bitsong/smartaccount/v1beta1/tx_grpc.pb.go @@ -0,0 +1,205 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.5.1 +// - protoc (unknown) +// source: bitsong/smartaccount/v1beta1/tx.proto + +package smartaccountv1beta1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Msg_AddAuthenticator_FullMethodName = "/bitsong.smartaccount.v1beta1.Msg/AddAuthenticator" + Msg_RemoveAuthenticator_FullMethodName = "/bitsong.smartaccount.v1beta1.Msg/RemoveAuthenticator" + Msg_SetActiveState_FullMethodName = "/bitsong.smartaccount.v1beta1.Msg/SetActiveState" +) + +// MsgClient is the client API for Msg service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// Msg defines the Msg service. +type MsgClient interface { + AddAuthenticator(ctx context.Context, in *MsgAddAuthenticator, opts ...grpc.CallOption) (*MsgAddAuthenticatorResponse, error) + RemoveAuthenticator(ctx context.Context, in *MsgRemoveAuthenticator, opts ...grpc.CallOption) (*MsgRemoveAuthenticatorResponse, error) + // SetActiveState sets the active state of the authenticator. + // Primarily used for circuit breaking. + SetActiveState(ctx context.Context, in *MsgSetActiveState, opts ...grpc.CallOption) (*MsgSetActiveStateResponse, error) +} + +type msgClient struct { + cc grpc.ClientConnInterface +} + +func NewMsgClient(cc grpc.ClientConnInterface) MsgClient { + return &msgClient{cc} +} + +func (c *msgClient) AddAuthenticator(ctx context.Context, in *MsgAddAuthenticator, opts ...grpc.CallOption) (*MsgAddAuthenticatorResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(MsgAddAuthenticatorResponse) + err := c.cc.Invoke(ctx, Msg_AddAuthenticator_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) RemoveAuthenticator(ctx context.Context, in *MsgRemoveAuthenticator, opts ...grpc.CallOption) (*MsgRemoveAuthenticatorResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(MsgRemoveAuthenticatorResponse) + err := c.cc.Invoke(ctx, Msg_RemoveAuthenticator_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) SetActiveState(ctx context.Context, in *MsgSetActiveState, opts ...grpc.CallOption) (*MsgSetActiveStateResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(MsgSetActiveStateResponse) + err := c.cc.Invoke(ctx, Msg_SetActiveState_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// MsgServer is the server API for Msg service. +// All implementations must embed UnimplementedMsgServer +// for forward compatibility. +// +// Msg defines the Msg service. +type MsgServer interface { + AddAuthenticator(context.Context, *MsgAddAuthenticator) (*MsgAddAuthenticatorResponse, error) + RemoveAuthenticator(context.Context, *MsgRemoveAuthenticator) (*MsgRemoveAuthenticatorResponse, error) + // SetActiveState sets the active state of the authenticator. + // Primarily used for circuit breaking. + SetActiveState(context.Context, *MsgSetActiveState) (*MsgSetActiveStateResponse, error) + mustEmbedUnimplementedMsgServer() +} + +// UnimplementedMsgServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedMsgServer struct{} + +func (UnimplementedMsgServer) AddAuthenticator(context.Context, *MsgAddAuthenticator) (*MsgAddAuthenticatorResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddAuthenticator not implemented") +} +func (UnimplementedMsgServer) RemoveAuthenticator(context.Context, *MsgRemoveAuthenticator) (*MsgRemoveAuthenticatorResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveAuthenticator not implemented") +} +func (UnimplementedMsgServer) SetActiveState(context.Context, *MsgSetActiveState) (*MsgSetActiveStateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetActiveState not implemented") +} +func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {} +func (UnimplementedMsgServer) testEmbeddedByValue() {} + +// UnsafeMsgServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to MsgServer will +// result in compilation errors. +type UnsafeMsgServer interface { + mustEmbedUnimplementedMsgServer() +} + +func RegisterMsgServer(s grpc.ServiceRegistrar, srv MsgServer) { + // If the following call pancis, it indicates UnimplementedMsgServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&Msg_ServiceDesc, srv) +} + +func _Msg_AddAuthenticator_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgAddAuthenticator) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).AddAuthenticator(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_AddAuthenticator_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).AddAuthenticator(ctx, req.(*MsgAddAuthenticator)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_RemoveAuthenticator_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgRemoveAuthenticator) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).RemoveAuthenticator(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_RemoveAuthenticator_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).RemoveAuthenticator(ctx, req.(*MsgRemoveAuthenticator)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_SetActiveState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgSetActiveState) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).SetActiveState(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_SetActiveState_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).SetActiveState(ctx, req.(*MsgSetActiveState)) + } + return interceptor(ctx, in, info, handler) +} + +// Msg_ServiceDesc is the grpc.ServiceDesc for Msg service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Msg_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "bitsong.smartaccount.v1beta1.Msg", + HandlerType: (*MsgServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "AddAuthenticator", + Handler: _Msg_AddAuthenticator_Handler, + }, + { + MethodName: "RemoveAuthenticator", + Handler: _Msg_RemoveAuthenticator_Handler, + }, + { + MethodName: "SetActiveState", + Handler: _Msg_SetActiveState_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "bitsong/smartaccount/v1beta1/tx.proto", +} diff --git a/api/cosmos/crypto/bls12381/keys.pulsar.go b/api/cosmos/crypto/bls12381/keys.pulsar.go new file mode 100644 index 00000000..4c215993 --- /dev/null +++ b/api/cosmos/crypto/bls12381/keys.pulsar.go @@ -0,0 +1,1060 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package bls12381 + +import ( + _ "cosmossdk.io/api/amino" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_PubKey protoreflect.MessageDescriptor + fd_PubKey_key protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_crypto_bls12381_keys_proto_init() + md_PubKey = File_cosmos_crypto_bls12381_keys_proto.Messages().ByName("PubKey") + fd_PubKey_key = md_PubKey.Fields().ByName("key") +} + +var _ protoreflect.Message = (*fastReflection_PubKey)(nil) + +type fastReflection_PubKey PubKey + +func (x *PubKey) ProtoReflect() protoreflect.Message { + return (*fastReflection_PubKey)(x) +} + +func (x *PubKey) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_crypto_bls12381_keys_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_PubKey_messageType fastReflection_PubKey_messageType +var _ protoreflect.MessageType = fastReflection_PubKey_messageType{} + +type fastReflection_PubKey_messageType struct{} + +func (x fastReflection_PubKey_messageType) Zero() protoreflect.Message { + return (*fastReflection_PubKey)(nil) +} +func (x fastReflection_PubKey_messageType) New() protoreflect.Message { + return new(fastReflection_PubKey) +} +func (x fastReflection_PubKey_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_PubKey +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_PubKey) Descriptor() protoreflect.MessageDescriptor { + return md_PubKey +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_PubKey) Type() protoreflect.MessageType { + return _fastReflection_PubKey_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_PubKey) New() protoreflect.Message { + return new(fastReflection_PubKey) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_PubKey) Interface() protoreflect.ProtoMessage { + return (*PubKey)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_PubKey) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Key) != 0 { + value := protoreflect.ValueOfBytes(x.Key) + if !f(fd_PubKey_key, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_PubKey) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.crypto.bls12381.PubKey.key": + return len(x.Key) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.crypto.bls12381.PubKey")) + } + panic(fmt.Errorf("message cosmos.crypto.bls12381.PubKey does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_PubKey) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.crypto.bls12381.PubKey.key": + x.Key = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.crypto.bls12381.PubKey")) + } + panic(fmt.Errorf("message cosmos.crypto.bls12381.PubKey does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_PubKey) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.crypto.bls12381.PubKey.key": + value := x.Key + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.crypto.bls12381.PubKey")) + } + panic(fmt.Errorf("message cosmos.crypto.bls12381.PubKey does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_PubKey) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.crypto.bls12381.PubKey.key": + x.Key = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.crypto.bls12381.PubKey")) + } + panic(fmt.Errorf("message cosmos.crypto.bls12381.PubKey does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_PubKey) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.crypto.bls12381.PubKey.key": + panic(fmt.Errorf("field key of message cosmos.crypto.bls12381.PubKey is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.crypto.bls12381.PubKey")) + } + panic(fmt.Errorf("message cosmos.crypto.bls12381.PubKey does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_PubKey) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.crypto.bls12381.PubKey.key": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.crypto.bls12381.PubKey")) + } + panic(fmt.Errorf("message cosmos.crypto.bls12381.PubKey does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_PubKey) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.crypto.bls12381.PubKey", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_PubKey) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_PubKey) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_PubKey) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_PubKey) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*PubKey) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Key) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*PubKey) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Key) > 0 { + i -= len(x.Key) + copy(dAtA[i:], x.Key) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Key))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*PubKey) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: PubKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: PubKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Key = append(x.Key[:0], dAtA[iNdEx:postIndex]...) + if x.Key == nil { + x.Key = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_PrivKey protoreflect.MessageDescriptor + fd_PrivKey_key protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_crypto_bls12381_keys_proto_init() + md_PrivKey = File_cosmos_crypto_bls12381_keys_proto.Messages().ByName("PrivKey") + fd_PrivKey_key = md_PrivKey.Fields().ByName("key") +} + +var _ protoreflect.Message = (*fastReflection_PrivKey)(nil) + +type fastReflection_PrivKey PrivKey + +func (x *PrivKey) ProtoReflect() protoreflect.Message { + return (*fastReflection_PrivKey)(x) +} + +func (x *PrivKey) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_crypto_bls12381_keys_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_PrivKey_messageType fastReflection_PrivKey_messageType +var _ protoreflect.MessageType = fastReflection_PrivKey_messageType{} + +type fastReflection_PrivKey_messageType struct{} + +func (x fastReflection_PrivKey_messageType) Zero() protoreflect.Message { + return (*fastReflection_PrivKey)(nil) +} +func (x fastReflection_PrivKey_messageType) New() protoreflect.Message { + return new(fastReflection_PrivKey) +} +func (x fastReflection_PrivKey_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_PrivKey +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_PrivKey) Descriptor() protoreflect.MessageDescriptor { + return md_PrivKey +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_PrivKey) Type() protoreflect.MessageType { + return _fastReflection_PrivKey_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_PrivKey) New() protoreflect.Message { + return new(fastReflection_PrivKey) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_PrivKey) Interface() protoreflect.ProtoMessage { + return (*PrivKey)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_PrivKey) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Key) != 0 { + value := protoreflect.ValueOfBytes(x.Key) + if !f(fd_PrivKey_key, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_PrivKey) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.crypto.bls12381.PrivKey.key": + return len(x.Key) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.crypto.bls12381.PrivKey")) + } + panic(fmt.Errorf("message cosmos.crypto.bls12381.PrivKey does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_PrivKey) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.crypto.bls12381.PrivKey.key": + x.Key = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.crypto.bls12381.PrivKey")) + } + panic(fmt.Errorf("message cosmos.crypto.bls12381.PrivKey does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_PrivKey) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.crypto.bls12381.PrivKey.key": + value := x.Key + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.crypto.bls12381.PrivKey")) + } + panic(fmt.Errorf("message cosmos.crypto.bls12381.PrivKey does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_PrivKey) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.crypto.bls12381.PrivKey.key": + x.Key = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.crypto.bls12381.PrivKey")) + } + panic(fmt.Errorf("message cosmos.crypto.bls12381.PrivKey does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_PrivKey) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.crypto.bls12381.PrivKey.key": + panic(fmt.Errorf("field key of message cosmos.crypto.bls12381.PrivKey is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.crypto.bls12381.PrivKey")) + } + panic(fmt.Errorf("message cosmos.crypto.bls12381.PrivKey does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_PrivKey) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.crypto.bls12381.PrivKey.key": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.crypto.bls12381.PrivKey")) + } + panic(fmt.Errorf("message cosmos.crypto.bls12381.PrivKey does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_PrivKey) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.crypto.bls12381.PrivKey", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_PrivKey) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_PrivKey) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_PrivKey) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_PrivKey) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*PrivKey) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Key) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*PrivKey) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Key) > 0 { + i -= len(x.Key) + copy(dAtA[i:], x.Key) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Key))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*PrivKey) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: PrivKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: PrivKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Key = append(x.Key[:0], dAtA[iNdEx:postIndex]...) + if x.Key == nil { + x.Key = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: cosmos/crypto/bls12381/keys.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// PubKey is an bls12381 public key for aggregated +// It's needed for Any serialization and SDK compatibility. +// It must not be used in a non Tendermint key context because it doesn't implement +// ADR-28. Nevertheless, you will like to use bls12381 in app user level +// then you must create a new proto message and follow ADR-28 for Address construction. +type PubKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *PubKey) Reset() { + *x = PubKey{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_crypto_bls12381_keys_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PubKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PubKey) ProtoMessage() {} + +// Deprecated: Use PubKey.ProtoReflect.Descriptor instead. +func (*PubKey) Descriptor() ([]byte, []int) { + return file_cosmos_crypto_bls12381_keys_proto_rawDescGZIP(), []int{0} +} + +func (x *PubKey) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +// PrivKey defines a bls12381 private key. +// NOTE: bls12381 keys must not be used in SDK apps except in a tendermint validator context. +type PrivKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *PrivKey) Reset() { + *x = PrivKey{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_crypto_bls12381_keys_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PrivKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrivKey) ProtoMessage() {} + +// Deprecated: Use PrivKey.ProtoReflect.Descriptor instead. +func (*PrivKey) Descriptor() ([]byte, []int) { + return file_cosmos_crypto_bls12381_keys_proto_rawDescGZIP(), []int{1} +} + +func (x *PrivKey) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +var File_cosmos_crypto_bls12381_keys_proto protoreflect.FileDescriptor + +var file_cosmos_crypto_bls12381_keys_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, + 0x62, 0x6c, 0x73, 0x31, 0x32, 0x33, 0x38, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x6f, 0x2e, 0x62, 0x6c, 0x73, 0x31, 0x32, 0x33, 0x38, 0x31, 0x1a, 0x11, 0x61, 0x6d, 0x69, + 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, + 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x50, 0x0a, 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x3a, 0x34, 0x98, 0xa0, 0x1f, 0x00, 0xe8, 0xa1, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x19, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, + 0x42, 0x6c, 0x73, 0x31, 0x32, 0x33, 0x38, 0x31, 0x92, 0xe7, 0xb0, 0x2a, 0x09, 0x6b, 0x65, 0x79, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x4a, 0x0a, 0x07, 0x50, 0x72, 0x69, 0x76, 0x4b, 0x65, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x3a, 0x2d, 0x8a, 0xe7, 0xb0, 0x2a, 0x1a, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x50, 0x72, 0x69, 0x76, 0x4b, 0x65, 0x79, 0x42, 0x6c, 0x73, 0x31, + 0x32, 0x33, 0x38, 0x31, 0x92, 0xe7, 0xb0, 0x2a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x42, 0xca, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x62, 0x6c, 0x73, 0x31, 0x32, 0x33, 0x38, + 0x31, 0x42, 0x09, 0x4b, 0x65, 0x79, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x27, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x62, + 0x6c, 0x73, 0x31, 0x32, 0x33, 0x38, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x42, 0xaa, 0x02, 0x16, + 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x42, 0x6c, + 0x73, 0x31, 0x32, 0x33, 0x38, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, + 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5c, 0x42, 0x6c, 0x73, 0x31, 0x32, 0x33, 0x38, 0x31, 0xe2, + 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5c, + 0x42, 0x6c, 0x73, 0x31, 0x32, 0x33, 0x38, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x43, + 0x72, 0x79, 0x70, 0x74, 0x6f, 0x3a, 0x3a, 0x42, 0x6c, 0x73, 0x31, 0x32, 0x33, 0x38, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_cosmos_crypto_bls12381_keys_proto_rawDescOnce sync.Once + file_cosmos_crypto_bls12381_keys_proto_rawDescData = file_cosmos_crypto_bls12381_keys_proto_rawDesc +) + +func file_cosmos_crypto_bls12381_keys_proto_rawDescGZIP() []byte { + file_cosmos_crypto_bls12381_keys_proto_rawDescOnce.Do(func() { + file_cosmos_crypto_bls12381_keys_proto_rawDescData = protoimpl.X.CompressGZIP(file_cosmos_crypto_bls12381_keys_proto_rawDescData) + }) + return file_cosmos_crypto_bls12381_keys_proto_rawDescData +} + +var file_cosmos_crypto_bls12381_keys_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_cosmos_crypto_bls12381_keys_proto_goTypes = []interface{}{ + (*PubKey)(nil), // 0: cosmos.crypto.bls12381.PubKey + (*PrivKey)(nil), // 1: cosmos.crypto.bls12381.PrivKey +} +var file_cosmos_crypto_bls12381_keys_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_cosmos_crypto_bls12381_keys_proto_init() } +func file_cosmos_crypto_bls12381_keys_proto_init() { + if File_cosmos_crypto_bls12381_keys_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cosmos_crypto_bls12381_keys_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PubKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_crypto_bls12381_keys_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PrivKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cosmos_crypto_bls12381_keys_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cosmos_crypto_bls12381_keys_proto_goTypes, + DependencyIndexes: file_cosmos_crypto_bls12381_keys_proto_depIdxs, + MessageInfos: file_cosmos_crypto_bls12381_keys_proto_msgTypes, + }.Build() + File_cosmos_crypto_bls12381_keys_proto = out.File + file_cosmos_crypto_bls12381_keys_proto_rawDesc = nil + file_cosmos_crypto_bls12381_keys_proto_goTypes = nil + file_cosmos_crypto_bls12381_keys_proto_depIdxs = nil +} diff --git a/app/ante_handler.go b/app/ante_handler.go index b93b92a9..1182a932 100644 --- a/app/ante_handler.go +++ b/app/ante_handler.go @@ -11,10 +11,9 @@ import ( sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/auth/ante" "github.com/cosmos/cosmos-sdk/x/authz" - govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - ibcante "github.com/cosmos/ibc-go/v8/modules/core/ante" - ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper" + ibcante "github.com/cosmos/ibc-go/v10/modules/core/ante" + ibckeeper "github.com/cosmos/ibc-go/v10/modules/core/keeper" smartaccountante "github.com/bitsongofficial/go-bitsong/x/smart-account/ante" smartaccountkeeper "github.com/bitsongofficial/go-bitsong/x/smart-account/keeper" @@ -26,10 +25,9 @@ type HandlerOptions struct { ante.HandlerOptions SmartAccount *smartaccountkeeper.Keeper - GovKeeper govkeeper.Keeper IBCKeeper *ibckeeper.Keeper TxCounterStoreKey corestoretypes.KVStoreService - WasmConfig wasmTypes.WasmConfig + WasmConfig wasmTypes.NodeConfig Cdc codec.Codec TxEncoder sdk.TxEncoder diff --git a/app/app.go b/app/app.go index 65d5c7c6..616fe945 100644 --- a/app/app.go +++ b/app/app.go @@ -3,6 +3,7 @@ package app import ( "fmt" "io" + "io/fs" "net/http" "os" "path/filepath" @@ -10,35 +11,63 @@ import ( "cosmossdk.io/log" "cosmossdk.io/math" - "github.com/gorilla/mux" "github.com/prometheus/client_golang/prometheus" - "github.com/rakyll/statik/fs" "github.com/spf13/cast" errorsmod "cosmossdk.io/errors" + smartaccount "github.com/bitsongofficial/go-bitsong/x/smart-account" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + packetforward "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v10/packetforward" + packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v10/packetforward/types" + ibc_hooks "github.com/cosmos/ibc-apps/modules/ibc-hooks/v10" + ibcwlc "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10" + ibcwlckeeper "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10/keeper" + ibcwlctypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10/types" + ibctm "github.com/cosmos/ibc-go/v10/modules/light-clients/07-tendermint" autocliv1 "cosmossdk.io/api/cosmos/autocli/v1" "github.com/cosmos/cosmos-sdk/baseapp" nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node" "github.com/cosmos/cosmos-sdk/codec" + addresscodec "github.com/cosmos/cosmos-sdk/codec/address" "github.com/cosmos/cosmos-sdk/runtime" runtimeservices "github.com/cosmos/cosmos-sdk/runtime/services" "github.com/cosmos/cosmos-sdk/types/address" "github.com/cosmos/cosmos-sdk/types/module" "github.com/cosmos/cosmos-sdk/version" + "github.com/cosmos/cosmos-sdk/x/auth" "github.com/cosmos/cosmos-sdk/x/auth/ante" authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" + "github.com/cosmos/cosmos-sdk/x/auth/vesting" + authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" + "github.com/cosmos/cosmos-sdk/x/bank" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/cosmos/cosmos-sdk/x/consensus" "github.com/cosmos/cosmos-sdk/x/crisis" + crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" + distr "github.com/cosmos/cosmos-sdk/x/distribution" + "github.com/cosmos/cosmos-sdk/x/genutil" + "github.com/cosmos/cosmos-sdk/x/gov" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + "github.com/cosmos/cosmos-sdk/x/mint" + minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" + "github.com/cosmos/cosmos-sdk/x/params" + "github.com/cosmos/cosmos-sdk/x/protocolpool" + "github.com/cosmos/cosmos-sdk/x/slashing" + "github.com/cosmos/cosmos-sdk/x/staking" - // testnetserver "github.com/bitsongofficial/go-bitsong/server" "github.com/cosmos/cosmos-sdk/server/api" "github.com/cosmos/cosmos-sdk/server/config" servertypes "github.com/cosmos/cosmos-sdk/server/types" storetypes "cosmossdk.io/store/types" + "cosmossdk.io/x/evidence" + feegrantmodule "cosmossdk.io/x/feegrant/module" + "cosmossdk.io/x/upgrade" upgradetypes "cosmossdk.io/x/upgrade/types" + "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/bech32" sigtypes "github.com/cosmos/cosmos-sdk/types/tx/signing" txmodule "github.com/cosmos/cosmos-sdk/x/auth/tx/config" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -46,11 +75,8 @@ import ( paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - wasmlctypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" - - "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" - "github.com/cosmos/cosmos-sdk/types/bech32" + "github.com/cosmos/ibc-go/v10/modules/apps/transfer" + ibc "github.com/cosmos/ibc-go/v10/modules/core" reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1" dbm "github.com/cosmos/cosmos-db" @@ -68,16 +94,17 @@ import ( "github.com/CosmWasm/wasmd/x/wasm" wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" - ibcwasmkeeper "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/keeper" "github.com/bitsongofficial/go-bitsong/app/keepers" "github.com/bitsongofficial/go-bitsong/app/upgrades" + "github.com/bitsongofficial/go-bitsong/docs" + "github.com/bitsongofficial/go-bitsong/x/fantoken" - v021 "github.com/bitsongofficial/go-bitsong/app/upgrades/v021" - v022 "github.com/bitsongofficial/go-bitsong/app/upgrades/v022" - v023 "github.com/bitsongofficial/go-bitsong/app/upgrades/v023" + v024 "github.com/bitsongofficial/go-bitsong/app/upgrades/v024" // unnamed import of statik for swagger UI support // _ "github.com/bitsongofficial/go-bitsong/swagger/statik" + // performance profiling (pprof) + // _ "net/http/pprof" ) const appName = "BitsongApp" @@ -97,7 +124,8 @@ var ( Upgrades = []upgrades.Upgrade{ // v010.Upgrade, v011.Upgrade, v013.Upgrade, v014.Upgrade, // v015.Upgrade, v016.Upgrade, v018.Upgrade, v020.Upgrade, - v021.Upgrade, v022.Upgrade, v023.Upgrade, + // v021.Upgrade, v022.Upgrade, v023.Upgrade, + v024.Upgrade, } ) @@ -241,24 +269,23 @@ func NewBitsongApp( txConfig: txConfig, interfaceRegistry: interfaceRegistry, tkeys: storetypes.NewTransientStoreKeys(paramstypes.TStoreKey), - memKeys: storetypes.NewMemoryStoreKeys(capabilitytypes.MemStoreKey), } app.homePath = homePath wasmDir := filepath.Join(homePath, "wasm") - wasmConfig, err := wasm.ReadWasmConfig(appOpts) + wasmConfig, err := wasm.ReadNodeConfig(appOpts) if err != nil { panic("error while reading wasm config: " + err.Error()) } - ibcWasmConfig := wasmlctypes.WasmConfig{ + ibcWasmConfig := ibcwlctypes.WasmConfig{ DataDir: filepath.Join(homePath, "ibc_08-wasm"), - SupportedCapabilities: []string{"iterator", "stargate", "abort"}, + SupportedCapabilities: keepers.ExtendedBuiltInCapabilities(), ContractDebugMode: false, } // Setup keepers - app.AppKeepers = keepers.NewAppKeepers( + appKeepers := keepers.NewAppKeepers( appCodec, encodingConfig, bApp, @@ -270,6 +297,16 @@ func NewBitsongApp( wasmConfig, ibcWasmConfig, ) + // add all light clients to app keepers + clientKeeper := appKeepers.IBCKeeper.ClientKeeper + storeProvider := appKeepers.IBCKeeper.ClientKeeper.GetStoreProvider() + tmLightClientModule := ibctm.NewLightClientModule(appCodec, storeProvider) + ibcWasmLightClientModule := ibcwlc.NewLightClientModule(*appKeepers.IBCWasmClientKeeper, storeProvider) + clientKeeper.AddRoute(ibctm.ModuleName, &tmLightClientModule) + clientKeeper.AddRoute(ibcwlctypes.ModuleName, ibcWasmLightClientModule) + + app.AppKeepers = appKeepers + app.keys = app.GetKVStoreKey() // cosmos-sdk@v0.50: textual signature for ledger devices @@ -300,7 +337,35 @@ func NewBitsongApp( skipGenesisInvariants := cast.ToBool(appOpts.Get(crisis.FlagSkipGenesisInvariants)) // NOTE: Any module instantiated in the module manager that is later modified // must be passed by reference here. - app.mm = module.NewManager(appModules(app, encodingConfig, skipGenesisInvariants)...) + app.mm = module.NewManager(genutil.NewAppModule( + app.AccountKeeper, app.StakingKeeper, app.BaseApp, + encodingConfig.TxConfig, + ), + auth.NewAppModule(appCodec, *app.AccountKeeper, nil, app.GetSubspace(authtypes.ModuleName)), + vesting.NewAppModule(*app.AccountKeeper, app.BankKeeper), + bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper, app.GetSubspace(banktypes.ModuleName)), + gov.NewAppModule(appCodec, app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)), + mint.NewAppModule(appCodec, *app.MintKeeper, app.AccountKeeper, nil, app.GetSubspace(minttypes.ModuleName)), + slashing.NewAppModule(appCodec, *app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName), app.interfaceRegistry), + distr.NewAppModule(appCodec, *app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)), + staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)), + upgrade.NewAppModule(app.UpgradeKeeper, addresscodec.NewBech32Codec(Bech32PrefixAccAddr)), + wasm.NewAppModule(appCodec, app.WasmKeeper, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.MsgServiceRouter(), app.GetSubspace(wasmtypes.ModuleName)), + evidence.NewAppModule(*app.EvidenceKeeper), + feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, *app.FeeGrantKeeper, app.interfaceRegistry), + authzmodule.NewAppModule(appCodec, *app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), + fantoken.NewAppModule(appCodec, app.FanTokenKeeper, app.BankKeeper), + ibc.NewAppModule(app.IBCKeeper), + ibcwlc.NewAppModule(*app.IBCWasmClientKeeper), + ibctm.NewAppModule(tmLightClientModule), + params.NewAppModule(app.ParamsKeeper), + consensus.NewAppModule(appCodec, *app.ConsensusParamsKeeper), + packetforward.NewAppModule(app.PacketForwardKeeper, app.GetSubspace(packetforwardtypes.ModuleName)), + transfer.NewAppModule(*app.TransferKeeper), + ibc_hooks.NewAppModule(*app.AccountKeeper), + protocolpool.NewAppModule(*app.ProtocolPoolKeeper, app.AccountKeeper, app.BankKeeper), + smartaccount.NewAppModule(appCodec, *app.SmartAccountKeeper), + crisis.NewAppModule(app.CrisisKeeper, skipGenesisInvariants, app.GetSubspace(crisistypes.ModuleName))) // NOTE: upgrade module is prioritized in preblock app.mm.SetOrderPreBlockers( @@ -341,7 +406,6 @@ func NewBitsongApp( // initialize stores app.MountKVStores(app.keys) app.MountTransientStores(app.GetTransientStoreKey()) - app.MountMemoryStores(app.GetMemoryStoreKey()) anteHandler, err := NewAnteHandler( HandlerOptions{ @@ -353,7 +417,6 @@ func NewBitsongApp( SigGasConsumer: ante.DefaultSigVerificationGasConsumer, }, SmartAccount: app.SmartAccountKeeper, - GovKeeper: app.GovKeeper, IBCKeeper: app.IBCKeeper, TxCounterStoreKey: runtime.NewKVStoreService(app.GetKey(wasmtypes.StoreKey)), WasmConfig: wasmConfig, @@ -377,14 +440,14 @@ func NewBitsongApp( if manager := app.SnapshotManager(); manager != nil { err = manager.RegisterExtensions( - wasmkeeper.NewWasmSnapshotter(app.CommitMultiStore(), &app.WasmKeeper), + wasmkeeper.NewWasmSnapshotter(app.CommitMultiStore(), app.WasmKeeper), ) if err != nil { panic(fmt.Errorf("failed to register snapshot extension: %s", err)) } // takes care of persisting the external state from wasm code when snapshot is created err = manager.RegisterExtensions( - ibcwasmkeeper.NewWasmSnapshotter(app.CommitMultiStore(), app.IBCWasmClientKeeper), + ibcwlckeeper.NewWasmSnapshotter(app.CommitMultiStore(), app.IBCWasmClientKeeper), ) if err != nil { panic(fmt.Errorf("failed to register snapshot extension: %s", err)) @@ -401,7 +464,7 @@ func NewBitsongApp( tmos.Exit(fmt.Sprintf("failed initialize pinned codes %s", err)) } - if err := ibcwasmkeeper.InitializePinnedCodes(ctx); err != nil { + if err := app.IBCWasmClientKeeper.InitializePinnedCodes(ctx); err != nil { tmos.Exit(fmt.Sprintf("failed initialize pinned codes %s", err)) } // Initialize and seal the capability keeper so all persistent capabilities @@ -411,7 +474,6 @@ func NewBitsongApp( // that in-memory capabilities get regenerated on app restart. // Note that since this reads from the store, we can only perform it when // `loadLatest` is set to true. - app.CapabilityKeeper.Seal() } app.sm.RegisterStoreDecoders() @@ -564,7 +626,7 @@ func (app *BitsongApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.AP // register swagger API from root so that other applications can override easily if apiConfig.Swagger { - // RegisterSwaggerAPI(clientCtx, apiSvr.Router) + RegisterSwaggerAPI(clientCtx, apiSvr) } } @@ -623,21 +685,29 @@ func (app *BitsongApp) setupUpgradeHandlers(cfg module.Configurator) { cfg, app.BaseApp, &app.AppKeepers, + app.homePath, ), ) } } // RegisterSwaggerAPI registers swagger route with API Server -func RegisterSwaggerAPI(_ client.Context, rtr *mux.Router) { - statikFS, err := fs.New() +func RegisterSwaggerAPI(_ client.Context, apiSvr *api.Server) error { + staticSubDir, err := fs.Sub(docs.Docs, "static") if err != nil { - panic(err) + return err } - staticServer := http.FileServer(statikFS) - rtr.PathPrefix("/static/").Handler(http.StripPrefix("/static/", staticServer)) - rtr.PathPrefix("/swagger/").Handler(http.StripPrefix("/swagger/", staticServer)) + staticServer := http.FileServer(http.FS(staticSubDir)) + + // Handle /swag without trailing slash - redirect to /swag/ + apiSvr.Router.HandleFunc("/swag", func(w http.ResponseWriter, r *http.Request) { + http.Redirect(w, r, "/swag/", http.StatusMovedPermanently) + }) + + apiSvr.Router.PathPrefix("/swag/").Handler(http.StripPrefix("/swag/", staticServer)) + + return nil } // we cache the reflectionService to save us time within tests. diff --git a/app/export_custom.go b/app/export_custom.go deleted file mode 100644 index ebf52f9d..00000000 --- a/app/export_custom.go +++ /dev/null @@ -1,250 +0,0 @@ -package app - -// to run: bitsongd custom-export --output-document v0.21.5-export.json -// defaults to for zero height -import ( - "encoding/json" - "fmt" - "log" - - storetypes "cosmossdk.io/store/types" - v022 "github.com/bitsongofficial/go-bitsong/app/upgrades/v022" - servertypes "github.com/cosmos/cosmos-sdk/server/types" - sdk "github.com/cosmos/cosmos-sdk/types" - - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - "github.com/cosmos/cosmos-sdk/x/staking" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" -) - -// - validator slash event: -// - historical reference: -// -// x/slashing: -// - validator signing info: -// - historical reference: -func (app *BitsongApp) CustomExportAppStateAndValidators( - - forZeroHeight bool, jailAllowedAddrs []string, - -) (servertypes.ExportedApp, error) { - // as if they could withdraw from the start of the next block - ctx := app.NewContext(true) - - // We export at last height + 1, because that's the height at which - // Tendermint will start InitChain. - height := app.LastBlockHeight() + 1 - if forZeroHeight { - height = 0 - app.customTestUpgradeHandlerLogicViaExport(ctx, jailAllowedAddrs) - } - - genState, _ := app.mm.ExportGenesis(ctx, app.appCodec) - appState, err := json.MarshalIndent(genState, "", " ") - if err != nil { - return servertypes.ExportedApp{}, err - } - - validators, err := staking.WriteValidators(ctx, app.StakingKeeper) - if err != nil { - return servertypes.ExportedApp{}, err - } - return servertypes.ExportedApp{ - AppState: appState, - Validators: validators, - Height: height, - ConsensusParams: app.BaseApp.GetConsensusParams(ctx), - }, nil -} - -// prepare for fresh start at zero height. prints logs for debugging into json file. -func (app *BitsongApp) customTestUpgradeHandlerLogicViaExport(ctx sdk.Context, jailAllowedAddrs []string) { - applyAllowedAddrs := false - - // check if there is a allowed address list - if len(jailAllowedAddrs) > 0 { - applyAllowedAddrs = true - } - - allowedAddrsMap := make(map[string]bool) - for _, addr := range jailAllowedAddrs { - _, err := sdk.ValAddressFromBech32(addr) - if err != nil { - log.Fatal(err) - } - allowedAddrsMap[addr] = true - - } - // debug upgradeHandler - err := v022.CustomV022PatchLogic(ctx, &app.AppKeepers, true) - if err != nil { - panic(err) - } - - // simapp export for 0 height state logic: - // withdraw all validator commission - err = app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) { - valBz, err := app.StakingKeeper.ValidatorAddressCodec().StringToBytes(val.GetOperator()) - if err != nil { - panic(err) - } - _, _ = app.DistrKeeper.WithdrawValidatorCommission(ctx, valBz) - return false - }) - if err != nil { - panic(err) - } - - // /* Just to be safe, assert the invariants on current state. */ - app.CrisisKeeper.AssertInvariants(ctx) - - app.StakingKeeper.IterateAllDelegations(ctx, func(del stakingtypes.Delegation) (stop bool) { - valAddr, err := sdk.ValAddressFromBech32(del.ValidatorAddress) - if err != nil { - panic(err) - } - // delAddr := sdk.AccAddress(del.DelegatorAddress) - val, err := app.StakingKeeper.GetValidator(ctx, valAddr) - if err != nil { - panic(err) - } - endingPeriod, err := app.DistrKeeper.IncrementValidatorPeriod(ctx, val) - if err != nil { - panic(err) - } - _, err = app.DistrKeeper.CalculateDelegationRewards(ctx, val, del, endingPeriod) - if err != nil { - panic(err) - } - - return false - - }) - - // withdraw all delegator rewards - dels, err := app.StakingKeeper.GetAllDelegations(ctx) - if err != nil { - panic(err) - } - - // clear validator slash events - app.DistrKeeper.DeleteAllValidatorSlashEvents(ctx) - - // clear validator historical rewards - app.DistrKeeper.DeleteAllValidatorHistoricalRewards(ctx) - - // reinitialize all validators - err = app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) { - valBz, err := app.StakingKeeper.ValidatorAddressCodec().StringToBytes(val.GetOperator()) - if err != nil { - panic(err) - } - // donate any unwithdrawn outstanding reward fraction tokens to the community pool - scraps, err := app.DistrKeeper.GetValidatorOutstandingRewardsCoins(ctx, valBz) - if err != nil { - panic(err) - } - feePool, err := app.DistrKeeper.FeePool.Get(ctx) - if err != nil { - panic(err) - } - feePool.CommunityPool = feePool.CommunityPool.Add(scraps...) - if err := app.DistrKeeper.FeePool.Set(ctx, feePool); err != nil { - panic(err) - } - - if err := app.DistrKeeper.Hooks().AfterValidatorCreated(ctx, valBz); err != nil { - panic(err) - } - return false - }) - if err != nil { - panic(err) - } - - // reinitialize all delegations - for _, del := range dels { - valAddr, err := sdk.ValAddressFromBech32(del.ValidatorAddress) - if err != nil { - panic(err) - } - delAddr := sdk.MustAccAddressFromBech32(del.DelegatorAddress) - - if err := app.DistrKeeper.Hooks().BeforeDelegationCreated(ctx, delAddr, valAddr); err != nil { - // never called as BeforeDelegationCreated always returns nil - panic(fmt.Errorf("error while incrementing period: %w", err)) - } - - if err := app.DistrKeeper.Hooks().AfterDelegationModified(ctx, delAddr, valAddr); err != nil { - // never called as AfterDelegationModified always returns nil - panic(fmt.Errorf("error while creating a new delegation period record: %w", err)) - } - } - // iterate through redelegations, reset creation height - app.StakingKeeper.IterateRedelegations(ctx, func(_ int64, red stakingtypes.Redelegation) (stop bool) { - for i := range red.Entries { - red.Entries[i].CreationHeight = 0 - } - err = app.StakingKeeper.SetRedelegation(ctx, red) - if err != nil { - panic(err) - } - return false - }) - // iterate through unbonding delegations, reset creation height - app.StakingKeeper.IterateUnbondingDelegations(ctx, func(_ int64, ubd stakingtypes.UnbondingDelegation) (stop bool) { - for i := range ubd.Entries { - ubd.Entries[i].CreationHeight = 0 - } - err = app.StakingKeeper.SetUnbondingDelegation(ctx, ubd) - if err != nil { - panic(err) - } - return false - }) - - // Iterate through validators by power descending, reset bond heights, and - // update bond intra-tx counters. - store := ctx.KVStore(app.GetKey(stakingtypes.StoreKey)) - iter := storetypes.KVStoreReversePrefixIterator(store, stakingtypes.ValidatorsKey) - counter := int16(0) - - for ; iter.Valid(); iter.Next() { - addr := sdk.ValAddress(stakingtypes.AddressFromValidatorsKey(iter.Key())) - validator, err := app.StakingKeeper.GetValidator(ctx, addr) - if err != nil { - panic("expected validator, not found") - } - - validator.UnbondingHeight = 0 - if applyAllowedAddrs && !allowedAddrsMap[addr.String()] { - validator.Jailed = true - } - - app.StakingKeeper.SetValidator(ctx, validator) - counter++ - } - - if err := iter.Close(); err != nil { - app.Logger().Error("error while closing the key-value store reverse prefix iterator: ", err) - return - } - - _, err = app.StakingKeeper.ApplyAndReturnValidatorSetUpdates(ctx) - if err != nil { - log.Fatal(err) - } - - /* Handle slashing state. */ - - // reset start height on signing infos - app.SlashingKeeper.IterateValidatorSigningInfos( - ctx, - func(addr sdk.ConsAddress, info slashingtypes.ValidatorSigningInfo) (stop bool) { - info.StartHeight = 0 - app.SlashingKeeper.SetValidatorSigningInfo(ctx, addr, info) - return false - }, - ) - -} diff --git a/app/helpers/contracts.go b/app/helpers/contracts.go new file mode 100644 index 00000000..4dfbe895 --- /dev/null +++ b/app/helpers/contracts.go @@ -0,0 +1,39 @@ +package helpers + +import ( + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + + storetypes "cosmossdk.io/store/types" + + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// Execute contract, recover from panic +func ExecuteContract(k wasmtypes.ContractOpsKeeper, childCtx sdk.Context, contractAddr sdk.AccAddress, msgBz []byte, err *error) { + // Recover from panic, return error + defer func() { + if recoveryError := recover(); recoveryError != nil { + // Determine error associated with panic + if isOutofGas, msg := IsOutOfGasError(recoveryError); isOutofGas { + *err = ErrOutOfGas.Wrapf("%s", msg) + } else { + *err = ErrContractExecutionPanic.Wrapf("%s", recoveryError) + } + } + }() + + // Execute contract with sudo + _, *err = k.Sudo(childCtx, contractAddr, msgBz) +} + +// Check if error is out of gas error +func IsOutOfGasError(err any) (bool, string) { + switch e := err.(type) { + case storetypes.ErrorOutOfGas: + return true, e.Descriptor + case storetypes.ErrorGasOverflow: + return true, e.Descriptor + default: + return false, "" + } +} diff --git a/x/cadence/types/keys.go b/app/helpers/global_errors.go similarity index 85% rename from x/cadence/types/keys.go rename to app/helpers/global_errors.go index 019bb06a..995d234b 100644 --- a/x/cadence/types/keys.go +++ b/app/helpers/global_errors.go @@ -1,20 +1,9 @@ -package types +package helpers import ( errorsmod "cosmossdk.io/errors" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" -) - -var ParamsKey = []byte{0x00} - -const ( - ModuleName = "cade" - RouterKey = ModuleName - - StoreKey = ModuleName - - QuerierRoute = ModuleName + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) const codespace = "bitsong-global" diff --git a/app/keepers/acceptedQueries.go b/app/keepers/acceptedQueries.go new file mode 100644 index 00000000..08f87d21 --- /dev/null +++ b/app/keepers/acceptedQueries.go @@ -0,0 +1,63 @@ +package keepers + +import ( + "github.com/cosmos/gogoproto/proto" + icacontrollertypes "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/controller/types" + ibctransfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types" + ibcclienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" + ibcconnectiontypes "github.com/cosmos/ibc-go/v10/modules/core/03-connection/types" + ibcchanneltypes "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types" + + fantokentypes "github.com/bitsongofficial/go-bitsong/x/fantoken/types" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" +) + +func AcceptedQueries() map[string]func() proto.Message { + return map[string]func() proto.Message{ + // ibc + "/ibc.core.client.v1.Query/ClientState": func() proto.Message { return &ibcclienttypes.QueryClientStateResponse{} }, + "/ibc.core.client.v1.Query/ConsensusState": func() proto.Message { return &ibcclienttypes.QueryConsensusStateResponse{} }, + "/ibc.core.connection.v1.Query/Connection": func() proto.Message { return &ibcconnectiontypes.QueryConnectionResponse{} }, + "/ibc.core.channel.v1.Query/ChannelClientState": func() proto.Message { return &ibcchanneltypes.QueryChannelClientStateResponse{} }, + + // fantoken + "/bitsong.fantoken.v1beta1.Query/Params": func() proto.Message { return &fantokentypes.QueryParamsResponse{} }, + "/bitsong.fantoken.v1beta1.Query/FanToken": func() proto.Message { return &fantokentypes.QueryFanTokenResponse{} }, + "/bitsong.fantoken.v1beta1.Query/FanTokens": func() proto.Message { return &fantokentypes.QueryFanTokensResponse{} }, + + // interchain accounts + "/ibc.applications.interchain_accounts.controller.v1.Query/InterchainAccount": func() proto.Message { return &icacontrollertypes.QueryInterchainAccountResponse{} }, + + // transfer + "/ibc.applications.transfer.v1.Query/Denom": func() proto.Message { return &ibctransfertypes.QueryDenomResponse{} }, + "/ibc.applications.transfer.v1.Query/EscrowAddress": func() proto.Message { return &ibctransfertypes.QueryEscrowAddressResponse{} }, + + // auth + "/cosmos.auth.v1beta1.Query/Account": func() proto.Message { return &authtypes.QueryAccountResponse{} }, + "/cosmos.auth.v1beta1.Query/Params": func() proto.Message { return &authtypes.QueryParamsResponse{} }, + + // bank + "/cosmos.bank.v1beta1.Query/Balance": func() proto.Message { return &banktypes.QueryBalanceResponse{} }, + "/cosmos.bank.v1beta1.Query/DenomMetadata": func() proto.Message { return &banktypes.QueryDenomsMetadataResponse{} }, + "/cosmos.bank.v1beta1.Query/Params": func() proto.Message { return &banktypes.QueryParamsResponse{} }, + "/cosmos.bank.v1beta1.Query/SupplyOf": func() proto.Message { return &banktypes.QuerySupplyOfResponse{} }, + + // governance + "/cosmos.gov.v1beta1.Query/Vote": func() proto.Message { return &govv1.QueryVoteResponse{} }, + + // distribution + "/cosmos.distribution.v1beta1.Query/DelegationRewards": func() proto.Message { return &distrtypes.QueryDelegationRewardsResponse{} }, + + // staking + "/cosmos.staking.v1beta1.Query/Delegation": func() proto.Message { return &stakingtypes.QueryDelegationResponse{} }, + "/cosmos.staking.v1beta1.Query/Redelegations": func() proto.Message { return &stakingtypes.QueryRedelegationsResponse{} }, + "/cosmos.staking.v1beta1.Query/UnbondingDelegation": func() proto.Message { return &stakingtypes.QueryUnbondingDelegationResponse{} }, + "/cosmos.staking.v1beta1.Query/Validator": func() proto.Message { return &stakingtypes.QueryValidatorResponse{} }, + "/cosmos.staking.v1beta1.Query/Params": func() proto.Message { return &stakingtypes.QueryParamsResponse{} }, + "/cosmos.staking.v1beta1.Query/Pool": func() proto.Message { return &stakingtypes.QueryPoolResponse{} }, + } +} diff --git a/app/keepers/keepers.go b/app/keepers/keepers.go index 219868f9..3bed2621 100644 --- a/app/keepers/keepers.go +++ b/app/keepers/keepers.go @@ -44,8 +44,6 @@ import ( distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - cadencekeeper "github.com/bitsongofficial/go-bitsong/x/cadence/keeper" - cadencetypes "github.com/bitsongofficial/go-bitsong/x/cadence/types" govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" @@ -60,48 +58,31 @@ import ( 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/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward" - packetforwardkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/keeper" - packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/types" - icq "github.com/cosmos/ibc-apps/modules/async-icq/v8" - icqkeeper "github.com/cosmos/ibc-apps/modules/async-icq/v8/keeper" - icqtypes "github.com/cosmos/ibc-apps/modules/async-icq/v8/types" - capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper" - capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - - ibchooks "github.com/cosmos/ibc-apps/modules/ibc-hooks/v8" - ibchookskeeper "github.com/cosmos/ibc-apps/modules/ibc-hooks/v8/keeper" - ibchookstypes "github.com/cosmos/ibc-apps/modules/ibc-hooks/v8/types" - ibcwasmkeeper "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/keeper" - ibcwasmtypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" - ibcfeekeeper "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/keeper" - "github.com/cosmos/ibc-go/v8/modules/apps/transfer" - ibctransferkeeper "github.com/cosmos/ibc-go/v8/modules/apps/transfer/keeper" - ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" - ibcclient "github.com/cosmos/ibc-go/v8/modules/core/02-client" - ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" - ibcconnectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types" - porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" - ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" - ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper" - - wasmvm "github.com/CosmWasm/wasmvm/v2" + "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v10/packetforward" + packetforwardkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v10/packetforward/keeper" + packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v10/packetforward/types" + + wasmvm "github.com/CosmWasm/wasmvm/v3" + ibchooks "github.com/cosmos/ibc-apps/modules/ibc-hooks/v10" + ibchookskeeper "github.com/cosmos/ibc-apps/modules/ibc-hooks/v10/keeper" + ibchookstypes "github.com/cosmos/ibc-apps/modules/ibc-hooks/v10/types" + + "github.com/cosmos/ibc-go/v10/modules/apps/transfer" + ibctransferkeeper "github.com/cosmos/ibc-go/v10/modules/apps/transfer/keeper" + ibctransfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types" + ibcclienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" + ibcconnectiontypes "github.com/cosmos/ibc-go/v10/modules/core/03-connection/types" + porttypes "github.com/cosmos/ibc-go/v10/modules/core/05-port/types" + ibcexported "github.com/cosmos/ibc-go/v10/modules/core/exported" + ibckeeper "github.com/cosmos/ibc-go/v10/modules/core/keeper" + + ibcwlckeeper "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10/keeper" + ibcwlctypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10/types" ) -var ( - wasmCapabilities = []string{ - "iterator", - "staking", - "stargate", - "cosmwasm_1_1", - "cosmwasm_1_2", - "cosmwasm_1_3", - "cosmwasm_1_4", - "cosmwasm_2_0", - "cosmwasm_2_1", - "bitsong", - } -) +func ExtendedBuiltInCapabilities() []string { + return append(wasmkeeper.BuiltInCapabilities(), "bitsong", "cosmwasm_3_0") +} // module account permissions var maccPerms = map[string][]string{ @@ -125,40 +106,31 @@ type AppKeepers struct { memKeys map[string]*storetypes.MemoryStoreKey ParamsKeeper paramskeeper.Keeper - CapabilityKeeper *capabilitykeeper.Keeper CrisisKeeper *crisiskeeper.Keeper UpgradeKeeper *upgradekeeper.Keeper - ConsensusParamsKeeper consensusparamkeeper.Keeper - - ScopedIBCKeeper capabilitykeeper.ScopedKeeper - ScopedTransferKeeper capabilitykeeper.ScopedKeeper - ScopedWasmKeeper capabilitykeeper.ScopedKeeper - ScopedICQKeeper capabilitykeeper.ScopedKeeper + ConsensusParamsKeeper *consensusparamkeeper.Keeper // keepers AccountKeeper *authkeeper.AccountKeeper BankKeeper bankkeeper.Keeper - AuthzKeeper authzkeeper.Keeper + AuthzKeeper *authzkeeper.Keeper StakingKeeper *stakingkeeper.Keeper - DistrKeeper distrkeeper.Keeper - SlashingKeeper slashingkeeper.Keeper - MintKeeper mintkeeper.Keeper + DistrKeeper *distrkeeper.Keeper + SlashingKeeper *slashingkeeper.Keeper + MintKeeper *mintkeeper.Keeper IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly IBCHooksKeeper *ibchookskeeper.Keeper - TransferKeeper ibctransferkeeper.Keeper - ICQKeeper *icqkeeper.Keeper - EvidenceKeeper evidencekeeper.Keeper - FanTokenKeeper fantokenkeeper.Keeper - WasmKeeper wasmkeeper.Keeper - CadenceKeeper cadencekeeper.Keeper - IBCFeeKeeper ibcfeekeeper.Keeper - IBCWasmClientKeeper *ibcwasmkeeper.Keeper - FeeGrantKeeper feegrantkeeper.Keeper - GovKeeper govkeeper.Keeper + TransferKeeper *ibctransferkeeper.Keeper + EvidenceKeeper *evidencekeeper.Keeper + FanTokenKeeper *fantokenkeeper.Keeper + WasmKeeper *wasmkeeper.Keeper + IBCWasmClientKeeper *ibcwlckeeper.Keeper + FeeGrantKeeper *feegrantkeeper.Keeper + GovKeeper *govkeeper.Keeper ContractKeeper *wasmkeeper.PermissionedKeeper SmartAccountKeeper *smartaccountkeeper.Keeper AuthenticatorManager *authenticator.AuthenticatorManager - ProtocolPoolKeeper protocolpoolkeeper.Keeper + ProtocolPoolKeeper *protocolpoolkeeper.Keeper // Middleware wrapper Ics20WasmHooks *ibchooks.WasmHooks @@ -175,14 +147,13 @@ func NewAppKeepers( appOpts servertypes.AppOptions, wasmOpts []wasmkeeper.Option, wasmDir string, - wasmConfig wasmtypes.WasmConfig, - ibcWasmConfig ibcwasmtypes.WasmConfig, + wasmConfig wasmtypes.NodeConfig, + ibcWasmConfig ibcwlctypes.WasmConfig, ) AppKeepers { appKeepers := AppKeepers{} Bech32Prefix := "bitsong" - // TODO: bitsong specific btsgPrefix := sdk.GetConfig().GetBech32AccountAddrPrefix() govModAddress := authtypes.NewModuleAddress(govtypes.ModuleName).String() - + wasmCapabilities := ExtendedBuiltInCapabilities() // Set keys KVStoreKey, TransientStoreKey, MemoryStoreKey appKeepers.GenerateKeys() keys := appKeepers.GetKVStoreKey() @@ -191,22 +162,15 @@ func NewAppKeepers( appKeepers.ParamsKeeper = initParamsKeeper(appCodec, cdc, keys[paramstypes.StoreKey], tkeys[paramstypes.TStoreKey]) // set the BaseApp's parameter store - appKeepers.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper( + consensusParamsKeeper := consensusparamkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(appKeepers.keys[consensusparamtypes.StoreKey]), govModAddress, runtime.EventService{}, ) + appKeepers.ConsensusParamsKeeper = &consensusParamsKeeper bApp.SetParamStore(&appKeepers.ConsensusParamsKeeper.ParamsStore) - // grant capabilities for the ibc and ibc-transfer modules - // & add capability keeper and ScopeToModule for ibc module - appKeepers.CapabilityKeeper = capabilitykeeper.NewKeeper(appCodec, appKeepers.keys[capabilitytypes.StoreKey], appKeepers.memKeys[capabilitytypes.MemStoreKey]) - appKeepers.ScopedIBCKeeper = appKeepers.CapabilityKeeper.ScopeToModule(ibcexported.ModuleName) - appKeepers.ScopedTransferKeeper = appKeepers.CapabilityKeeper.ScopeToModule(ibctransfertypes.ModuleName) - appKeepers.ScopedWasmKeeper = appKeepers.CapabilityKeeper.ScopeToModule(wasmtypes.ModuleName) - appKeepers.ScopedICQKeeper = appKeepers.CapabilityKeeper.ScopeToModule(icqtypes.ModuleName) - invCheckPeriod := cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)) appKeepers.CrisisKeeper = crisiskeeper.NewKeeper( appCodec, runtime.NewKVStoreService(appKeepers.keys[crisistypes.StoreKey]), @@ -257,22 +221,24 @@ func NewAppKeepers( }) govModuleAddr := appKeepers.AccountKeeper.GetModuleAddress(govtypes.ModuleName) - appKeepers.FeeGrantKeeper = feegrantkeeper.NewKeeper( + feegrantKeeper := feegrantkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(appKeepers.keys[feegrant.StoreKey]), appKeepers.AccountKeeper, ) + appKeepers.FeeGrantKeeper = &feegrantKeeper + smartAccountKeeper := smartaccountkeeper.NewKeeper( appCodec, appKeepers.keys[smartaccounttypes.StoreKey], govModuleAddr, appKeepers.GetSubspace(smartaccounttypes.ModuleName), appKeepers.AuthenticatorManager, - appKeepers.FeeGrantKeeper, ) appKeepers.SmartAccountKeeper = &smartAccountKeeper - appKeepers.AuthzKeeper = authzkeeper.NewKeeper( + authzKeeper := authzkeeper.NewKeeper( runtime.NewKVStoreService(appKeepers.keys[authzkeeper.StoreKey]), appCodec, bApp.MsgServiceRouter(), appKeepers.AccountKeeper, ) + appKeepers.AuthzKeeper = &authzKeeper stakingKeeper := stakingkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(appKeepers.keys[stakingtypes.StoreKey]), appKeepers.AccountKeeper, appKeepers.BankKeeper, govModAddress, @@ -281,30 +247,33 @@ func NewAppKeepers( ) // TODO: implement custom mint function to split inflation rewards to incentivize cdn: - appKeepers.ProtocolPoolKeeper = protocolpoolkeeper.NewKeeper( + protopoolKeeper := protocolpoolkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(keys[protocolpooltypes.StoreKey]), appKeepers.AccountKeeper, appKeepers.BankKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) + appKeepers.ProtocolPoolKeeper = &protopoolKeeper - appKeepers.DistrKeeper = distrkeeper.NewKeeper( + distrKeeper := distrkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(appKeepers.keys[distrtypes.StoreKey]), appKeepers.AccountKeeper, appKeepers.BankKeeper, stakingKeeper, authtypes.FeeCollectorName, govModAddress, // distrkeeper.WithExternalCommunityPool(appKeepers.ProtocolPoolKeeper), ) + appKeepers.DistrKeeper = &distrKeeper - appKeepers.SlashingKeeper = slashingkeeper.NewKeeper( + slashKeeper := slashingkeeper.NewKeeper( appCodec, cdc, runtime.NewKVStoreService(appKeepers.keys[slashingtypes.StoreKey]), stakingKeeper, govModAddress, ) + appKeepers.SlashingKeeper = &slashKeeper - // https://github.com/cosmos/cosmos-sdk/blob/v0.53.0/UPGRADING.md?plain=1#L192 - appKeepers.MintKeeper = mintkeeper.NewKeeper( + mintKeeper := mintkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(appKeepers.keys[minttypes.StoreKey]), stakingKeeper, appKeepers.AccountKeeper, appKeepers.BankKeeper, authtypes.FeeCollectorName, govModAddress, - // mintkeeper.WithMintFn(myCustomMintFunc), // Use custom minting function + // mintkeeper.WithMintFn(myCustomMintFunc), // Use custom minting function: https://github.com/cosmos/cosmos-sdk/blob/v0.53.0/UPGRADING.md?plain=1#L192 ) + appKeepers.MintKeeper = &mintKeeper // register the staking hookshttps://github.com/cosmos/cosmos-sdk/blob/v0.53.0/UPGRADING.md?plain=1#L192 // NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks @@ -314,9 +283,20 @@ func NewAppKeepers( appKeepers.StakingKeeper = stakingKeeper + fantokenKeeper := fantokenkeeper.NewKeeper( + appCodec, + keys[fantokentypes.StoreKey], + appKeepers.GetSubspace(fantokentypes.ModuleName), + appKeepers.AccountKeeper, + appKeepers.BankKeeper, + appKeepers.DistrKeeper, + BlockedAddrs(), + ) + appKeepers.FanTokenKeeper = &fantokenKeeper + appKeepers.IBCKeeper = ibckeeper.NewKeeper( - appCodec, keys[ibcexported.StoreKey], appKeepers.GetSubspace(ibcexported.ModuleName), - appKeepers.StakingKeeper, appKeepers.UpgradeKeeper, appKeepers.ScopedIBCKeeper, govModAddress, + appCodec, runtime.NewKVStoreService(appKeepers.keys[ibcexported.StoreKey]), appKeepers.GetSubspace(ibcexported.ModuleName), + appKeepers.UpgradeKeeper, govModAddress, ) // Configure the ibchooks keeper @@ -326,7 +306,7 @@ func NewAppKeepers( appKeepers.IBCHooksKeeper = &hooksKeeper // Setup the ICS4Wrapper used by the hooks middleware - wasmHooks := ibchooks.NewWasmHooks(appKeepers.IBCHooksKeeper, &appKeepers.WasmKeeper, Bech32Prefix) + wasmHooks := ibchooks.NewWasmHooks(appKeepers.IBCHooksKeeper, appKeepers.WasmKeeper, Bech32Prefix) appKeepers.Ics20WasmHooks = &wasmHooks appKeepers.HooksICS4Wrapper = ibchooks.NewICS4Middleware( appKeepers.IBCKeeper.ChannelKeeper, @@ -335,7 +315,7 @@ func NewAppKeepers( appKeepers.PacketForwardKeeper = packetforwardkeeper.NewKeeper( appCodec, - keys[packetforwardtypes.StoreKey], + runtime.NewKVStoreService(appKeepers.keys[packetforwardtypes.StoreKey]), nil, // transfer keeper starts nil, gets set below with SetTransferKeeper appKeepers.IBCKeeper.ChannelKeeper, appKeepers.BankKeeper, @@ -344,20 +324,23 @@ func NewAppKeepers( govModAddress, ) - appKeepers.TransferKeeper = ibctransferkeeper.NewKeeper( - appCodec, keys[ibctransfertypes.StoreKey], appKeepers.GetSubspace(ibctransfertypes.ModuleName), + transferKeeper := ibctransferkeeper.NewKeeper( + appCodec, + runtime.NewKVStoreService(appKeepers.keys[ibctransfertypes.StoreKey]), + appKeepers.GetSubspace(ibctransfertypes.ModuleName), appKeepers.PacketForwardKeeper, - appKeepers.IBCKeeper.ChannelKeeper, appKeepers.IBCKeeper.PortKeeper, + appKeepers.IBCKeeper.ChannelKeeper, bApp.MsgServiceRouter(), appKeepers.AccountKeeper, appKeepers.BankKeeper, - appKeepers.ScopedTransferKeeper, govModAddress, + govModAddress, ) + appKeepers.TransferKeeper = &transferKeeper appKeepers.PacketForwardKeeper.SetTransferKeeper(appKeepers.TransferKeeper) // Create Transfer Stack var transferStack porttypes.IBCModule const middlewareTimeoutRetry = 0 - transferStack = transfer.NewIBCModule(appKeepers.TransferKeeper) + transferStack = transfer.NewIBCModule(*appKeepers.TransferKeeper) transferStack = ibchooks.NewIBCMiddleware(transferStack, &appKeepers.HooksICS4Wrapper) transferStack = packetforward.NewIBCMiddleware( transferStack, @@ -365,28 +348,7 @@ func NewAppKeepers( middlewareTimeoutRetry, packetforwardkeeper.DefaultForwardTransferPacketTimeoutTimestamp, ) - - // forwardTimeout time.Duration, - // ICQ Keeper - icqKeeper := icqkeeper.NewKeeper( - appCodec, - appKeepers.keys[icqtypes.StoreKey], - appKeepers.IBCKeeper.ChannelKeeper, // may be replaced with middleware - appKeepers.IBCKeeper.ChannelKeeper, - appKeepers.IBCKeeper.PortKeeper, - appKeepers.ScopedICQKeeper, - bApp.GRPCQueryRouter(), - authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - appKeepers.ICQKeeper = &icqKeeper - // Create Async ICQ module - icqModule := icq.NewIBCModule(*appKeepers.ICQKeeper) - - // Create static IBC router, add transfer route, then set and seal it - ibcRouter := porttypes.NewRouter() - ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferStack). - AddRoute(icqtypes.ModuleName, icqModule) - // Note: sealing occurs after new wasmkeeper + appKeepers.TransferKeeper.WithICS4Wrapper(appKeepers.HooksICS4Wrapper) // Create evidence Keeper for to register the IBC light client misbehaviour evidence route evidenceKeeper := evidencekeeper.NewKeeper( @@ -394,42 +356,9 @@ func NewAppKeepers( runtime.ProvideCometInfoService(), ) // If evidence needs to be handled for the app, set routes in router here and seal - appKeepers.EvidenceKeeper = *evidenceKeeper - - appKeepers.FanTokenKeeper = fantokenkeeper.NewKeeper( - appCodec, - keys[fantokentypes.StoreKey], - appKeepers.GetSubspace(fantokentypes.ModuleName), - appKeepers.AccountKeeper, - appKeepers.BankKeeper, - appKeepers.DistrKeeper, - BlockedAddrs(), - ) - - // Stargate Queries - acceptedStargateQueries := wasmkeeper.AcceptedQueries{ - // ibc - "/ibc.core.client.v1.Query/ClientState": &ibcclienttypes.QueryClientStateResponse{}, - "/ibc.core.client.v1.Query/ConsensusState": &ibcclienttypes.QueryConsensusStateResponse{}, - "/ibc.core.connection.v1.Query/Connection": &ibcconnectiontypes.QueryConnectionResponse{}, - - // distribution - "/cosmos.distribution.v1beta1.Query/DelegationRewards": &distrtypes.QueryDelegationRewardsResponse{}, - - // staking - "/cosmos.staking.v1beta1.Query/Delegation": &stakingtypes.QueryDelegationResponse{}, - "/cosmos.staking.v1beta1.Query/Redelegations": &stakingtypes.QueryRedelegationsResponse{}, - "/cosmos.staking.v1beta1.Query/UnbondingDelegation": &stakingtypes.QueryUnbondingDelegationResponse{}, - "/cosmos.staking.v1beta1.Query/Validator": &stakingtypes.QueryValidatorResponse{}, - "/cosmos.staking.v1beta1.Query/Params": &stakingtypes.QueryParamsResponse{}, - "/cosmos.staking.v1beta1.Query/Pool": &stakingtypes.QueryPoolResponse{}, - - // fantoken - "/bitsong.fantoken.v1beta1.Query/Params": &fantokentypes.QueryParamsResponse{}, - "/bitsong.fantoken.v1beta1.Query/FanToken": &fantokentypes.QueryFanTokenResponse{}, - "/bitsong.fantoken.v1beta1.Query/FanTokens": &fantokentypes.QueryFanTokensResponse{}, - } + appKeepers.EvidenceKeeper = evidenceKeeper + acceptedStargateQueries := AcceptedQueries() querierOpts := wasmkeeper.WithQueryPlugins( &wasmkeeper.QueryPlugins{Stargate: wasmkeeper.AcceptListStargateQuerier(acceptedStargateQueries, bApp.GRPCQueryRouter(), appCodec)}) wasmOpts = append(wasmOpts, querierOpts) @@ -445,30 +374,31 @@ func NewAppKeepers( panic(fmt.Sprintf("failed to create bitsong wasm vm for 08-wasm: %s", err)) } - appKeepers.WasmKeeper = wasmkeeper.NewKeeper( + appWasmKeeper := wasmkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(appKeepers.keys[wasmtypes.StoreKey]), appKeepers.AccountKeeper, appKeepers.BankKeeper, appKeepers.StakingKeeper, - distrkeeper.NewQuerier(appKeepers.DistrKeeper), + distrkeeper.NewQuerier(*appKeepers.DistrKeeper), appKeepers.IBCKeeper.ChannelKeeper, appKeepers.IBCKeeper.ChannelKeeper, - appKeepers.IBCKeeper.PortKeeper, - appKeepers.ScopedWasmKeeper, + appKeepers.IBCKeeper.ChannelKeeperV2, appKeepers.TransferKeeper, bApp.MsgServiceRouter(), bApp.GRPCQueryRouter(), wasmDir, wasmConfig, + wasmtypes.VMConfig{}, wasmCapabilities, govModAddress, append(wasmOpts, wasmkeeper.WithWasmEngine(wasmVm))..., ) + appKeepers.WasmKeeper = &appWasmKeeper - ibcWasmClientKeeper := ibcwasmkeeper.NewKeeperWithVM( + ibcWasmClientKeeper := ibcwlckeeper.NewKeeperWithVM( appCodec, - runtime.NewKVStoreService(appKeepers.keys[ibcwasmtypes.StoreKey]), + runtime.NewKVStoreService(appKeepers.keys[ibcwlctypes.StoreKey]), appKeepers.IBCKeeper.ClientKeeper, govModAddress, lcWasmer, @@ -477,25 +407,19 @@ func NewAppKeepers( appKeepers.IBCWasmClientKeeper = &ibcWasmClientKeeper // set the contract keeper for ICS4Wrappers (IBC Middleware) - appKeepers.ContractKeeper = wasmkeeper.NewDefaultPermissionKeeper(&appKeepers.WasmKeeper) - appKeepers.Ics20WasmHooks.ContractKeeper = &appKeepers.WasmKeeper - - appKeepers.CadenceKeeper = cadencekeeper.NewKeeper( - appKeepers.keys[cadencetypes.StoreKey], - appCodec, - appKeepers.WasmKeeper, - appKeepers.ContractKeeper, - govModAddress, - ) + appKeepers.ContractKeeper = wasmkeeper.NewDefaultPermissionKeeper(appKeepers.WasmKeeper) + appKeepers.Ics20WasmHooks.ContractKeeper = appKeepers.WasmKeeper // register CosmWasm authenticator appKeepers.AuthenticatorManager.RegisterAuthenticator( authenticator.NewCosmwasmAuthenticator(appKeepers.ContractKeeper, appKeepers.AccountKeeper, appCodec)) // wire wasm to IBC - ibcRouter.AddRoute(wasmtypes.ModuleName, wasm.NewIBCHandler(appKeepers.WasmKeeper, appKeepers.IBCKeeper.ChannelKeeper, appKeepers.IBCKeeper.ChannelKeeper)) - // Seal the router + // Create static IBC router, add transfer route, then set and seal it + ibcRouter := porttypes.NewRouter(). + AddRoute(ibctransfertypes.ModuleName, transferStack). + AddRoute(wasmtypes.ModuleName, wasm.NewIBCHandler(appKeepers.WasmKeeper, appKeepers.IBCKeeper.ChannelKeeper, appKeepers.TransferKeeper, appKeepers.IBCKeeper.ChannelKeeper)) appKeepers.IBCKeeper.SetRouter(ibcRouter) // register the proposal types @@ -503,12 +427,11 @@ func NewAppKeepers( govRouter. AddRoute(govtypes.RouterKey, govtypesv1.ProposalHandler). AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(appKeepers.ParamsKeeper)). - AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(appKeepers.IBCKeeper.ClientKeeper)). AddRoute(fantokentypes.RouterKey, fantoken.NewProposalHandler(appKeepers.FanTokenKeeper)) govConfig := govtypes.DefaultConfig() govConfig.MaxMetadataLen = 10200 - appKeepers.GovKeeper = *govkeeper.NewKeeper( + appKeepers.GovKeeper = govkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(appKeepers.keys[govtypes.StoreKey]), appKeepers.AccountKeeper, @@ -544,7 +467,6 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino paramsKeeper.Subspace(ibcexported.ModuleName).WithKeyTable(keytable) paramsKeeper.Subspace(ibctransfertypes.ModuleName).WithKeyTable(ibctransfertypes.ParamKeyTable()) paramsKeeper.Subspace(wasmtypes.ModuleName) - paramsKeeper.Subspace(icqtypes.ModuleName) paramsKeeper.Subspace(ibchookstypes.ModuleName) paramsKeeper.Subspace(smartaccounttypes.ModuleName).WithKeyTable(smartaccounttypes.ParamKeyTable()) paramsKeeper.Subspace(fantokentypes.ModuleName) diff --git a/app/keepers/keys.go b/app/keepers/keys.go index 38128e93..ae535d8a 100644 --- a/app/keepers/keys.go +++ b/app/keepers/keys.go @@ -5,13 +5,13 @@ import ( "cosmossdk.io/x/feegrant" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" - cadencetypes "github.com/bitsongofficial/go-bitsong/x/cadence/types" + smartaccounttypes "github.com/bitsongofficial/go-bitsong/x/smart-account/types" authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper" consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types" crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" protocolpooltypes "github.com/cosmos/cosmos-sdk/x/protocolpool/types" - packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/types" + packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v10/packetforward/types" evidencetypes "cosmossdk.io/x/evidence/types" upgradetypes "cosmossdk.io/x/upgrade/types" @@ -24,12 +24,10 @@ import ( paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - icqtypes "github.com/cosmos/ibc-apps/modules/async-icq/v8/types" - ibchookstypes "github.com/cosmos/ibc-apps/modules/ibc-hooks/v8/types" - capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - ibcwasmtypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" - ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" - ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" + ibchookstypes "github.com/cosmos/ibc-apps/modules/ibc-hooks/v10/types" + ibcwasmtypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10/types" + ibctransfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types" + ibcexported "github.com/cosmos/ibc-go/v10/modules/core/exported" ) func (appKeepers *AppKeepers) GenerateKeys() { @@ -52,19 +50,14 @@ func (appKeepers *AppKeepers) GenerateKeys() { ibchookstypes.StoreKey, ibctransfertypes.StoreKey, ibcwasmtypes.StoreKey, - capabilitytypes.StoreKey, authzkeeper.StoreKey, wasmtypes.StoreKey, - icqtypes.StoreKey, fantokentypes.StoreKey, - cadencetypes.StoreKey, smartaccounttypes.StoreKey, protocolpooltypes.StoreKey, ) appKeepers.tkeys = storetypes.NewTransientStoreKeys(paramstypes.TStoreKey) - // memkeys are info stored in RAM - appKeepers.memKeys = storetypes.NewMemoryStoreKeys(capabilitytypes.MemStoreKey) } func (appKeepers *AppKeepers) GetKVStoreKey() map[string]*storetypes.KVStoreKey { diff --git a/app/keepers/querier.go b/app/keepers/querier.go deleted file mode 100644 index c2301564..00000000 --- a/app/keepers/querier.go +++ /dev/null @@ -1,21 +0,0 @@ -package keepers - -import ( - storetypes "cosmossdk.io/store/types" -) - -// QuerierWrapper is a local wrapper around BaseApp that exports only the Queryable interface. -// This is used to pass the baseApp to Async ICQ without exposing all methods -type QuerierWrapper struct { - querier storetypes.Queryable -} - -var _ storetypes.Queryable = QuerierWrapper{} - -func NewQuerierWrapper(querier storetypes.Queryable) QuerierWrapper { - return QuerierWrapper{querier: querier} -} - -func (q QuerierWrapper) Query(req *storetypes.RequestQuery) (*storetypes.ResponseQuery, error) { - return q.querier.Query(req) -} diff --git a/app/modules.go b/app/modules.go index 9d368444..f3f27c6d 100644 --- a/app/modules.go +++ b/app/modules.go @@ -9,11 +9,8 @@ import ( upgradetypes "cosmossdk.io/x/upgrade/types" "github.com/CosmWasm/wasmd/x/wasm" encparams "github.com/bitsongofficial/go-bitsong/app/params" - "github.com/bitsongofficial/go-bitsong/x/cadence" "github.com/cosmos/cosmos-sdk/client" - addresscodec "github.com/cosmos/cosmos-sdk/codec/address" - cadencetypes "github.com/bitsongofficial/go-bitsong/x/cadence/types" "github.com/bitsongofficial/go-bitsong/x/fantoken" fantokenclient "github.com/bitsongofficial/go-bitsong/x/fantoken/client" fantokentypes "github.com/bitsongofficial/go-bitsong/x/fantoken/types" @@ -51,26 +48,20 @@ import ( "github.com/cosmos/cosmos-sdk/x/staking" stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - packetforward "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward" - packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/types" - icq "github.com/cosmos/ibc-apps/modules/async-icq/v8" - icqtypes "github.com/cosmos/ibc-apps/modules/async-icq/v8/types" - ibc_hooks "github.com/cosmos/ibc-apps/modules/ibc-hooks/v8" - ibchookstypes "github.com/cosmos/ibc-apps/modules/ibc-hooks/v8/types" - ibctestingtypes "github.com/cosmos/ibc-go/v8/testing/types" + packetforward "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v10/packetforward" + packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v10/packetforward/types" + ibc_hooks "github.com/cosmos/ibc-apps/modules/ibc-hooks/v10" + ibchookstypes "github.com/cosmos/ibc-apps/modules/ibc-hooks/v10/types" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" - "github.com/cosmos/ibc-go/modules/capability" - capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper" - capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - ibcwasm "github.com/cosmos/ibc-go/modules/light-clients/08-wasm" - ibcwasmtypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" - "github.com/cosmos/ibc-go/v8/modules/apps/transfer" - ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" - ibc "github.com/cosmos/ibc-go/v8/modules/core" - ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" - ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper" - ibctm "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint" + ibcwasm "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10" + ibcwasmtypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10/types" + "github.com/cosmos/ibc-go/v10/modules/apps/transfer" + ibctransfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types" + ibc "github.com/cosmos/ibc-go/v10/modules/core" + ibcexported "github.com/cosmos/ibc-go/v10/modules/core/exported" + ibckeeper "github.com/cosmos/ibc-go/v10/modules/core/keeper" + ibctm "github.com/cosmos/ibc-go/v10/modules/light-clients/07-tendermint" ) // AppModuleBasics defines the module BasicManager is in charge of setting up basic, @@ -80,7 +71,6 @@ var AppModuleBasics = module.NewBasicManager( auth.AppModuleBasic{}, genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator), bank.AppModuleBasic{}, - capability.AppModuleBasic{}, staking.AppModuleBasic{}, mint.AppModuleBasic{}, distr.AppModuleBasic{}, @@ -103,63 +93,19 @@ var AppModuleBasics = module.NewBasicManager( packetforward.AppModuleBasic{}, fantoken.AppModuleBasic{}, wasm.AppModuleBasic{}, - icq.AppModuleBasic{}, ibc_hooks.AppModuleBasic{}, - cadence.AppModuleBasic{}, ibcwasm.AppModuleBasic{}, smartaccount.AppModuleBasic{}, protocolpool.AppModule{}, ) -func appModules( - app *BitsongApp, - encodingConfig encparams.EncodingConfig, - skipGenesisInvariants bool, -) []module.AppModule { - appCodec := encodingConfig.Marshaler - return []module.AppModule{ - - genutil.NewAppModule( - app.AccountKeeper, app.StakingKeeper, app.BaseApp, - encodingConfig.TxConfig, - ), - auth.NewAppModule(appCodec, *app.AccountKeeper, nil, app.GetSubspace(authtypes.ModuleName)), - vesting.NewAppModule(*app.AccountKeeper, app.BankKeeper), - bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper, app.GetSubspace(banktypes.ModuleName)), - capability.NewAppModule(appCodec, *app.CapabilityKeeper, false), - gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)), - mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil, app.GetSubspace(minttypes.ModuleName)), - slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName), app.interfaceRegistry), - distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)), - staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)), - upgrade.NewAppModule(app.UpgradeKeeper, addresscodec.NewBech32Codec(encparams.Bech32PrefixAccAddr)), - wasm.NewAppModule(appCodec, &app.WasmKeeper, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.MsgServiceRouter(), app.GetSubspace(wasmtypes.ModuleName)), - evidence.NewAppModule(app.EvidenceKeeper), - feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry), - authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - fantoken.NewAppModule(appCodec, app.FanTokenKeeper, app.BankKeeper), - ibc.NewAppModule(app.IBCKeeper), - ibcwasm.NewAppModule(*app.IBCWasmClientKeeper), - params.NewAppModule(app.ParamsKeeper), - consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper), - packetforward.NewAppModule(app.PacketForwardKeeper, app.GetSubspace(packetforwardtypes.ModuleName)), - transfer.NewAppModule(app.TransferKeeper), - ibc_hooks.NewAppModule(*app.AccountKeeper), - icq.NewAppModule(*app.ICQKeeper, app.GetSubspace(icqtypes.ModuleName)), - cadence.NewAppModule(appCodec, app.CadenceKeeper), - protocolpool.NewAppModule(app.ProtocolPoolKeeper, app.AccountKeeper, app.BankKeeper), - smartaccount.NewAppModule(appCodec, *app.SmartAccountKeeper), - crisis.NewAppModule(app.CrisisKeeper, skipGenesisInvariants, app.GetSubspace(crisistypes.ModuleName)), // always be last to make sure that it checks for all invariants and not only part of them - } -} - func orderBeginBlockers() []string { return []string{ - capabilitytypes.ModuleName, minttypes.ModuleName, authtypes.ModuleName, + minttypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, distrtypes.ModuleName, protocolpooltypes.ModuleName, slashingtypes.ModuleName, govtypes.ModuleName, crisistypes.ModuleName, stakingtypes.ModuleName, ibctransfertypes.ModuleName, ibcexported.ModuleName, packetforwardtypes.ModuleName, - icqtypes.ModuleName, authz.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, wasmtypes.ModuleName, - feegrant.ModuleName, paramstypes.ModuleName, vestingtypes.ModuleName, cadencetypes.ModuleName, + authz.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, wasmtypes.ModuleName, + feegrant.ModuleName, paramstypes.ModuleName, vestingtypes.ModuleName, ibchookstypes.ModuleName, ibcwasmtypes.ModuleName, fantokentypes.ModuleName, } } @@ -167,17 +113,16 @@ func orderBeginBlockers() []string { func orderEndBlockers() []string { return []string{ crisistypes.ModuleName, govtypes.ModuleName, stakingtypes.ModuleName, ibctransfertypes.ModuleName, ibcexported.ModuleName, - packetforwardtypes.ModuleName, icqtypes.ModuleName, feegrant.ModuleName, authz.ModuleName, capabilitytypes.ModuleName, authtypes.ModuleName, + packetforwardtypes.ModuleName, feegrant.ModuleName, authz.ModuleName, authtypes.ModuleName, protocolpooltypes.ModuleName, // must be before bank - banktypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName, minttypes.ModuleName, genutiltypes.ModuleName, wasmtypes.ModuleName, - evidencetypes.ModuleName, paramstypes.ModuleName, upgradetypes.ModuleName, vestingtypes.ModuleName, cadencetypes.ModuleName, + banktypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName, minttypes.ModuleName, genutiltypes.ModuleName, wasmtypes.ModuleName, smartaccounttypes.ModuleName, + evidencetypes.ModuleName, paramstypes.ModuleName, upgradetypes.ModuleName, vestingtypes.ModuleName, ibchookstypes.ModuleName, ibcwasmtypes.ModuleName, fantokentypes.ModuleName, } } func orderInitBlockers() []string { return []string{ - capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, fantokentypes.ModuleName, @@ -203,8 +148,6 @@ func orderInitBlockers() []string { wasmtypes.ModuleName, ibcwasmtypes.ModuleName, ibchookstypes.ModuleName, - icqtypes.ModuleName, - cadencetypes.ModuleName, protocolpooltypes.ModuleName, } } @@ -220,24 +163,23 @@ func simulationModules( auth.NewAppModule(appCodec, *app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)), bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper, app.GetSubspace(banktypes.ModuleName)), fantoken.NewAppModule(appCodec, app.FanTokenKeeper, app.BankKeeper), - capability.NewAppModule(appCodec, *app.CapabilityKeeper, false), - feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry), - authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)), - mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil, app.GetSubspace(stakingtypes.ModuleName)), + feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, *app.FeeGrantKeeper, app.interfaceRegistry), + authzmodule.NewAppModule(appCodec, *app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), + gov.NewAppModule(appCodec, app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)), + mint.NewAppModule(appCodec, *app.MintKeeper, app.AccountKeeper, nil, app.GetSubspace(minttypes.ModuleName)), staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)), - distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)), - slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName), app.interfaceRegistry), + distr.NewAppModule(appCodec, *app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)), + slashing.NewAppModule(appCodec, *app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName), app.interfaceRegistry), params.NewAppModule(app.ParamsKeeper), - evidence.NewAppModule(app.EvidenceKeeper), - wasm.NewAppModule(appCodec, &app.WasmKeeper, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.MsgServiceRouter(), app.GetSubspace(wasmtypes.ModuleName)), + evidence.NewAppModule(*app.EvidenceKeeper), + wasm.NewAppModule(appCodec, app.WasmKeeper, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.MsgServiceRouter(), app.GetSubspace(wasmtypes.ModuleName)), ibc.NewAppModule(app.IBCKeeper), - transfer.NewAppModule(app.TransferKeeper), + transfer.NewAppModule(*app.TransferKeeper), } } // used for ibctesting with bitsongs simulation app -func (app *BitsongApp) GetStakingKeeper() ibctestingtypes.StakingKeeper { +func (app *BitsongApp) GetStakingKeeper() stakingkeeper.Keeper { return *app.StakingKeeper // Dereferencing the pointer } func (app *BitsongApp) GetSDKStakingKeeper() stakingkeeper.Keeper { @@ -248,10 +190,6 @@ func (app *BitsongApp) GetIBCKeeper() *ibckeeper.Keeper { return app.IBCKeeper // This is a *ibckeeper.Keeper } -func (app *BitsongApp) GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper { - return app.ScopedIBCKeeper -} - func (app *BitsongApp) GetTxConfig() client.TxConfig { return GetEncodingConfig().TxConfig } diff --git a/app/testing/abci.go b/app/testing/abci.go new file mode 100644 index 00000000..1530e70c --- /dev/null +++ b/app/testing/abci.go @@ -0,0 +1,89 @@ +package apptesting + +import ( + "time" + + abci "github.com/cometbft/cometbft/abci/types" + + coreheader "cosmossdk.io/core/header" +) + +func (s *KeeperTestHelper) Commit() { + _, err := s.App.FinalizeBlock(&abci.RequestFinalizeBlock{Height: s.Ctx.BlockHeight(), Time: s.Ctx.BlockTime()}) + if err != nil { + panic(err) + } + _, err = s.App.Commit() + if err != nil { + panic(err) + } + + newBlockTime := s.Ctx.BlockTime().Add(time.Second) + + header := s.Ctx.BlockHeader() + header.Time = newBlockTime + header.Height++ + + s.Ctx = s.App.BaseApp.NewUncachedContext(false, header).WithHeaderInfo(coreheader.Info{ + Height: header.Height, + Time: header.Time, + }) + + s.hasUsedAbci = true +} + +// // BeginNewBlock starts a new block. +// func (s *KeeperTestHelper) BeginNewBlock() { +// var valAddr []byte + +// validators, err := s.App.AppKeepers.StakingKeeper.GetAllValidators(s.Ctx) +// s.Require().NoError(err) +// if len(validators) >= 1 { +// valAddrFancy, err := validators[0].GetConsAddr() +// s.Require().NoError(err) +// valAddr = valAddrFancy +// } else { +// valAddrFancy := s.SetupValidator(stakingtypes.Bonded) +// validator, _ := s.App.AppKeepers.StakingKeeper.GetValidator(s.Ctx, valAddrFancy) +// valAddr2, _ := validator.GetConsAddr() +// valAddr = valAddr2 +// } + +// s.BeginNewBlockWithProposer(valAddr) +// } + +// // BeginNewBlockWithProposer begins a new block with a proposer. +// func (s *KeeperTestHelper) BeginNewBlockWithProposer(proposer sdk.ValAddress) { +// validator, err := s.App.AppKeepers.StakingKeeper.GetValidator(s.Ctx, proposer) +// s.Assert().NoError(err) + +// valConsAddr, err := validator.GetConsAddr() +// s.Require().NoError(err) + +// valAddr := valConsAddr +// newBlockTime := s.Ctx.BlockTime().Add(3 * time.Second) + +// header := tmtypes.Header{Height: s.Ctx.BlockHeight() + 1, Time: newBlockTime} +// s.Ctx = s.Ctx.WithBlockTime(newBlockTime).WithBlockHeight(s.Ctx.BlockHeight() + 1) +// voteInfos := []abci.VoteInfo{{ +// Validator: abci.Validator{Address: valAddr, Power: 1000}, +// BlockIdFlag: tmtypes.BlockIDFlagCommit, +// }} +// s.Ctx = s.Ctx.WithVoteInfos(voteInfos) + +// _, err = fmt.Println("beginning block ", s.Ctx.BlockHeight()) +// s.Require().NoError(err) + +// _, err = s.App.BeginBlocker(s.Ctx) +// s.Require().NoError(err) + +// s.Ctx = s.App.NewContextLegacy(false, header) +// s.hasUsedAbci = true +// } + +// EndBlock ends the block, and runs commit +func (s *KeeperTestHelper) EndBlock() { + _, err := s.App.EndBlocker(s.Ctx) + s.Require().NoError(err) + s.hasUsedAbci = true +} diff --git a/app/testing/fund.go b/app/testing/fund.go new file mode 100644 index 00000000..313726c6 --- /dev/null +++ b/app/testing/fund.go @@ -0,0 +1,24 @@ +package apptesting + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/bank/testutil" + minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" +) + +// FundAcc funds target address with specified amount. +func (s *KeeperTestHelper) FundAcc(acc sdk.AccAddress, amounts sdk.Coins) { + err := testutil.FundAccount(s.Ctx, s.App.AppKeepers.BankKeeper, acc, amounts) + s.Require().NoError(err) +} + +// FundModuleAcc funds target modules with specified amount. +func (s *KeeperTestHelper) FundModuleAcc(moduleName string, amounts sdk.Coins) { + err := testutil.FundModuleAccount(s.Ctx, s.App.AppKeepers.BankKeeper, moduleName, amounts) + s.Require().NoError(err) +} + +func (s *KeeperTestHelper) MintCoins(coins sdk.Coins) { + err := s.App.AppKeepers.BankKeeper.MintCoins(s.Ctx, minttypes.ModuleName, coins) + s.Require().NoError(err) +} diff --git a/app/testing/test_suite.go b/app/testing/test_suite.go index ea087a94..d873fb31 100644 --- a/app/testing/test_suite.go +++ b/app/testing/test_suite.go @@ -3,6 +3,7 @@ package apptesting import ( "fmt" "os" + "path/filepath" "time" "cosmossdk.io/math" @@ -12,7 +13,6 @@ import ( "github.com/cosmos/cosmos-sdk/baseapp" sdk "github.com/cosmos/cosmos-sdk/types" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" - "github.com/cosmos/cosmos-sdk/x/bank/testutil" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" stakinghelper "github.com/cosmos/cosmos-sdk/x/staking/testutil" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" @@ -62,6 +62,13 @@ func (s *KeeperTestHelper) Setup() { if err != nil { panic(fmt.Sprintf("failed creating temporary directory: %v", err)) } + + // Create minimal config files for testing + err = s.createTestConfigFiles(dir) + if err != nil { + panic(fmt.Sprintf("failed creating test config files: %v", err)) + } + s.T().Cleanup(func() { os.RemoveAll(dir); s.withCaching = false }) s.App = app.SetupWithCustomHome(false, dir) // configure ctx, caching, query helper,& test accounts @@ -144,8 +151,25 @@ func ConvertAddrsToValAddrs(addrs []sdk.AccAddress) []sdk.ValAddress { return valAddrs } -// FundAcc funds target address with specified amount. -func (s *KeeperTestHelper) FundAcc(acc sdk.AccAddress, amounts sdk.Coins) { - err := testutil.FundAccount(s.Ctx, s.App.BankKeeper, acc, amounts) - s.Require().NoError(err) +// createTestConfigFiles creates minimal config files needed for upgrade handler tests +func (s *KeeperTestHelper) createTestConfigFiles(homeDir string) error { + configDir := filepath.Join(homeDir, "config") + if err := os.MkdirAll(configDir, 0o755); err != nil { + return err + } + configContent := ` +# Minimal config.toml for testing +[consensus] +timeout_commit = "5s" +timeout_propose = "3s" +timeout_propose_delta = "500ms" +timeout_prevote = "1s" +timeout_prevote_delta = "500ms" +timeout_precommit = "1s" +timeout_precommit_delta = "500ms" + +` + + configPath := filepath.Join(configDir, "config.toml") + return os.WriteFile(configPath, []byte(configContent), 0o644) } diff --git a/app/testing/wasm.go b/app/testing/wasm.go new file mode 100644 index 00000000..b9ab6c7a --- /dev/null +++ b/app/testing/wasm.go @@ -0,0 +1,59 @@ +package apptesting + +import ( + "crypto/sha256" + + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + + "github.com/cosmos/cosmos-sdk/testutil/testdata" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func (s *KeeperTestHelper) StoreCode(wasmContract []byte) { + _, _, sender := testdata.KeyTestPubAddr() + msg := wasmtypes.MsgStoreCodeFixture(func(m *wasmtypes.MsgStoreCode) { + m.WASMByteCode = wasmContract + m.Sender = sender.String() + }) + rsp, err := s.App.MsgServiceRouter().Handler(msg)(s.Ctx, msg) + s.Require().NoError(err) + var result wasmtypes.MsgStoreCodeResponse + s.Require().NoError(s.App.AppCodec().Unmarshal(rsp.Data, &result)) + s.Require().Equal(result.CodeID, 0) + expHash := sha256.Sum256(wasmContract) + s.Require().Equal(expHash[:], result.Checksum) + // and + info := s.App.AppKeepers.WasmKeeper.GetCodeInfo(s.Ctx, result.CodeID) + s.Require().NotNil(info) + s.Require().Equal(expHash[:], info.CodeHash) + s.Require().Equal(sender.String(), info.Creator) + s.Require().Equal(wasmtypes.DefaultParams().InstantiateDefaultPermission.With(sender), info.InstantiateConfig) +} + +func (s *KeeperTestHelper) InstantiateContract(sender string, admin string, wasmContract []byte) string { + msgStoreCode := wasmtypes.MsgStoreCodeFixture(func(m *wasmtypes.MsgStoreCode) { + m.WASMByteCode = wasmContract + m.Sender = sender + }) + var scResp wasmtypes.MsgStoreCodeResponse + storeResp, err := s.App.MsgServiceRouter().Handler(msgStoreCode)(s.Ctx, msgStoreCode) + s.Require().NoError(err) + s.Require().NoError(s.App.AppCodec().Unmarshal(storeResp.Data, &scResp)) + + msgInstantiate := wasmtypes.MsgInstantiateContractFixture(func(m *wasmtypes.MsgInstantiateContract) { + m.Sender = sender + m.Admin = admin + m.Msg = []byte(`{}`) + m.CodeID = scResp.CodeID + }) + resp, err := s.App.MsgServiceRouter().Handler(msgInstantiate)(s.Ctx, msgInstantiate) + s.Require().NoError(err) + var result wasmtypes.MsgInstantiateContractResponse + s.Require().NoError(s.App.AppCodec().Unmarshal(resp.Data, &result)) + contractInfo := s.App.AppKeepers.WasmKeeper.GetContractInfo(s.Ctx, sdk.MustAccAddressFromBech32(result.Address)) + s.Require().Equal(contractInfo.CodeID, scResp.CodeID) + s.Require().Equal(contractInfo.Admin, admin) + s.Require().Equal(contractInfo.Creator, sender) + + return result.Address +} diff --git a/app/upgrades/types.go b/app/upgrades/types.go index 498b451c..05d3c004 100644 --- a/app/upgrades/types.go +++ b/app/upgrades/types.go @@ -17,8 +17,8 @@ type Upgrade struct { // Upgrade version name, for the upgrade handler, e.g. `v7` UpgradeName string - // CreateUpgradeHandler defines the function that creates an upgrade handler - CreateUpgradeHandler func(*module.Manager, module.Configurator, BaseAppParamManager, *keepers.AppKeepers) upgradetypes.UpgradeHandler + // CreateUpgradeHandler defines the function that creates an upgrade handler. NOTE: string is a validators homepath + CreateUpgradeHandler func(*module.Manager, module.Configurator, BaseAppParamManager, *keepers.AppKeepers, string) upgradetypes.UpgradeHandler // Store upgrades, should be used for any new modules introduced, new modules deleted, or store names renamed. StoreUpgrades store.StoreUpgrades diff --git a/app/upgrades/v021/constants.go b/app/upgrades/v021/constants.go deleted file mode 100644 index d442f1a5..00000000 --- a/app/upgrades/v021/constants.go +++ /dev/null @@ -1,40 +0,0 @@ -package v021 - -import ( - store "cosmossdk.io/store/types" - "github.com/bitsongofficial/go-bitsong/app/upgrades" - cadencetypes "github.com/bitsongofficial/go-bitsong/x/cadence/types" - smartaccounttypes "github.com/bitsongofficial/go-bitsong/x/smart-account/types" - icqtypes "github.com/cosmos/ibc-apps/modules/async-icq/v8/types" - ibchookstypes "github.com/cosmos/ibc-apps/modules/ibc-hooks/v8/types" - wasmlctypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" -) - -const ( - UpgradeName = "v021" - // MaximumUnauthenticatedGas for smart account transactions to verify the fee payer - MaximumUnauthenticatedGas = uint64(120_000) - // IsSmartAccountActive is used for the smart account circuit breaker, smartaccounts are deactivated for v25 - IsSmartAccountActive = false - - // CircuitBreakerController is a DAODAO address, used only to deactivate the smart account module - // https://daodao.zone/dao/bitsong13hmdq0slwmff7sej79kfa8mgnx4rl46nj2fvmlgu6u32tz6vfqesdfq4vm/home - CircuitBreakerController = "bitsong13hmdq0slwmff7sej79kfa8mgnx4rl46nj2fvmlgu6u32tz6vfqesdfq4vm" -) - -var DefaultAllowedClients = []string{"07-tendermint", "09-localhost", wasmlctypes.Wasm} - -var Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateV021UpgradeHandler, - StoreUpgrades: store.StoreUpgrades{ - Added: []string{ - icqtypes.StoreKey, - wasmlctypes.StoreKey, - ibchookstypes.StoreKey, - cadencetypes.StoreKey, - smartaccounttypes.StoreKey, - }, - Deleted: []string{}, - }, -} diff --git a/app/upgrades/v021/upgrade_test.go b/app/upgrades/v021/upgrade_test.go deleted file mode 100644 index c915e620..00000000 --- a/app/upgrades/v021/upgrade_test.go +++ /dev/null @@ -1,177 +0,0 @@ -package v021_test - -import ( - "fmt" - "testing" - "time" - - "cosmossdk.io/core/appmodule" - "cosmossdk.io/core/header" - "cosmossdk.io/math" - "cosmossdk.io/x/upgrade" - upgradetypes "cosmossdk.io/x/upgrade/types" - apptesting "github.com/bitsongofficial/go-bitsong/app/testing" - addresscodec "github.com/cosmos/cosmos-sdk/codec/address" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - - sdktypes "github.com/cosmos/cosmos-sdk/types" - "github.com/stretchr/testify/suite" -) - -const dummyUpgradeHeight = 5 - -type UpgradeTestSuite struct { - apptesting.KeeperTestHelper - preModule appmodule.HasPreBlocker -} - -func (s *UpgradeTestSuite) SetupTest() { - s.Setup() - s.preModule = upgrade.NewAppModule(s.App.UpgradeKeeper, addresscodec.NewBech32Codec("bitsong")) -} - -func TestUpgradeTestSuite(t *testing.T) { - suite.Run(t, new(UpgradeTestSuite)) -} - -func (s *UpgradeTestSuite) TestUpgrade() { - upgradeSetup := func(shares, slash math.LegacyDec, jailed bool) { - vals, _ := s.App.StakingKeeper.GetAllValidators(s.Ctx) - fmt.Printf("# OF VALS: %d\n", len(vals)) - for _, val := range vals { - // delAddrStr, err :=s.App.AccountKeeper.AddressCodec().BytesToString(s.TestAccs[0]) - - s.FundAcc(s.TestAccs[0], sdktypes.NewCoins(sdktypes.NewCoin("stake", math.NewInt(1000000)))) - _, err := s.App.StakingKeeper.Delegate(s.Ctx, s.TestAccs[0], math.NewInt(1000000), stakingtypes.Unbonded, val, true) - s.Require().NoError(err) - - if !slash.IsZero() { - val.Tokens = math.LegacyNewDecFromInt(val.Tokens).MulTruncate(math.LegacyOneDec().Sub(slash)).RoundInt() // 1 % slash - } - if jailed { - val.Jailed = jailed - } - err = s.App.StakingKeeper.SetValidator(s.Ctx, val) - s.Require().NoError(err) - - // get delegations - dels, err := s.App.StakingKeeper.GetValidatorDelegations(s.Ctx, sdktypes.ValAddress(val.OperatorAddress)) - s.Require().NoError(err) - fmt.Printf("# OF DELS: %d\n", len(dels)) - - // todo: fix staking helper to propoerly manage staking in simulation tests - } - - } - - testCases := []struct { - name string - pre_upgrade func() - upgrade func() - post_upgrade func() - }{ - { - "test app module params", - func() { - upgradeSetup(math.LegacyOneDec(), math.LegacyZeroDec(), false) - }, - func() { - dummyUpgrade(s) - s.Require().NotPanics(func() { - _, err := s.preModule.PreBlock(s.Ctx) - s.Require().NoError(err) - }) - - }, - func() { - // cheeck icq params - params := s.App.ICQKeeper.GetParams(s.Ctx) - fmt.Println(params.HostEnabled) - s.Require().Equal(len(params.AllowQueries), 1) - s.Require().True(params.HostEnabled) - - // check smart account params - smartAccParams := s.App.SmartAccountKeeper.GetParams(s.Ctx) - authManagers := s.App.AuthenticatorManager.GetRegisteredAuthenticators() - s.Require().Greater(len(authManagers), 1) - s.Require().True(smartAccParams.IsSmartAccountActive) - - //check ibchook params - ibcwasmparams := s.App.IBCKeeper.ClientKeeper.GetParams(s.Ctx) - s.Require().Equal(len(ibcwasmparams.AllowedClients), 2) - - // check cadence params - cadenceParams := s.App.CadenceKeeper.GetParams(s.Ctx) - s.Require().Equal(cadenceParams.ContractGasLimit, uint64(1000000)) - - // expidited proposal - govparams, _ := s.App.GovKeeper.Params.Get(s.Ctx) - newExpeditedVotingPeriod := time.Minute * 60 * 24 - s.Require().Equal(govparams.ExpeditedVotingPeriod.Seconds(), newExpeditedVotingPeriod.Seconds()) - s.Require().Equal(govparams.ExpeditedThreshold, "0.75") - }, - }, - { - "0 shares, jailed", - func() { - upgradeSetup(math.LegacyZeroDec(), math.LegacyZeroDec(), true) - }, - func() { - dummyUpgrade(s) - s.Require().NotPanics(func() { - _, err := s.preModule.PreBlock(s.Ctx) - s.Require().NoError(err) - }) - - }, - func() { - dels, _ := s.App.StakingKeeper.GetAllDelegations(s.Ctx) - for _, del := range dels { - s.Require().NotZero(del.Shares) - } - - }, - }, - { - "test distribution reward invariants patched", - func() { - upgradeSetup(math.LegacyOneDec(), math.LegacyNewDecWithPrec(1, 3), true) // 1% slash - }, - func() { - dummyUpgrade(s) - s.Require().NotPanics(func() { - _, err := s.preModule.PreBlock(s.Ctx) - s.Require().NoError(err) - }) - - }, - func() { - dels, _ := s.App.StakingKeeper.GetAllDelegations(s.Ctx) - for _, del := range dels { - s.Require().NotZero(del.Shares) - } - }, - }, - } - - for _, tc := range testCases { - s.Run(fmt.Sprintf("Case %s", tc.name), func() { - s.SetupTest() // reset - - tc.pre_upgrade() - tc.upgrade() - tc.post_upgrade() - }) - } -} - -func dummyUpgrade(s *UpgradeTestSuite) { - s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight - 1) - plan := upgradetypes.Plan{Name: "v021", Height: dummyUpgradeHeight} - err := s.App.UpgradeKeeper.ScheduleUpgrade(s.Ctx, plan) - s.Require().NoError(err) - _, err = s.App.UpgradeKeeper.GetUpgradePlan(s.Ctx) - s.Require().NoError(err) - - s.Ctx = s.Ctx.WithHeaderInfo(header.Info{Height: dummyUpgradeHeight, Time: s.Ctx.BlockTime().Add(time.Second)}).WithBlockHeight(dummyUpgradeHeight) -} diff --git a/app/upgrades/v021/upgrades.go b/app/upgrades/v021/upgrades.go deleted file mode 100644 index b895e865..00000000 --- a/app/upgrades/v021/upgrades.go +++ /dev/null @@ -1,370 +0,0 @@ -package v021 - -import ( - "context" - "fmt" - "time" - - "cosmossdk.io/math" - upgradetypes "cosmossdk.io/x/upgrade/types" - "github.com/bitsongofficial/go-bitsong/app/keepers" - "github.com/bitsongofficial/go-bitsong/app/upgrades" - cadencetypes "github.com/bitsongofficial/go-bitsong/x/cadence/types" - sca "github.com/bitsongofficial/go-bitsong/x/smart-account/types" - cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - icqkeeper "github.com/cosmos/ibc-apps/modules/async-icq/v8/keeper" - wasmlctypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" - - icqtypes "github.com/cosmos/ibc-apps/modules/async-icq/v8/types" -) - -func CreateV021UpgradeHandler(mm *module.Manager, configurator module.Configurator, bpm upgrades.BaseAppParamManager, k *keepers.AppKeepers) upgradetypes.UpgradeHandler { - return func(context context.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - sdkCtx := sdk.UnwrapSDKContext(context) - logger := sdkCtx.Logger().With("upgrade", UpgradeName) - - // Run migrations first - logger.Info(fmt.Sprintf("pre migrate version map: %v", vm)) - versionMap, err := mm.RunMigrations(sdkCtx, configurator, vm) - if err != nil { - return nil, err - } - - // reapplies v018 patch after removing delegations with 0 power, letting us revert back upstream to cosmos-sdk library - vals, _ := k.StakingKeeper.GetAllValidators(sdkCtx) - for _, val := range vals { - valAddr := sdk.ValAddress(val.OperatorAddress) - dels, _ := k.StakingKeeper.GetValidatorDelegations(sdkCtx, valAddr) - for _, del := range dels { - if del.Shares.LTE(math.LegacyZeroDec()) { - sdkCtx.Logger().Info(fmt.Sprintf("removing negative delegation from store: %q %v", val.GetOperator(), del.GetDelegatorAddr())) // remove reward information from distribution store - if exists, _ := k.DistrKeeper.HasDelegatorStartingInfo(sdkCtx, valAddr, sdk.AccAddress(del.DelegatorAddress)); exists { - sdkCtx.Logger().Info("delegation info found, deleting...") - if err := k.DistrKeeper.DeleteDelegatorStartingInfo(sdkCtx, valAddr, sdk.AccAddress(del.DelegatorAddress)); err != nil { - return nil, err - } - sdkCtx.Logger().Info("removed negative delegation from store successfully!") - } - // remove delegation from staking store - sdkCtx.Logger().Info("~-~-~~-~-~~-~-~~-~-~~-~-~~-~-~~-~-~") - sdkCtx.Logger().Info("removing negative delegation from staking keeper store") - if err := k.StakingKeeper.RemoveDelegation(sdkCtx, del); err != nil { - return nil, err - } else { - sdkCtx.Logger().Info("removed negative delegation store value successfully!") - } - } else { - // check if we need to patch distribution by manually claiming rewards for any impaced delegations once again... - hasInfo, err := k.DistrKeeper.HasDelegatorStartingInfo(sdkCtx, sdk.ValAddress(valAddr), sdk.AccAddress(del.GetDelegatorAddr())) - if err != nil { - return nil, err - } - if !hasInfo { - sdkCtx.Logger().Info(fmt.Sprintf("delegation does not have starting info: val: %q, del: %v", val.GetOperator(), del.GetDelegatorAddr())) - continue - } - // calculate rewards - endingPeriod, err := k.DistrKeeper.IncrementValidatorPeriod(sdkCtx, val) - if err != nil { - return nil, err - } - rewardsRaw, patched := CustomCalculateDelegationRewards(sdkCtx, k, val, del, endingPeriod) - - outstanding, err := k.DistrKeeper.GetValidatorOutstandingRewardsCoins(sdkCtx, sdk.ValAddress(del.GetValidatorAddr())) - if err != nil { - return nil, err - } - - if patched { - err = V018ManualDelegationRewardsPatch(sdkCtx, rewardsRaw, outstanding, k, val, del, endingPeriod) - if err != nil { - return nil, err - } - } - } - } - } - - /* ensure no delegations exist without starting info*/ - allVals, err := k.StakingKeeper.GetAllValidators(sdkCtx) - if err != nil { - panic(err) - } - for _, val := range allVals { - /* ensure all rewards are patched */ - dels, err := k.StakingKeeper.GetValidatorDelegations(sdkCtx, sdk.ValAddress(val.OperatorAddress)) - if err != nil { - panic(err) - } - for _, del := range dels { - endingPeriod, err := k.DistrKeeper.IncrementValidatorPeriod(sdkCtx, val) - if err != nil { - panic(err) - } - /* will error if still broken */ - _, err = k.DistrKeeper.CalculateDelegationRewards(sdkCtx, val, del, endingPeriod) - if err != nil { - panic(err) - } - } - } - - // setup vote extension - consensusParams, err := k.ConsensusParamsKeeper.ParamsStore.Get(sdkCtx) - if err != nil { - return nil, err - } - - // TODO: these are values specific to 1.5s block time. We may need to tune this to bitsongs desired blocktime: - // Update consensus params in order to safely enable comet pruning - // consensusParams.Evidence.MaxAgeNumBlocks = 1_000_000 - // consensusParams.Evidence.MaxAgeDuration = time.Second * 1209600 - err = k.ConsensusParamsKeeper.ParamsStore.Set(sdkCtx, cmtproto.ConsensusParams{ - Block: consensusParams.Block, - Evidence: consensusParams.Evidence, - Validator: consensusParams.Validator, - Version: consensusParams.Version, - Abci: &cmtproto.ABCIParams{ - VoteExtensionsEnableHeight: sdkCtx.BlockHeight() + 1, - }, - }) - if err != nil { - return nil, err - } - // interchain query params (ICQ) - setICQParams(sdkCtx, k.ICQKeeper) - - // set x/cadence params - cadenceParams := cadencetypes.DefaultParams() - cadenceParams.ContractGasLimit = 1000000 // 1mb - if err := k.CadenceKeeper.SetParams(sdkCtx, cadenceParams); err != nil { - return nil, err - } - - // Set the x/smart-account authenticator params in the store - authenticatorParams := sca.DefaultParams() - authenticatorParams.CircuitBreakerControllers = append(authenticatorParams.CircuitBreakerControllers, CircuitBreakerController) - k.SmartAccountKeeper.SetParams(sdkCtx, authenticatorParams) - - // set wasm client as an allowed client. - // https://github.com/cosmos/ibc-go/blob/main/docs/docs/03-light-clients/04-wasm/03-integration.md - // ibcCLientParams := ibcclient.DefaultParams() - params := k.IBCKeeper.ClientKeeper.GetParams(sdkCtx) - params.AllowedClients = append(params.AllowedClients, wasmlctypes.Wasm) - k.IBCKeeper.ClientKeeper.SetParams(sdkCtx, params) - - // configure expidited proposals - govparams, _ := k.GovKeeper.Params.Get(sdkCtx) - govparams.ExpeditedMinDeposit = sdk.NewCoins(sdk.NewCoin("ubtsg", math.NewInt(10000000000))) // 10K - newExpeditedVotingPeriod := time.Minute * 60 * 24 // 1 DAY - govparams.ExpeditedVotingPeriod = &newExpeditedVotingPeriod - govparams.ExpeditedThreshold = "0.75" // 75% voting threshold - k.GovKeeper.Params.Set(sdkCtx, govparams) - - logger.Info(fmt.Sprintf("post migrate version map: %v", versionMap)) - return versionMap, err - } -} - -func setICQParams(ctx sdk.Context, icqKeeper *icqkeeper.Keeper) { - icqparams := icqtypes.DefaultParams() - // icqparams.AllowQueries = wasmbinding.GetStargateWhitelistedPaths() - // Adding SmartContractState query to allowlist - icqparams.AllowQueries = append(icqparams.AllowQueries, "/cosmwasm.wasm.v1.Query/SmartContractState") - //nolint:errcheck - icqKeeper.SetParams(ctx, icqparams) -} -func V018ManualDelegationRewardsPatch(sdkCtx sdk.Context, rewardsRaw, outstanding sdk.DecCoins, k *keepers.AppKeepers, val stakingtypes.ValidatorI, del stakingtypes.DelegationI, endingPeriod uint64) error { - - valAddr := del.GetValidatorAddr() - // defensive edge case may happen on the very final digits - // of the decCoins due to operation order of the distribution mechanism. - rewards := rewardsRaw.Intersect(outstanding) - if !rewards.Equal(rewardsRaw) { - logger := k.DistrKeeper.Logger(sdkCtx) - logger.Info( - "rounding error withdrawing rewards from validator", - "delegator", del.GetDelegatorAddr(), - "validator", val.GetOperator(), - "got", rewards.String(), - "expected", rewardsRaw.String(), - ) - } - - // truncate reward dec coins, return remainder to community pool - finalRewards, remainder := rewards.TruncateDecimal() - - // add coins to user account - if !finalRewards.IsZero() { - withdrawAddr, err := k.DistrKeeper.GetDelegatorWithdrawAddr(sdkCtx, sdk.AccAddress(del.GetDelegatorAddr())) - if err != nil { - return err - } - err = k.BankKeeper.SendCoinsFromModuleToAccount(sdkCtx, distrtypes.ModuleName, withdrawAddr, finalRewards) - if err != nil { - return err - } - sdkCtx.Logger().Info(fmt.Sprintf("Rewards %v manually claimed for: %q", finalRewards, del.GetDelegatorAddr())) - } - - // update the outstanding rewards and the community pool only if the - // transaction was successful - k.DistrKeeper.SetValidatorOutstandingRewards(sdkCtx, sdk.ValAddress(valAddr), distrtypes.ValidatorOutstandingRewards{Rewards: outstanding.Sub(rewards)}) - feePool, err := k.DistrKeeper.FeePool.Get(sdkCtx) - if err != nil { - return err - } - feePool.CommunityPool = feePool.CommunityPool.Add(remainder...) - err = k.DistrKeeper.FeePool.Set(sdkCtx, feePool) - if err != nil { - return err - } - - // decrement reference count of starting period - startingInfo, err := k.DistrKeeper.GetDelegatorStartingInfo(sdkCtx, sdk.ValAddress(del.GetValidatorAddr()), sdk.AccAddress(del.GetDelegatorAddr())) - if err != nil { - return err - } - startingPeriod := startingInfo.PreviousPeriod - customDecrementReferenceCount(sdkCtx, k, sdk.ValAddress(del.GetValidatorAddr()), startingPeriod) - - // remove delegator starting info - k.DistrKeeper.DeleteDelegatorStartingInfo(sdkCtx, sdk.ValAddress(del.GetValidatorAddr()), sdk.AccAddress(del.GetDelegatorAddr())) - - if finalRewards.IsZero() { - // Note, we do not call the NewCoins constructor as we do not want the zero - // coin removed. - sdkCtx.Logger().Info("~=~=~=~=~~=~=~=~=~~=~=~=~=~~=~=~=~=~~=~=~=~=~~=~=~=~=~~=~=~=~=~~=~=~=~=~~=~=~=~=~~=~=~=~=~") - sdkCtx.Logger().Info(fmt.Sprintf("No final rewards: %q %v", val.GetOperator(), del.GetDelegatorAddr())) - } - - // reinitialize the delegation - // period has already been incremented - we want to store the period ended by this delegation action - vcr, _ := k.DistrKeeper.GetValidatorCurrentRewards(sdkCtx, sdk.ValAddress(valAddr)) - previousPeriod := vcr.Period - 1 - // increment reference count for the period we're going to track - incrementReferenceCount(sdkCtx, k, sdk.ValAddress(valAddr), previousPeriod) - - validator, _ := k.StakingKeeper.Validator(sdkCtx, sdk.ValAddress(valAddr)) - delegation, _ := k.StakingKeeper.Delegation(sdkCtx, sdk.AccAddress(del.GetDelegatorAddr()), sdk.ValAddress(valAddr)) - - // calculate delegation stake in tokens - // we don't store directly, so multiply delegation shares * (tokens per share) - // note: necessary to truncate so we don't allow withdrawing more rewards than owed - stake := validator.TokensFromSharesTruncated(delegation.GetShares()) - - // save new delegator starting info to kv store - k.DistrKeeper.SetDelegatorStartingInfo(sdkCtx, sdk.ValAddress(valAddr), sdk.AccAddress(del.GetDelegatorAddr()), distrtypes.NewDelegatorStartingInfo(previousPeriod, stake, uint64(sdkCtx.BlockHeight()))) - - return nil -} - -func CustomCalculateDelegationRewards(ctx sdk.Context, k *keepers.AppKeepers, val stakingtypes.ValidatorI, del stakingtypes.DelegationI, endingPeriod uint64) (rewards sdk.DecCoins, patched bool) { - patched = false - // fetch starting info for delegation - startingInfo, err := k.DistrKeeper.GetDelegatorStartingInfo(ctx, sdk.ValAddress(del.GetValidatorAddr()), sdk.AccAddress(del.GetDelegatorAddr())) - if err != nil { - return - } - if startingInfo.Height == uint64(ctx.BlockHeight()) { - // started this height, no rewards yet - return - } - - startingPeriod := startingInfo.PreviousPeriod - stake := startingInfo.Stake - startingHeight := startingInfo.Height - endingHeight := uint64(ctx.BlockHeight()) - if endingHeight > startingHeight { - k.DistrKeeper.IterateValidatorSlashEventsBetween(ctx, sdk.ValAddress(del.GetValidatorAddr()), startingHeight, endingHeight, - func(height uint64, event distrtypes.ValidatorSlashEvent) (stop bool) { - endingPeriod := event.ValidatorPeriod - if endingPeriod > startingPeriod { - rewards = rewards.Add(customCalculateDelegationRewardsBetween(ctx, k, val, startingPeriod, endingPeriod, stake)...) - // Note: It is necessary to truncate so we don't allow withdrawing - // more rewards than owed. - stake = stake.MulTruncate(math.LegacyOneDec().Sub(event.Fraction)) - startingPeriod = endingPeriod - } - return false - }, - ) - } - - currentStake := val.TokensFromShares(del.GetShares()) - fmt.Printf("del: %q", del.GetDelegatorAddr()) - fmt.Printf("val: %q", del.GetValidatorAddr()) - fmt.Printf("stake: %q", stake) - fmt.Printf("currentStake: %q", currentStake) - if stake.GT(currentStake) { - marginOfErr := currentStake.Mul(math.LegacyNewDecWithPrec(50, 3)) // 5.0% - if stake.LTE(currentStake.Add(marginOfErr)) { - stake = currentStake - patched = true - } else { - panic(fmt.Sprintln("current stake is not delgator from slashed validator, and is more than maximum margin of error")) - } - } - // calculate rewards for final period - rewards = rewards.Add(customCalculateDelegationRewardsBetween(ctx, k, val, startingPeriod, endingPeriod, stake)...) - return rewards, patched -} - -func customCalculateDelegationRewardsBetween(ctx sdk.Context, k *keepers.AppKeepers, val stakingtypes.ValidatorI, - startingPeriod, endingPeriod uint64, stake math.LegacyDec, -) (rewards sdk.DecCoins) { - // sanity check - if startingPeriod > endingPeriod { - panic("startingPeriod cannot be greater than endingPeriod") - } - - // sanity check - if stake.IsNegative() { - panic("stake should not be negative") - } - - // return staking * (ending - starting) - starting, _ := k.DistrKeeper.GetValidatorHistoricalRewards(ctx, sdk.ValAddress(val.GetOperator()), startingPeriod) - ending, _ := k.DistrKeeper.GetValidatorHistoricalRewards(ctx, sdk.ValAddress(val.GetOperator()), endingPeriod) - difference := ending.CumulativeRewardRatio.Sub(starting.CumulativeRewardRatio) - if difference.IsAnyNegative() { - panic("negative rewards should not be possible") - } - // note: necessary to truncate so we don't allow withdrawing more rewards than owed - rewards = difference.MulDecTruncate(stake) - return -} - -// decrement the reference count for a historical rewards value, and delete if zero references remain -func customDecrementReferenceCount(ctx sdk.Context, k *keepers.AppKeepers, valAddr sdk.ValAddress, period uint64) { - historical, _ := k.DistrKeeper.GetValidatorHistoricalRewards(ctx, valAddr, period) - if historical.ReferenceCount == 0 { - panic("cannot set negative reference count") - } - historical.ReferenceCount-- - if historical.ReferenceCount == 0 { - - k.DistrKeeper.DeleteValidatorHistoricalReward(ctx, valAddr, period) - } else { - k.DistrKeeper.SetValidatorHistoricalRewards(ctx, valAddr, period, historical) - } -} - -// increment the reference count for a historical rewards value -func incrementReferenceCount(ctx sdk.Context, k *keepers.AppKeepers, valAddr sdk.ValAddress, period uint64) { - historical, _ := k.DistrKeeper.GetValidatorHistoricalRewards(ctx, valAddr, period) - if historical.ReferenceCount > 2 { - panic("reference count should never exceed 2") - } - historical.ReferenceCount++ - k.DistrKeeper.SetValidatorHistoricalRewards(ctx, valAddr, period, historical) -} - -// calculate the token worth of provided shares, truncated -func CustommTokensFromSharesTruncated(t math.Int, ds math.LegacyDec, shares math.LegacyDec) math.LegacyDec { - return (shares.MulInt(t)).QuoTruncate(ds) -} diff --git a/app/upgrades/v022/constants.go b/app/upgrades/v022/constants.go deleted file mode 100644 index f42ea7d8..00000000 --- a/app/upgrades/v022/constants.go +++ /dev/null @@ -1,60 +0,0 @@ -package v022 - -import ( - store "cosmossdk.io/store/types" - "github.com/bitsongofficial/go-bitsong/app/upgrades" - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - protocolpooltypes "github.com/cosmos/cosmos-sdk/x/protocolpool/types" -) - -const ( - UpgradeName = "v022" - PatchVal1 = "bitsongvaloper1qxw4fjged2xve8ez7nu779tm8ejw92rv0vcuqr" - PatchVal2 = "bitsongvaloper1xnc32z84cc9vwftvv4w0v02a2slug3tjt6qyct" -) - -var Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateV022UpgradeHandler, - StoreUpgrades: store.StoreUpgrades{Added: []string{ - protocolpooltypes.StoreKey, - }, Deleted: []string{}}, -} - -type ConditionalJSON struct { - PatchDelegationCount uint - PatchedHistRewards []distrtypes.ValidatorHistoricalRewardsRecord - ZeroSharesDelegation []ZeroSharesDelegation - PatchedDelegation []PatchedDelegation - NilDelegationCalculation []NilDelegationCalculation - DistSlashStore DistrSlashObject -} - -type DistrSlashObject struct { - SlashEventCount uint64 `json:"total_slashes"` - DistrSlashEvent []map[string][]Slash `json:"events"` -} -type DistrSlashEvent struct { - Val string `json:"val_addr"` - SlashEventCount uint64 `json:"total"` - Slashes []Slash `json:"slash_events"` -} -type Slash struct { - Height uint64 `json:"height"` - Fraction string `json:"fraction"` - Period uint64 `json:"period"` -} - -type ZeroSharesDelegation struct { - OperatorAddress string `json:"val_addr"` - DelegatorAddress string `json:"del_addr"` -} -type PatchedDelegation struct { - OperatorAddress string `json:"val_addr"` - DelegatorAddress string `json:"del_addr"` - PatchedDelegation string `json:"patch"` -} -type NilDelegationCalculation struct { - OperatorAddress string `json:"val_addr"` - DelegatorAddress string `json:"del_addr"` -} diff --git a/app/upgrades/v022/upgrades.go b/app/upgrades/v022/upgrades.go deleted file mode 100644 index 92c52c09..00000000 --- a/app/upgrades/v022/upgrades.go +++ /dev/null @@ -1,515 +0,0 @@ -package v022 - -import ( - "context" - "encoding/json" - "fmt" - "os" - - "cosmossdk.io/math" - upgradetypes "cosmossdk.io/x/upgrade/types" - "github.com/bitsongofficial/go-bitsong/app/keepers" - "github.com/bitsongofficial/go-bitsong/app/upgrades" - - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" -) - -func CreateV022UpgradeHandler(mm *module.Manager, configurator module.Configurator, bpm upgrades.BaseAppParamManager, k *keepers.AppKeepers) upgradetypes.UpgradeHandler { - return func(context context.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - - sdkCtx := sdk.UnwrapSDKContext(context) - logger := sdkCtx.Logger().With("upgrade", UpgradeName) - - // Run migrations first - logger.Info(fmt.Sprintf("pre migrate version map: %v", vm)) - versionMap, err := mm.RunMigrations(sdkCtx, configurator, vm) - if err != nil { - return nil, err - } - - // apply logic patch - err = CustomV022PatchLogic(sdkCtx, k, false) - if err != nil { - return nil, err - } - logger.Info(fmt.Sprintf("post migrate version map: %v", versionMap)) - return versionMap, err - } -} - -// / Fetches all validators from x/staking, and query rewards for each of their delegations. -func CustomV022PatchLogic(ctx sdk.Context, k *keepers.AppKeepers, simulated bool) error { - - err := CustomValPatch(ctx, k, simulated) - if err != nil { - return err - } - - return nil -} - -// withdraws all rewards to delegations for this val. -func CustomValPatch(sdkCtx sdk.Context, k *keepers.AppKeepers, simulated bool) error { - condJSON := ConditionalJSON{ - PatchDelegationCount: 0, - PatchedHistRewards: make([]distrtypes.ValidatorHistoricalRewardsRecord, 0), - PatchedDelegation: make([]PatchedDelegation, 0), - ZeroSharesDelegation: make([]ZeroSharesDelegation, 0), - NilDelegationCalculation: make([]NilDelegationCalculation, 0), - DistSlashStore: DistrSlashObject{}, - } - - allVals, err := k.StakingKeeper.GetAllValidators(sdkCtx) - if err != nil { - return err - } - - for _, val := range allVals { - valAddr, err := k.StakingKeeper.ValidatorAddressCodec().StringToBytes(val.OperatorAddress) - if err != nil { - return err - } - - dels, err := k.StakingKeeper.GetValidatorDelegations(sdkCtx, sdk.ValAddress(valAddr)) - if err != nil { - return err - } - /* patch all delegators rewards */ - for _, del := range dels { - // if delegation has 0 shares, remove from store: https://github.com/permissionlessweb/bitsong-cosmos-sdk/blob/92e7f67f9601e5f2dc7b1daebd24e8a37efbcc72/x/staking/keeper/delegation.go#L1026 - if del.GetShares().LTE(math.LegacyZeroDec()) { - // remove from store - err = k.StakingKeeper.RemoveDelegation(sdkCtx, stakingtypes.NewDelegation(del.GetDelegatorAddr(), del.GetValidatorAddr(), del.GetShares())) - condJSON.ZeroSharesDelegation = append(condJSON.ZeroSharesDelegation, ZeroSharesDelegation{ - OperatorAddress: del.ValidatorAddress, - DelegatorAddress: del.DelegatorAddress, - }) - if err != nil { - return err - } - continue - } - val, err := sdk.ValAddressFromBech32(del.ValidatorAddress) - if err != nil { - return err - } - delAddr, err := k.AccountKeeper.AddressCodec().StringToBytes(del.GetDelegatorAddr()) - if err != nil { - return err - } - validator, err := k.StakingKeeper.Validator(sdkCtx, val) - if err != nil { - return err - } - - // end current period and calculate rewards - endingPeriod, err := k.DistrKeeper.IncrementValidatorPeriod(sdkCtx, validator) - if err != nil { - return err - } - - delegationRewards, patched := CustomCalculateDelegationRewards(sdkCtx, k, validator, del, endingPeriod) - if patched { - condJSON.PatchDelegationCount++ - condJSON.PatchedDelegation = append(condJSON.PatchedDelegation, PatchedDelegation{ - OperatorAddress: del.ValidatorAddress, - DelegatorAddress: del.DelegatorAddress, - PatchedDelegation: delegationRewards.AmountOf("ubtsg").String(), - }) - if delegationRewards == nil { - condJSON.NilDelegationCalculation = append(condJSON.NilDelegationCalculation, NilDelegationCalculation{ - OperatorAddress: del.ValidatorAddress, - DelegatorAddress: del.DelegatorAddress, - }) - } - _, err := CustomWithdrawDelegationRewards(sdkCtx, k, validator, del, endingPeriod) - - if err != nil { - return err - - } - - // reinitialize the delegation - err = customInitializeDelegation(sdkCtx, *k, val, delAddr) - if err != nil { - return err - } - } - - } - - if val.OperatorAddress == PatchVal1 || val.OperatorAddress == PatchVal2 { - rewards, err := k.DistrKeeper.GetValidatorCurrentRewards(sdkCtx, valAddr) - if err != nil { - return err - } - fmt.Printf("rewards: %v\n", rewards) - // set ghost slash event - err = k.DistrKeeper.SetValidatorSlashEvent(sdkCtx, valAddr, 1, rewards.Period, distrtypes.NewValidatorSlashEvent(rewards.Period, math.LegacySmallestDec())) - if err != nil { - return err - } - } - } - - k.DistrKeeper.IterateValidatorHistoricalRewards(sdkCtx, - func(val sdk.ValAddress, period uint64, rewards distrtypes.ValidatorHistoricalRewards) (stop bool) { - if val.String() == PatchVal1 || val.String() == PatchVal2 { - // print to logs and update validator reward reference to 1 - condJSON.PatchedHistRewards = append(condJSON.PatchedHistRewards, distrtypes.ValidatorHistoricalRewardsRecord{ - ValidatorAddress: val.String(), - Period: period, - Rewards: rewards, - }) - // update reference count to 1 - // rewards.ReferenceCount = 1 - // err := k.DistrKeeper.SetValidatorHistoricalRewards(sdkCtx, val, period, rewards) - // if err != nil { - // panic(err) - // } - } - return false - }, - ) - - // count slashes for all current validators - // Create a map to track validators and their slash events - validatorSlashMap := make(map[string][]Slash) - slashCount := uint64(0) - k.DistrKeeper.IterateValidatorSlashEvents(sdkCtx, - func(val sdk.ValAddress, height uint64, vse distrtypes.ValidatorSlashEvent) (stop bool) { - valAddr := val.String() - event := Slash{ - Height: height, - Fraction: vse.Fraction.String(), - Period: vse.ValidatorPeriod, - } - validatorSlashMap[valAddr] = append(validatorSlashMap[valAddr], event) - slashCount++ - - return false - }) - - condJSON.DistSlashStore.DistrSlashEvent = make([]map[string][]Slash, 0, len(validatorSlashMap)) - for valAddr, slashes := range validatorSlashMap { - condJSON.DistSlashStore.DistrSlashEvent = append(condJSON.DistSlashStore.DistrSlashEvent, - map[string][]Slash{valAddr: slashes}) - } - condJSON.DistSlashStore.SlashEventCount = slashCount - - PrintConditionalJsonLogs(condJSON, "upgradeHandlerDebug.json") - - return nil -} - -func PrintConditionalJsonLogs(condJSON ConditionalJSON, fileName string) error { - // Marshal the ConditionalJSON object to JSON - jsonBytes, err := json.MarshalIndent(condJSON, "", " ") - if err != nil { - fmt.Printf("Failed to marshal and indent conditional logs, continuing with upgrade... %s\n", fileName) - } - // Write the JSON to a file - err = os.WriteFile(fileName, jsonBytes, 0644) - if err != nil { - fmt.Printf("Failed to write debugging log, continuing with upgrade... %s\n", fileName) - } - fmt.Printf("Wrote conditionals to %s\n", fileName) - return nil -} - -func CustomCalculateDelegationRewards(ctx context.Context, k *keepers.AppKeepers, val stakingtypes.ValidatorI, del stakingtypes.DelegationI, endingPeriod uint64) (rewards sdk.DecCoins, patched bool) { - patched = false - // fetch starting info for delegation - addrCodec := k.AccountKeeper.AddressCodec() - delAddr, err := addrCodec.StringToBytes(del.GetDelegatorAddr()) - if err != nil { - panic(err) - } - - valAddr, err := k.StakingKeeper.ValidatorAddressCodec().StringToBytes(del.GetValidatorAddr()) - if err != nil { - panic(err) - } - startingInfo, err := k.DistrKeeper.GetDelegatorStartingInfo(ctx, sdk.ValAddress(valAddr), sdk.AccAddress(delAddr)) - if err != nil { - panic(err) - } - - sdkCtx := sdk.UnwrapSDKContext(ctx) - if startingInfo.Height == uint64(sdkCtx.BlockHeight()) { - // started this height, no rewards yet - return - } - - startingPeriod := startingInfo.PreviousPeriod - stake := startingInfo.Stake - - startingHeight := startingInfo.Height - endingHeight := uint64(sdkCtx.BlockHeight()) - if endingHeight > startingHeight { - k.DistrKeeper.IterateValidatorSlashEventsBetween(ctx, valAddr, startingHeight, endingHeight, - func(height uint64, event distrtypes.ValidatorSlashEvent) (stop bool) { - endingPeriod := event.ValidatorPeriod - if endingPeriod > startingPeriod { - rewards = rewards.Add(customCalculateDelegationRewardsBetween(sdkCtx, k, val, startingPeriod, endingPeriod, stake)...) - // Note: It is necessary to truncate so we don't allow withdrawing - // more rewards than owed. - stake = stake.MulTruncate(math.LegacyOneDec().Sub(event.Fraction)) - startingPeriod = endingPeriod - } - return false - }, - ) - } - - currentStake := val.TokensFromShares(del.GetShares()) - fmt.Printf("currentStake: %v\n", currentStake) - fmt.Printf("stake: %v\n", stake) - - if stake.GT(currentStake) { - marginOfErr := currentStake.Mul(math.LegacyNewDecWithPrec(95, 3)) // 0.095 - if stake.LTE(currentStake.Add(marginOfErr)) { - fmt.Printf("PATCH APPLIED TO DELEGATOR: %v\n FOR VALIDATOR: %v\n", del.GetDelegatorAddr(), del.GetValidatorAddr()) - fmt.Printf("distribution store: %v\n", stake) - fmt.Printf("staking store: %v\n", currentStake) - fmt.Printf("startingInfo.PreviousPeriod: %v\n", startingInfo.PreviousPeriod) - stake = currentStake - patched = true - } else { - fmt.Printf("marginOfErr: %v\n", marginOfErr) - panic(fmt.Sprintf("calculated final stake for delegator %s,to validator %s, greater than current stake"+ - "\n\tfinal stake:\t%s"+ - "\n\tcurrent stake:\t%s", - del.GetDelegatorAddr(), del.GetValidatorAddr(), stake, currentStake)) - } - } - // calculate rewards for final period - rewards = rewards.Add(customCalculateDelegationRewardsBetween(ctx, k, val, startingPeriod, endingPeriod, stake)...) - return rewards, patched -} - -func CustomWithdrawDelegationRewards(ctx context.Context, k *keepers.AppKeepers, val stakingtypes.ValidatorI, del stakingtypes.DelegationI, endingPeriod uint64) (sdk.Coins, error) { - addrCodec := k.AccountKeeper.AddressCodec() - delAddr, err := addrCodec.StringToBytes(del.GetDelegatorAddr()) - if err != nil { - return nil, err - } - valAddr, err := k.StakingKeeper.ValidatorAddressCodec().StringToBytes(del.GetValidatorAddr()) - if err != nil { - return nil, err - } - // check existence of delegator starting info - hasInfo, err := k.DistrKeeper.HasDelegatorStartingInfo(ctx, sdk.ValAddress(valAddr), sdk.AccAddress(delAddr)) - if err != nil { - return nil, err - } - if !hasInfo { - return nil, distrtypes.ErrEmptyDelegationDistInfo - } - - // custom calc reward for use elsewhere - customCalculatedrewards, patched := CustomCalculateDelegationRewards(ctx, k, val, del, endingPeriod) - if !patched { - panic("applying patch to delegation that should not have been patched, panic!") - } - outstanding, err := k.DistrKeeper.GetValidatorOutstandingRewardsCoins(ctx, sdk.ValAddress(valAddr)) - if err != nil { - return nil, err - } - // defensive edge case may happen on the very final digits - // of the decCoins due to operation order of the distribution mechanism. - rewards := customCalculatedrewards.Intersect(outstanding) - if !rewards.Equal(customCalculatedrewards) { - logger := k.DistrKeeper.Logger(ctx) - logger.Info( - "rounding error withdrawing rewards from validator", - "delegator", del.GetDelegatorAddr(), - "validator", val.GetOperator(), - "got", rewards.String(), - "expected", customCalculatedrewards.String(), - ) - } - - // truncate reward dec coins, return remainder to community pool - finalRewards, remainder := rewards.TruncateDecimal() - // add coins to user account - if !finalRewards.IsZero() { - withdrawAddr, err := k.DistrKeeper.GetDelegatorWithdrawAddr(ctx, delAddr) - if err != nil { - return nil, err - } - - err = k.BankKeeper.SendCoinsFromModuleToAccount(ctx, distrtypes.ModuleName, withdrawAddr, finalRewards) - - if err != nil { - senderAddr := k.AccountKeeper.GetModuleAddress(distrtypes.ModuleName) - distrBal := k.BankKeeper.GetAllBalances(ctx, senderAddr) - fmt.Printf("distrBal: %v\n", distrBal) - fmt.Printf("delAddr: %v\n", del.GetDelegatorAddr()) - fmt.Printf("senderAddr.String(): %v\n", senderAddr.String()) - // panic("distribution module has less than what it should have") - return nil, err - } - } - - // update the outstanding rewards and the community pool only if the - // transaction was successful - err = k.DistrKeeper.SetValidatorOutstandingRewards(ctx, sdk.ValAddress(valAddr), distrtypes.ValidatorOutstandingRewards{Rewards: outstanding.Sub(rewards)}) - if err != nil { - return nil, err - } - - feePool, err := k.DistrKeeper.FeePool.Get(ctx) - if err != nil { - return nil, err - } - - feePool.CommunityPool = feePool.CommunityPool.Add(remainder...) - err = k.DistrKeeper.FeePool.Set(ctx, feePool) - if err != nil { - return nil, err - } - // decrement reference count of starting period - startingInfo, err := k.DistrKeeper.GetDelegatorStartingInfo(ctx, sdk.ValAddress(valAddr), sdk.AccAddress(delAddr)) - if err != nil { - return nil, err - } - startingPeriod := startingInfo.PreviousPeriod - err = customDecrementReferenceCount(ctx, k, sdk.ValAddress(valAddr), startingPeriod) - if err != nil { - return nil, err - } - // remove delegator starting info - err = k.DistrKeeper.DeleteDelegatorStartingInfo(ctx, sdk.ValAddress(valAddr), sdk.AccAddress(delAddr)) - if err != nil { - return nil, err - } - if finalRewards.IsZero() { - baseDenom, _ := sdk.GetBaseDenom() - if baseDenom == "" { - baseDenom = sdk.DefaultBondDenom - } - - // Note, we do not call the NewCoins constructor as we do not want the zero - // coin removed. - finalRewards = sdk.Coins{sdk.NewCoin(baseDenom, math.ZeroInt())} - } - sdkCtx := sdk.UnwrapSDKContext(ctx) - sdkCtx.EventManager().EmitEvent( - sdk.NewEvent( - distrtypes.EventTypeWithdrawRewards, - sdk.NewAttribute(sdk.AttributeKeyAmount, finalRewards.String()), - sdk.NewAttribute(distrtypes.AttributeKeyValidator, val.GetOperator()), - sdk.NewAttribute(distrtypes.AttributeKeyDelegator, del.GetDelegatorAddr()), - ), - ) - - return finalRewards, nil -} - -func customCalculateDelegationRewardsBetween(ctx context.Context, k *keepers.AppKeepers, val stakingtypes.ValidatorI, - startingPeriod, endingPeriod uint64, stake math.LegacyDec, -) (rewards sdk.DecCoins) { - // sanity check - if startingPeriod > endingPeriod { - panic("startingPeriod cannot be greater than endingPeriod") - } - // fmt.Printf("startingPeriod: %v\n", startingPeriod) - // fmt.Printf("endingPeriod: %v\n", endingPeriod) - // sanity check - if stake.IsNegative() { - panic("stake should not be negative") - } - valBz, err := k.StakingKeeper.ValidatorAddressCodec().StringToBytes(val.GetOperator()) - if err != nil { - panic(err) - } - - // return staking * (ending - starting) - starting, err := k.DistrKeeper.GetValidatorHistoricalRewards(ctx, valBz, startingPeriod) - if err != nil { - panic(err) - } - ending, err := k.DistrKeeper.GetValidatorHistoricalRewards(ctx, valBz, endingPeriod) - if err != nil { - panic(err) - } - - difference := ending.CumulativeRewardRatio.Sub(starting.CumulativeRewardRatio) - if difference.IsAnyNegative() { - panic("negative rewards should not be possible") - } - // fmt.Printf("starting: %v\n", ending) - // fmt.Printf("ending: %v\n", starting) - // fmt.Printf("stake: %v\n", stake) - // fmt.Printf("difference: %v\n", difference) - // fmt.Printf("rewards: %v\n", rewards) - // note: necessary to truncate so we don't allow withdrawing more rewards than owed - rewards = difference.MulDecTruncate(stake) - return rewards -} - -// increment the reference count for a historical rewards value -func customIncrementReferenceCount(ctx context.Context, k keepers.AppKeepers, valAddr sdk.ValAddress, period uint64) error { - historical, err := k.DistrKeeper.GetValidatorHistoricalRewards(ctx, valAddr, period) - if err != nil { - return err - } - if historical.ReferenceCount > 2 { - fmt.Printf("valAddr.String(): %v\n", valAddr.String()) - fmt.Printf("historical.ReferenceCount: %v\n", historical.ReferenceCount) - panic("reference count should never exceed 2") - } - historical.ReferenceCount++ - return k.DistrKeeper.SetValidatorHistoricalRewards(ctx, valAddr, period, historical) -} - -// decrement the reference count for a historical rewards value, and delete if zero references remain -func customDecrementReferenceCount(ctx context.Context, k *keepers.AppKeepers, valAddr sdk.ValAddress, period uint64) error { - historical, _ := k.DistrKeeper.GetValidatorHistoricalRewards(ctx, valAddr, period) - if historical.ReferenceCount == 0 { - panic("cannot set negative reference count") - } - historical.ReferenceCount-- - if historical.ReferenceCount == 0 { - return k.DistrKeeper.DeleteValidatorHistoricalReward(ctx, valAddr, period) - } - return k.DistrKeeper.SetValidatorHistoricalRewards(ctx, valAddr, period, historical) - -} - -// initialize starting info for a new delegation -func customInitializeDelegation(ctx context.Context, k keepers.AppKeepers, val sdk.ValAddress, del sdk.AccAddress) error { - // period has already been incremented - we want to store the period ended by this delegation action - valCurrentRewards, err := k.DistrKeeper.GetValidatorCurrentRewards(ctx, val) - if err != nil { - return err - } - previousPeriod := valCurrentRewards.Period - 1 - - // increment reference count for the period we're going to track - err = customIncrementReferenceCount(ctx, k, val, previousPeriod) - if err != nil { - return err - } - - validator, err := k.StakingKeeper.Validator(ctx, val) - if err != nil { - return err - } - - delegation, err := k.StakingKeeper.Delegation(ctx, del, val) - if err != nil { - return err - } - - // calculate delegation stake in tokens - // we don't store directly, so multiply delegation shares * (tokens per share) - // note: necessary to truncate so we don't allow withdrawing more rewards than owed - stake := validator.TokensFromSharesTruncated(delegation.GetShares()) - sdkCtx := sdk.UnwrapSDKContext(ctx) - return k.DistrKeeper.SetDelegatorStartingInfo(ctx, val, del, distrtypes.NewDelegatorStartingInfo(previousPeriod, stake, uint64(sdkCtx.BlockHeight()))) -} diff --git a/app/upgrades/v022/upgrades_test.go b/app/upgrades/v022/upgrades_test.go deleted file mode 100644 index 92ceb33c..00000000 --- a/app/upgrades/v022/upgrades_test.go +++ /dev/null @@ -1,223 +0,0 @@ -package v022_test - -import ( - "fmt" - "testing" - "time" - - "cosmossdk.io/core/appmodule" - "cosmossdk.io/core/header" - "cosmossdk.io/math" - "cosmossdk.io/x/upgrade" - upgradetypes "cosmossdk.io/x/upgrade/types" - apptesting "github.com/bitsongofficial/go-bitsong/app/testing" - addresscodec "github.com/cosmos/cosmos-sdk/codec/address" - "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/distribution/types" - stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" - - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/stretchr/testify/suite" -) - -const dummyUpgradeHeight = 5 - -var testDescription = stakingtypes.NewDescription("test_moniker", "test_identity", "test_website", "test_security_contact", "test_details") - -type UpgradeTestSuite struct { - apptesting.KeeperTestHelper - preModule appmodule.HasPreBlocker -} - -func (s *UpgradeTestSuite) SetupTest() { - s.Setup() - s.preModule = upgrade.NewAppModule(s.App.UpgradeKeeper, addresscodec.NewBech32Codec("bitsong")) -} - -func TestUpgradeTestSuite(t *testing.T) { - suite.Run(t, new(UpgradeTestSuite)) -} - -func (s *UpgradeTestSuite) TestUpgrade() { - upgradeSetup := func(zeroDel bool) { - s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight - 2) - - vals, _ := s.App.StakingKeeper.GetAllValidators(s.Ctx) - for i, val := range vals { - - valAddr, _ := sdk.ValAddressFromBech32(val.OperatorAddress) - val.Tokens = math.LegacyNewDecFromInt(val.Tokens).MulTruncate(math.LegacyOneDec().Sub(math.LegacyNewDecWithPrec(1, 3))).RoundInt() // 1 % slash - //manually set validator historic rewards - s.App.DistrKeeper.SetValidatorHistoricalRewards( - s.Ctx, - valAddr, - 1, - types.NewValidatorHistoricalRewards(sdk.NewDecCoins(sdk.NewDecCoin("ubtsg", math.OneInt())), 2), // set reference to 2 - ) - - err := s.App.StakingKeeper.SetValidator(s.Ctx, val) - s.Require().NoError(err) - // store 0 share delegation to fist validator if test requires - if i == 0 && zeroDel { - s.App.StakingKeeper.SetDelegation(s.Ctx, stakingtypes.NewDelegation(s.TestAccs[0].String(), val.OperatorAddress, math.LegacyZeroDec())) - } - } - - // create another validator with normal state for control - s.controlVal() - - } - - postUpgrade := func(sdk.ValAddress) { - s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight + 1) - - // Verify control validator's rewards remain unchanged - - // withdraw all delegator rewards - dels, err := s.App.StakingKeeper.GetAllDelegations(s.Ctx) - s.Require().NoError(err) - for _, delegation := range dels { - valAddr, err := sdk.ValAddressFromBech32(delegation.ValidatorAddress) - s.Require().NoError(err) - delAddr, err := sdk.AccAddressFromBech32(delegation.DelegatorAddress) - s.Require().NoError(err) - fmt.Println("~~~~~~~~~ POST UPGRADE DEBUG ~~~~~~~~~~~~") - fmt.Printf("delAddr: %v\n", delAddr) - fmt.Printf("valAddr: %v\n", valAddr) - _, err = s.App.DistrKeeper.WithdrawDelegationRewards(s.Ctx, delAddr, valAddr) - s.Require().NoError(err) - } - } - - testCases := []struct { - name string - pre_upgrade func() (sdk.ValAddress, types.ValidatorHistoricalRewards) - upgrade func() - post_upgrade func(sdk.ValAddress, types.ValidatorHistoricalRewards) - }{ - { - "test: missing slash event patched", - func() (sdk.ValAddress, types.ValidatorHistoricalRewards) { - upgradeSetup(false) - controlValAddr, controlRewardsBefore := s.getControlValidatorState() - return controlValAddr, controlRewardsBefore - }, - func() { - dummyUpgrade(s) - s.Require().NotPanics(func() { - _, err := s.preModule.PreBlock(s.Ctx) - s.Require().NoError(err) - }) - - }, - func(controlValAddr sdk.ValAddress, controlRewardsBefore types.ValidatorHistoricalRewards) { - s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight + 1) - - // Verify control validator's rewards remain unchanged - controlRewardsAfter, err := s.App.DistrKeeper.GetValidatorHistoricalRewards(s.Ctx, controlValAddr, 1) - s.Require().NoError(err, "Control validator rewards should still exist after upgrade") - // Compare the control validator's rewards before and after upgrade - s.Require().Equal(controlRewardsBefore.CumulativeRewardRatio, controlRewardsAfter.CumulativeRewardRatio, - "Control validator rewards should be untouched") - }, - }, - { - "test: zero delegation removed from store", - func() (sdk.ValAddress, types.ValidatorHistoricalRewards) { - upgradeSetup(true) - controlValAddr, controlRewardsBefore := s.getControlValidatorState() - return controlValAddr, controlRewardsBefore - }, - func() { - dummyUpgrade(s) - s.Require().NotPanics(func() { - _, err := s.preModule.PreBlock(s.Ctx) - s.Require().NoError(err) - }) - - }, - func(controlValAddr sdk.ValAddress, controlRewardsBefore types.ValidatorHistoricalRewards) { - postUpgrade(controlValAddr) - - }, - }, - } - - for _, tc := range testCases { - s.Run(fmt.Sprintf("Case %s", tc.name), func() { - s.SetupTest() // reset - controlValAddr, controlRewardsBefore := tc.pre_upgrade() - tc.upgrade() - tc.post_upgrade(controlValAddr, controlRewardsBefore) - }) - } -} - -func dummyUpgrade(s *UpgradeTestSuite) { - s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight - 1) - plan := upgradetypes.Plan{Name: "v022", Height: dummyUpgradeHeight} - err := s.App.UpgradeKeeper.ScheduleUpgrade(s.Ctx, plan) - s.Require().NoError(err) - _, err = s.App.UpgradeKeeper.GetUpgradePlan(s.Ctx) - s.Require().NoError(err) - - s.Ctx = s.Ctx.WithHeaderInfo(header.Info{Height: dummyUpgradeHeight, Time: s.Ctx.BlockTime().Add(time.Second)}).WithBlockHeight(dummyUpgradeHeight) -} - -func (s *UpgradeTestSuite) controlVal() { - valPub := secp256k1.GenPrivKey().PubKey() - valAddr := sdk.ValAddress(valPub.Address()) - ZeroCommission := stakingtypes.NewCommissionRates(math.LegacyZeroDec(), math.LegacyZeroDec(), math.LegacyZeroDec()) - selfBond := sdk.NewCoins(sdk.Coin{Amount: math.OneInt(), Denom: "stake"}) - stakingCoin := sdk.Coin{Denom: sdk.DefaultBondDenom, Amount: selfBond[0].Amount} - s.FundAcc(sdk.AccAddress(valAddr), selfBond) - valCreateMsg, err := stakingtypes.NewMsgCreateValidator(valAddr.String(), valPub, stakingCoin, testDescription, ZeroCommission, math.OneInt()) - s.Require().NoError(err) - stakingMsgSvr := stakingkeeper.NewMsgServerImpl(s.App.StakingKeeper) - res, err := stakingMsgSvr.CreateValidator(s.Ctx, valCreateMsg) - fmt.Printf("err: %v\n", err) - s.Require().NoError(err) - s.Require().NotNil(res) - - // set normal rewards - s.App.DistrKeeper.SetValidatorHistoricalRewards( - s.Ctx, - valAddr, - 1, - types.NewValidatorHistoricalRewards(sdk.NewDecCoins(sdk.NewDecCoin("ubtsg", math.NewInt(100))), 2), // set reference to 2 - ) - val, err := s.App.StakingKeeper.GetValidator(s.Ctx, valAddr) - s.Require().NoError(err) - err = s.App.StakingKeeper.SetValidator(s.Ctx, val) -} - -// Helper function to get control validator state -func (s *UpgradeTestSuite) getControlValidatorState() (sdk.ValAddress, types.ValidatorHistoricalRewards) { - // Find the control validator (the one created in controlVal function) - vals, err := s.App.StakingKeeper.GetAllValidators(s.Ctx) - s.Require().NoError(err) - - // The control validator should be the last one we added - var controlValAddr sdk.ValAddress - for _, val := range vals { - // Find the validator that was created in controlVal() - you could add a distinctive - // attribute in controlVal() to make this easier to identify - if val.GetMoniker() == "test_moniker" && val.GetTokens().Equal(math.OneInt()) { - fmt.Printf("val.OperatorAddress: %v\n", val.OperatorAddress) - valAddr, err := sdk.ValAddressFromBech32(val.OperatorAddress) - s.Require().NoError(err) - controlValAddr = valAddr - break - } - } - - s.Require().NotNil(controlValAddr, "Control validator not found") - fmt.Printf("controlValAddr: %v\n", controlValAddr) - - // Get its historical rewards - rewards, found := s.App.DistrKeeper.GetValidatorHistoricalRewards(s.Ctx, controlValAddr, 1) - s.Require().NoError(found, "Control validator rewards should exist") - - return controlValAddr, rewards -} diff --git a/app/upgrades/v023/upgrades.go b/app/upgrades/v023/upgrades.go deleted file mode 100644 index 3cfd0d5b..00000000 --- a/app/upgrades/v023/upgrades.go +++ /dev/null @@ -1,85 +0,0 @@ -package v023 - -import ( - "context" - "fmt" - - upgradetypes "cosmossdk.io/x/upgrade/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/bank/types" - distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - protocolpooltypes "github.com/cosmos/cosmos-sdk/x/protocolpool/types" - - "github.com/bitsongofficial/go-bitsong/app/keepers" - "github.com/bitsongofficial/go-bitsong/app/upgrades" - - "github.com/cosmos/cosmos-sdk/types/module" -) - -func CreateV023UpgradeHandler(mm *module.Manager, configurator module.Configurator, bpm upgrades.BaseAppParamManager, k *keepers.AppKeepers) upgradetypes.UpgradeHandler { - return func(context context.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - - sdkCtx := sdk.UnwrapSDKContext(context) - logger := sdkCtx.Logger().With("upgrade", UpgradeName) - - // Run migrations first - logger.Info(fmt.Sprintf("pre migrate version map: %v", vm)) - versionMap, err := mm.RunMigrations(sdkCtx, configurator, vm) - if err != nil { - return nil, err - } - - // apply logic patch - err = CustomV023PatchLogic(sdkCtx, k) - if err != nil { - return nil, err - } - logger.Info(fmt.Sprintf("post migrate version map: %v", versionMap)) - return versionMap, err - } -} - -// transfer all funds from protocolpool module account to distirbution module account -func CustomV023PatchLogic(ctx sdk.Context, k *keepers.AppKeepers) error { - - // perform patch on both of the accounts the module uses, just to be safe - protocolPoolAddr := protocolpooltypes.ModuleName - protocolPoolEscrowAddr := protocolpooltypes.ProtocolPoolEscrowAccount - - targetModule := distributiontypes.ModuleName - - if err := transferModuleBalance(ctx, k, protocolPoolAddr, targetModule); err != nil { - return err - } - - if err := transferModuleBalance(ctx, k, protocolPoolEscrowAddr, targetModule); err != nil { - return err - } - - return nil -} - -func transferModuleBalance(ctx sdk.Context, k *keepers.AppKeepers, moduleName, targetModule string) error { - moduleAddr := k.AccountKeeper.GetModuleAddress(moduleName) - balances, err := k.BankKeeper.AllBalances(ctx, types.NewQueryAllBalancesRequest(moduleAddr, nil, false)) - if err != nil { - return err - } - - // no need to call bankkeeper if module has no balance - if balances.Balances.Len() == 0 { - return nil - } - // send tokens from module to module - err = k.BankKeeper.SendCoinsFromModuleToModule(ctx, moduleName, targetModule, balances.Balances) - if err != nil { - return err - } - // now we need to update the feepool value (mimics logic used in fundCommunityPool, but we must reimplement due to sending tokens from module to module) - feePool, err := k.DistrKeeper.FeePool.Get(ctx) - if err != nil { - return err - } - feePool.CommunityPool = feePool.CommunityPool.Add(sdk.NewDecCoinsFromCoins(balances.Balances...)...) - return k.DistrKeeper.FeePool.Set(ctx, feePool) -} diff --git a/app/upgrades/v023/upgrades_test.go b/app/upgrades/v023/upgrades_test.go deleted file mode 100644 index fdf7c644..00000000 --- a/app/upgrades/v023/upgrades_test.go +++ /dev/null @@ -1,136 +0,0 @@ -package v023_test - -import ( - "fmt" - "testing" - "time" - - "cosmossdk.io/core/appmodule" - "cosmossdk.io/core/header" - "cosmossdk.io/math" - "cosmossdk.io/x/upgrade" - upgradetypes "cosmossdk.io/x/upgrade/types" - apptesting "github.com/bitsongofficial/go-bitsong/app/testing" - v023 "github.com/bitsongofficial/go-bitsong/app/upgrades/v023" - addresscodec "github.com/cosmos/cosmos-sdk/codec/address" - "github.com/cosmos/cosmos-sdk/types" - - minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" - protocolpooltypes "github.com/cosmos/cosmos-sdk/x/protocolpool/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - - "github.com/stretchr/testify/suite" -) - -const dummyUpgradeHeight = 5 - -var testDescription = stakingtypes.NewDescription("test_moniker", "test_identity", "test_website", "test_security_contact", "test_details") - -type UpgradeTestSuite struct { - apptesting.KeeperTestHelper - preModule appmodule.HasPreBlocker -} - -func (s *UpgradeTestSuite) SetupTest() { - s.Setup() - s.preModule = upgrade.NewAppModule(s.App.UpgradeKeeper, addresscodec.NewBech32Codec("bitsong")) -} - -func TestUpgradeTestSuite(t *testing.T) { - suite.Run(t, new(UpgradeTestSuite)) -} - -func (s *UpgradeTestSuite) TestUpgrade() { - coin := types.NewCoin("ft12345", math.NewInt(12345)) - communityPoolFunds := types.NewCoins(types.NewCoin("ubtsg", math.NewInt(69420)), types.NewCoin("ftfantoken", math.NewInt(1234567890))) - protocolpoolEscrow := protocolpooltypes.ProtocolPoolEscrowAccount - protocolpool := protocolpooltypes.ModuleName - distributionModule := distrtypes.ModuleName - - upgradeSetup := func() { - s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight - 2) - s.FundAcc(s.TestAccs[0], types.NewCoins(coin)) - - // fund protocolpool_escrow (cannot use protocolpool fund-community-pool since we have disbabled external community pool, so we just seed with balance to module account) - s.App.BankKeeper.MintCoins(s.Ctx, minttypes.ModuleName, communityPoolFunds) - s.App.BankKeeper.SendCoinsFromModuleToModule(s.Ctx, minttypes.ModuleName, protocolpoolEscrow, communityPoolFunds) - - } - - postUpgrade := func() { - s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight + 1) - - // assert protocolpool & protocolpool_escrow are empty - protocolPoolBalance := s.App.BankKeeper.GetAllBalances(s.Ctx, s.App.AccountKeeper.GetModuleAddress(protocolpool)) - protocolPoolEscrowBalance := s.App.BankKeeper.GetAllBalances(s.Ctx, s.App.AccountKeeper.GetModuleAddress(protocolpoolEscrow)) - distrModuleBalance := s.App.BankKeeper.GetAllBalances(s.Ctx, s.App.AccountKeeper.GetModuleAddress(distributionModule)) - - fmt.Printf("distrModuleBalance: %v\n", distrModuleBalance) - fmt.Printf("protocolPoolBalance: %v\n", protocolPoolBalance) - fmt.Printf("protocolPoolEscrowBalance: %v\n", protocolPoolEscrowBalance) - - s.Require().Equal(protocolPoolBalance.Empty(), true) - s.Require().Equal(protocolPoolEscrowBalance.Empty(), true) - - // assert fund community pool does not error - err := s.App.DistrKeeper.FundCommunityPool(s.Ctx, types.NewCoins(coin), s.TestAccs[0]) - s.Require().NoError(err) - - // check for funded token in distribution module balance - distrModuleBalance = s.App.BankKeeper.GetAllBalances(s.Ctx, s.App.AccountKeeper.GetModuleAddress(distributionModule)) - amountOf := distrModuleBalance.AmountOf(coin.Denom) - s.Require().Equal(amountOf, coin.Amount) - - // assert we are unblocking fund communityu pool requests - s.Require().Equal(s.App.DistrKeeper.HasExternalCommunityPool(), false) - - } - - testCases := []struct { - name string - pre_upgrade func() - upgrade func() - post_upgrade func() - }{ - { - "test: protocol-pool patch", - func() { - upgradeSetup() - }, - func() { - dummyUpgrade(s) - s.Require().NotPanics(func() { - _, err := s.preModule.PreBlock(s.Ctx) - s.Require().NoError(err) - }) - - }, - func() { - s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight + 1) - postUpgrade() - }, - }, - } - - for _, tc := range testCases { - s.Run(fmt.Sprintf("Case %s", tc.name), func() { - s.SetupTest() // reset - tc.pre_upgrade() - tc.upgrade() - tc.post_upgrade() - }) - } -} - -func dummyUpgrade(s *UpgradeTestSuite) { - s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight - 1) - plan := upgradetypes.Plan{Name: v023.UpgradeName, Height: dummyUpgradeHeight} - err := s.App.UpgradeKeeper.ScheduleUpgrade(s.Ctx, plan) - s.Require().NoError(err) - _, err = s.App.UpgradeKeeper.GetUpgradePlan(s.Ctx) - s.Require().NoError(err) - - s.Ctx = s.Ctx.WithHeaderInfo(header.Info{Height: dummyUpgradeHeight, Time: s.Ctx.BlockTime().Add(time.Second)}).WithBlockHeight(dummyUpgradeHeight) -} diff --git a/app/upgrades/v023/constants.go b/app/upgrades/v024/constants.go similarity index 66% rename from app/upgrades/v023/constants.go rename to app/upgrades/v024/constants.go index cd72871e..052cacf7 100644 --- a/app/upgrades/v023/constants.go +++ b/app/upgrades/v024/constants.go @@ -1,4 +1,4 @@ -package v023 +package v024 import ( store "cosmossdk.io/store/types" @@ -6,11 +6,11 @@ import ( ) const ( - UpgradeName = "v023" + UpgradeName = "v024" ) var Upgrade = upgrades.Upgrade{ UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateV023UpgradeHandler, - StoreUpgrades: store.StoreUpgrades{Added: []string{}, Deleted: []string{}}, + CreateUpgradeHandler: CreateV024Upgrade, + StoreUpgrades: store.StoreUpgrades{Added: []string{}, Deleted: []string{"interchainquery", "cade"}}, } diff --git a/app/upgrades/v024/upgrades.go b/app/upgrades/v024/upgrades.go new file mode 100644 index 00000000..615a9efd --- /dev/null +++ b/app/upgrades/v024/upgrades.go @@ -0,0 +1,65 @@ +package v024 + +import ( + "context" + "fmt" + "time" + + upgradetypes "cosmossdk.io/x/upgrade/types" + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/bitsongofficial/go-bitsong/app/keepers" + "github.com/bitsongofficial/go-bitsong/app/upgrades" + + "github.com/cosmos/cosmos-sdk/types/module" +) + +func CreateV024Upgrade(mm *module.Manager, configurator module.Configurator, bpm upgrades.BaseAppParamManager, k *keepers.AppKeepers, homepath string) upgradetypes.UpgradeHandler { + return func(context context.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { + + sdkCtx := sdk.UnwrapSDKContext(context) + logger := sdkCtx.Logger().With("upgrade", UpgradeName) + + // Run migrations first + logger.Info(fmt.Sprintf("pre migrate version map: %v", vm)) + versionMap, err := mm.RunMigrations(sdkCtx, configurator, vm) + if err != nil { + return nil, err + } + + // Update consensus params in order to safely enable comet pruning + consensusParams, err := k.ConsensusParamsKeeper.ParamsStore.Get(sdkCtx) + if err != nil { + return nil, err + } + consensusParams.Evidence.MaxAgeNumBlocks = 756_000 + consensusParams.Evidence.MaxAgeDuration = time.Second * 1_814_400 // 21 days (in seconds) + err = k.ConsensusParamsKeeper.ParamsStore.Set(sdkCtx, consensusParams) + if err != nil { + return nil, err + } + + // update mint keepers blocks_per_year to reflect new block speed + mp, err := k.MintKeeper.Params.Get(sdkCtx) + if err != nil { + return nil, err + } + mp.BlocksPerYear = 13148719 // @ 31556925 seconds per tropical year (365 days, 5 hours, 48 mins, 45 seconds) + err = k.MintKeeper.Params.Set(sdkCtx, mp) + if err != nil { + return nil, err + } + // retain signed blocks duration given new block speeds + p, err := k.SlashingKeeper.GetParams(sdkCtx) + if err != nil { + return nil, err + } + p.SignedBlocksWindow = 25_000 /// ~16.67 hours + err = k.SlashingKeeper.SetParams(sdkCtx, p) + if err != nil { + return nil, err + } + logger.Info(fmt.Sprintf("post migrate version map: %v", versionMap)) + return versionMap, err + } +} diff --git a/app/upgrades/v024/upgrades_test.go b/app/upgrades/v024/upgrades_test.go new file mode 100644 index 00000000..54f32777 --- /dev/null +++ b/app/upgrades/v024/upgrades_test.go @@ -0,0 +1,97 @@ +package v024_test + +import ( + "fmt" + "testing" + "time" + + "cosmossdk.io/core/appmodule" + "cosmossdk.io/core/header" + "cosmossdk.io/x/upgrade" + upgradetypes "cosmossdk.io/x/upgrade/types" + apptesting "github.com/bitsongofficial/go-bitsong/app/testing" + v024 "github.com/bitsongofficial/go-bitsong/app/upgrades/v024" + addresscodec "github.com/cosmos/cosmos-sdk/codec/address" + + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + + "github.com/stretchr/testify/suite" +) + +const dummyUpgradeHeight = 5 + +var testDescription = stakingtypes.NewDescription("test_moniker", "test_identity", "test_website", "test_security_contact", "test_details") + +type UpgradeTestSuite struct { + apptesting.KeeperTestHelper + preModule appmodule.HasPreBlocker +} + +func (s *UpgradeTestSuite) SetupTest() { + s.Setup() + s.preModule = upgrade.NewAppModule(s.App.UpgradeKeeper, addresscodec.NewBech32Codec("bitsong")) +} + +func TestUpgradeTestSuite(t *testing.T) { + suite.Run(t, new(UpgradeTestSuite)) +} + +func (s *UpgradeTestSuite) TestUpgrade() { + upgradeSetup := func() { + // TODO: setup 2 validators with equal vp, using different home path locations + s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight - 2) + + } + + postUpgrade := func() { + s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight + 1) + // TODO: ensure validators are okay + + } + + testCases := []struct { + name string + pre_upgrade func() + upgrade func() + post_upgrade func() + }{ + { + "test: default", + func() { + upgradeSetup() + }, + func() { + dummyUpgrade(s) + s.Require().NotPanics(func() { + _, err := s.preModule.PreBlock(s.Ctx) + s.Require().NoError(err) + }) + + }, + func() { + s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight + 1) + postUpgrade() + }, + }, + } + + for _, tc := range testCases { + s.Run(fmt.Sprintf("Case %s", tc.name), func() { + s.SetupTest() // reset + tc.pre_upgrade() + tc.upgrade() + tc.post_upgrade() + }) + } +} + +func dummyUpgrade(s *UpgradeTestSuite) { + s.Ctx = s.Ctx.WithBlockHeight(dummyUpgradeHeight - 1) + plan := upgradetypes.Plan{Name: v024.UpgradeName, Height: dummyUpgradeHeight} + err := s.App.UpgradeKeeper.ScheduleUpgrade(s.Ctx, plan) + s.Require().NoError(err) + _, err = s.App.UpgradeKeeper.GetUpgradePlan(s.Ctx) + s.Require().NoError(err) + + s.Ctx = s.Ctx.WithHeaderInfo(header.Info{Height: dummyUpgradeHeight, Time: s.Ctx.BlockTime().Add(time.Second)}).WithBlockHeight(dummyUpgradeHeight) +} diff --git a/cmd/bitsongd/cmd/init.go b/cmd/bitsongd/cmd/init.go index 9afb6795..ac1a512f 100644 --- a/cmd/bitsongd/cmd/init.go +++ b/cmd/bitsongd/cmd/init.go @@ -36,7 +36,8 @@ const ( FlagOverwrite = "overwrite" // FlagSeed defines a flag to initialize the private validator key from a specific seed. - FlagRecover = "recover" + FlagRecover = "recover" + FlagSeedPeers = "seed-peers" ) type printInfo struct { @@ -82,12 +83,15 @@ func InitCmd(mbm module.BasicManager, defaultNodeHome string) *cobra.Command { config := serverCtx.Config // P2P - seeds := []string{ - "ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@seeds.polkachu.com:16056", // Polkachu - "8542cd7e6bf9d260fef543bc49e59be5a3fa90740@seed.publicnode.com:26656", // Allnodes team - "8defec7d0eec97f507411e02fd2634e3efc997a2@bitsong-seed.panthea.eu:41656", // Panthea EU + seed_peers, _ := cmd.Flags().GetBool(FlagSeedPeers) + if seed_peers { + seeds := []string{ + "ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@seeds.polkachu.com:16056", // Polkachu + "8542cd7e6bf9d260fef543bc49e59be5a3fa90740@seed.publicnode.com:26656", // Allnodes team + "8defec7d0eec97f507411e02fd2634e3efc997a2@bitsong-seed.panthea.eu:41656", // Panthea EU + } + config.P2P.Seeds = strings.Join(seeds, ",") } - config.P2P.Seeds = strings.Join(seeds, ",") config.P2P.MaxNumInboundPeers = 80 config.P2P.MaxNumOutboundPeers = 60 @@ -98,8 +102,9 @@ func InitCmd(mbm module.BasicManager, defaultNodeHome string) *cobra.Command { config.StateSync.TrustPeriod = 112 * time.Hour config.BlockSync.Version = "v0" - // // Consensus - // config.Consensus.TimeoutCommit = 1500 * time.Millisecond // 1.5s + // Consensus + config.Consensus.TimeoutCommit = 2400 * time.Millisecond // 2.4s block time + config.Consensus.TimeoutPropose = 2000 * time.Millisecond // 2.4s block time // other config.Moniker = args[0] @@ -190,6 +195,7 @@ func InitCmd(mbm module.BasicManager, defaultNodeHome string) *cobra.Command { }, } + cmd.Flags().Bool(FlagSeedPeers, false, "Seed the config file with known network peers for bitsong-2b") cmd.Flags().String(cli.HomeFlag, defaultNodeHome, "node's home directory") cmd.Flags().BoolP(FlagOverwrite, "o", false, "overwrite the genesis.json file") cmd.Flags().Bool(FlagRecover, false, "provide seed phrase to recover existing key instead of creating") diff --git a/cmd/bitsongd/cmd/root.go b/cmd/bitsongd/cmd/root.go index a365573e..3c25ad8f 100644 --- a/cmd/bitsongd/cmd/root.go +++ b/cmd/bitsongd/cmd/root.go @@ -182,7 +182,7 @@ func initAppConfig() (string, interface{}) { type CustomAppConfig struct { serverconfig.Config - Wasm wasmtypes.WasmConfig `mapstructure:"wasm"` + Wasm wasmtypes.NodeConfig `mapstructure:"wasm"` } // modify the default server configuration @@ -194,7 +194,7 @@ func initAppConfig() (string, interface{}) { customAppConfig := CustomAppConfig{ Config: *srvCfg, - Wasm: wasmtypes.DefaultWasmConfig(), + Wasm: wasmtypes.DefaultNodeConfig(), } customAppTemplate := serverconfig.DefaultConfigTemplate + @@ -247,7 +247,7 @@ func SetCustomEnvVariablesFromClientToml(ctx client.Context) { func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig) { rootCmd.AddCommand( - genutilcli.InitCmd(bitsong.AppModuleBasics, bitsong.DefaultNodeHome), + InitCmd(bitsong.AppModuleBasics, bitsong.DefaultNodeHome), tmcli.NewCompletionCmd(rootCmd, true), ConfigCmd(), pruning.Cmd(newApp, bitsong.DefaultNodeHome), @@ -257,6 +257,8 @@ func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig) { testnetserver.AddTestnetCreatorCommand(rootCmd, newTestnetApp, addModuleInitFlags) wasmcli.ExtendUnsafeResetAllCmd(rootCmd) + // TODO: spin up a streaming oracle + // add keybase, auxiliary RPC, query, and tx child commands rootCmd.AddCommand( server.StatusCommand(), @@ -265,7 +267,6 @@ func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig) { queryCommand(), txCommand(), keys.Commands(), - CustomExportCmd(customAppExport, bitsong.DefaultNodeHome), ) } @@ -469,53 +470,6 @@ func appExport( return wasmApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs) } -// customAppExport creates a new wasm app (optionally at a given height) and exports state. -func customAppExport( - logger log.Logger, - db cosmosdb.DB, - traceStore io.Writer, - height int64, - forZeroHeight bool, - jailAllowedAddrs []string, - appOpts servertypes.AppOptions, - modulesToExport []string, -) (servertypes.ExportedApp, error) { - var wasmApp *bitsong.BitsongApp - homePath, ok := appOpts.Get(flags.FlagHome).(string) - if !ok || homePath == "" { - return servertypes.ExportedApp{}, errors.New("application home is not set") - } - - viperAppOpts, ok := appOpts.(*viper.Viper) - if !ok { - return servertypes.ExportedApp{}, errors.New("appOpts is not viper.Viper") - } - - // overwrite the FlagInvCheckPeriod - viperAppOpts.Set(server.FlagInvCheckPeriod, 1) - appOpts = viperAppOpts - - var emptyWasmOpts []wasmkeeper.Option - wasmApp = bitsong.NewBitsongApp( - logger, - db, - traceStore, - height == -1, - cast.ToString(appOpts.Get(flags.FlagHome)), - appOpts, - emptyWasmOpts, - ) - - if height != -1 { - if err := wasmApp.LoadHeight(height); err != nil { - return servertypes.ExportedApp{}, err - } - } - - return wasmApp.CustomExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs) - -} - func autoCliOpts(initClientCtx client.Context, tempApp *bitsong.BitsongApp) autocli.AppOptions { modules := make(map[string]appmodule.AppModule, 0) for _, m := range tempApp.ModuleManager().Modules { diff --git a/comms-with-angelo.png b/comms-with-angelo.png new file mode 100644 index 00000000..fabcd542 Binary files /dev/null and b/comms-with-angelo.png differ diff --git a/docs/docs.go b/docs/docs.go new file mode 100644 index 00000000..1167d565 --- /dev/null +++ b/docs/docs.go @@ -0,0 +1,6 @@ +package docs + +import "embed" + +//go:embed static +var Docs embed.FS diff --git a/swagger/swagger-ui/favicon-16x16.png b/docs/static/favicon-16x16.png similarity index 100% rename from swagger/swagger-ui/favicon-16x16.png rename to docs/static/favicon-16x16.png diff --git a/swagger/swagger-ui/favicon-32x32.png b/docs/static/favicon-32x32.png similarity index 100% rename from swagger/swagger-ui/favicon-32x32.png rename to docs/static/favicon-32x32.png diff --git a/docs/static/index.html b/docs/static/index.html new file mode 100644 index 00000000..5e2a3933 --- /dev/null +++ b/docs/static/index.html @@ -0,0 +1,61 @@ + + + + + + Swagger UI + + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/swagger/swagger-ui/oauth2-redirect.html b/docs/static/oauth2-redirect.html similarity index 100% rename from swagger/swagger-ui/oauth2-redirect.html rename to docs/static/oauth2-redirect.html diff --git a/swagger/swagger-ui/swagger-ui-bundle.js b/docs/static/swagger-ui-bundle.js similarity index 100% rename from swagger/swagger-ui/swagger-ui-bundle.js rename to docs/static/swagger-ui-bundle.js diff --git a/swagger/swagger-ui/swagger-ui-es-bundle-core.js b/docs/static/swagger-ui-es-bundle-core.js similarity index 100% rename from swagger/swagger-ui/swagger-ui-es-bundle-core.js rename to docs/static/swagger-ui-es-bundle-core.js diff --git a/swagger/swagger-ui/swagger-ui-es-bundle.js b/docs/static/swagger-ui-es-bundle.js similarity index 100% rename from swagger/swagger-ui/swagger-ui-es-bundle.js rename to docs/static/swagger-ui-es-bundle.js diff --git a/swagger/swagger-ui/swagger-ui-standalone-preset.js b/docs/static/swagger-ui-standalone-preset.js similarity index 100% rename from swagger/swagger-ui/swagger-ui-standalone-preset.js rename to docs/static/swagger-ui-standalone-preset.js diff --git a/swagger/swagger-ui/swagger-ui.css b/docs/static/swagger-ui.css similarity index 100% rename from swagger/swagger-ui/swagger-ui.css rename to docs/static/swagger-ui.css diff --git a/swagger/swagger-ui/swagger-ui.js b/docs/static/swagger-ui.js similarity index 100% rename from swagger/swagger-ui/swagger-ui.js rename to docs/static/swagger-ui.js diff --git a/docs/static/swagger.yaml b/docs/static/swagger.yaml new file mode 100644 index 00000000..0c9502ea --- /dev/null +++ b/docs/static/swagger.yaml @@ -0,0 +1,100650 @@ +swagger: '2.0' +info: + title: Bitsong Network API + version: go-bitsong + description: REST API for Bitsong blockchain +schemes: + - http + - https +consumes: + - application/json +produces: + - application/json +paths: + /bitsong/smartaccount/authenticator/{account}/{authenticator_id}: + get: + operationId: GetAuthenticator_04449 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + account_authenticator: + type: object + properties: + id: + type: string + format: uint64 + description: ID uniquely identifies the authenticator instance. + type: + type: string + description: >- + Type specifies the category of the AccountAuthenticator. + + This type information is essential for differentiating + authenticators + + and ensuring precise data retrieval from the storage + layer. + config: + type: string + format: byte + description: >- + Config is a versatile field used in conjunction with the + specific type of + + account authenticator to facilitate complex authentication + processes. + + The interpretation of this field is overloaded, enabling + multiple + + authenticators to utilize it for their respective + purposes. + description: >- + AccountAuthenticator represents a foundational model for all + authenticators. + + It provides extensibility by allowing concrete types to + interpret and + + validate transactions based on the encapsulated data. + description: >- + MsgGetAuthenticatorResponse defines the Msg/GetAuthenticator + response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: account + in: path + required: true + type: string + - name: authenticator_id + in: path + required: true + type: string + format: uint64 + tags: + - Query + /bitsong/smartaccount/authenticators/{account}: + get: + operationId: GetAuthenticators_22935 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + account_authenticators: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + description: ID uniquely identifies the authenticator instance. + type: + type: string + description: >- + Type specifies the category of the AccountAuthenticator. + + This type information is essential for differentiating + authenticators + + and ensuring precise data retrieval from the storage + layer. + config: + type: string + format: byte + description: >- + Config is a versatile field used in conjunction with the + specific type of + + account authenticator to facilitate complex + authentication processes. + + The interpretation of this field is overloaded, enabling + multiple + + authenticators to utilize it for their respective + purposes. + description: >- + AccountAuthenticator represents a foundational model for all + authenticators. + + It provides extensibility by allowing concrete types to + interpret and + + validate transactions based on the encapsulated data. + description: >- + MsgGetAuthenticatorsResponse defines the Msg/GetAuthenticators + response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: account + in: path + required: true + type: string + tags: + - Query + /bitsong/smartaccount/params: + get: + summary: Parameters queries the parameters of the module. + operationId: Params_05681 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + params: + description: params holds all the parameters of this module. + type: object + properties: + maximum_unauthenticated_gas: + type: string + format: uint64 + description: >- + MaximumUnauthenticatedGas defines the maximum amount of + gas that can be + + used to authenticate a transaction in ante handler without + having fee payer + + authenticated. + is_smart_account_active: + type: boolean + description: >- + IsSmartAccountActive defines the state of the + authenticator. + + If set to false, the authenticator module will not be used + + and the classic cosmos sdk authentication will be used + instead. + circuit_breaker_controllers: + type: array + items: + type: string + description: >- + CircuitBreakerControllers defines list of addresses that + are allowed to + + set is_smart_account_active without going through + governance. + description: >- + QueryParamsResponse is response type for the Query/Params RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /bitsong/fantoken/v1beta1/denom/{denom}: + get: + summary: FanToken returns fantoken with fantoken name + operationId: FanToken_05953 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + fantoken: + type: object + properties: + denom: + type: string + description: >- + denom represents the string name of the given denom unit + (e.g ft). + max_supply: + type: string + minter: + type: string + title: sdk.AccAddress allowed to mint new fantoken + meta_data: + type: object + properties: + name: + type: string + title: 'name defines the name of the fantoken (eg: Kitty Punk)' + symbol: + type: string + title: >- + symbol is the token symbol usually shown on exchanges + (eg: KITTY) + uri: + type: string + description: >- + URI to a document (on or off-chain) that contains + additional + + information.Optional. + authority: + type: string + title: sdk.AccAddress allowed to set a new uri + title: FanToken defines a standard for the fungible token + title: >- + QueryFanTokenResponse is response type for the Query/FanToken RPC + method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: denom + in: path + required: true + type: string + tags: + - Query + /bitsong/fantoken/v1beta1/fantokens: + get: + summary: FanTokens returns the fantoken list + operationId: FanTokens_12337 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + fantokens: + type: array + items: + type: object + properties: + denom: + type: string + description: >- + denom represents the string name of the given denom unit + (e.g ft). + max_supply: + type: string + minter: + type: string + title: sdk.AccAddress allowed to mint new fantoken + meta_data: + type: object + properties: + name: + type: string + title: >- + name defines the name of the fantoken (eg: Kitty + Punk) + symbol: + type: string + title: >- + symbol is the token symbol usually shown on + exchanges (eg: KITTY) + uri: + type: string + description: >- + URI to a document (on or off-chain) that contains + additional + + information.Optional. + authority: + type: string + title: sdk.AccAddress allowed to set a new uri + title: FanToken defines a standard for the fungible token + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: >- + QueryFanTokensResponse is response type for the Query/FanTokens + RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: authority + in: query + required: false + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /bitsong/fantoken/v1beta1/params: + get: + summary: Params queries the fantoken parameters + operationId: Params_07903 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + params: + type: object + properties: + issue_fee: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + mint_fee: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + burn_fee: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: Params defines fantoken module's parameters + title: >- + QueryParametersResponse is response type for the Query/Parameters + RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/consensus/v1/params: + get: + summary: Params queries the parameters of x/consensus module. + operationId: Params_01383 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + params: + description: >- + params are the tendermint consensus params stored in the + consensus module. + + Please note that `params.version` is not populated in this + response, it is + + tracked separately in the x/upgrade module. + type: object + properties: + block: + type: object + properties: + max_bytes: + type: string + format: int64 + title: |- + Max block size, in bytes. + Note: must be greater than 0 + max_gas: + type: string + format: int64 + title: |- + Max gas per block. + Note: must be greater or equal to -1 + description: BlockParams contains limits on the block size. + evidence: + type: object + properties: + max_age_num_blocks: + type: string + format: int64 + description: >- + Max age of evidence, in blocks. + + + The basic formula for calculating this is: + MaxAgeDuration / {average block + + time}. + max_age_duration: + type: string + description: >- + Max age of evidence, in time. + + + It should correspond with an app's "unbonding period" + or other similar + + mechanism for handling [Nothing-At-Stake + + attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed). + max_bytes: + type: string + format: int64 + title: >- + This sets the maximum size of total evidence in bytes + that can be committed in a single block. + + and should fall comfortably under the max block bytes. + + Default is 1048576 or 1MB + description: >- + EvidenceParams determine how we handle evidence of + malfeasance. + validator: + type: object + properties: + pub_key_types: + type: array + items: + type: string + description: >- + ValidatorParams restrict the public key types validators + can use. + + NOTE: uses ABCI pubkey naming, not Amino names. + version: + type: object + properties: + app: + type: string + format: uint64 + description: VersionParams contains the ABCI application version. + abci: + type: object + properties: + vote_extensions_enable_height: + type: string + format: int64 + description: >- + vote_extensions_enable_height configures the first + height during which + + vote extensions will be enabled. During this specified + height, and for all + + subsequent heights, precommit messages that do not + contain valid extension data + + will be considered invalid. Prior to this height, vote + extensions will not + + be used or accepted by validators on the network. + + + Once enabled, vote extensions will be created by the + application in ExtendVote, + + passed to the application for validation in + VerifyVoteExtension and given + + to the application to use when proposing a block + during PrepareProposal. + description: >- + ABCIParams configure functionality specific to the + Application Blockchain Interface. + description: >- + QueryParamsResponse defines the response type for querying + x/consensus parameters. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/circuit/v1/accounts: + get: + summary: Account returns account permissions. + operationId: Accounts_22291 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + accounts: + type: array + items: + type: object + properties: + address: + type: string + permissions: + type: object + properties: + level: + description: >- + level is the level of permissions granted to this + account. + type: string + enum: + - LEVEL_NONE_UNSPECIFIED + - LEVEL_SOME_MSGS + - LEVEL_ALL_MSGS + - LEVEL_SUPER_ADMIN + default: LEVEL_NONE_UNSPECIFIED + limit_type_urls: + type: array + items: + type: string + description: >- + limit_type_urls is used with LEVEL_SOME_MSGS to + limit the lists of Msg type + + URLs that the account can trip. It is an error to + use limit_type_urls with + + a level other than LEVEL_SOME_MSGS. + description: >- + Permissions are the permissions that an account has to + trip + + or reset the circuit breaker. + title: >- + GenesisAccountPermissions is the account permissions for the + circuit breaker in genesis + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + AccountsResponse is the response type for the Query/Accounts RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/circuit/v1/accounts/{address}: + get: + summary: Account returns account permissions. + operationId: Account_15749 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + permission: + type: object + properties: + level: + description: level is the level of permissions granted to this account. + type: string + enum: + - LEVEL_NONE_UNSPECIFIED + - LEVEL_SOME_MSGS + - LEVEL_ALL_MSGS + - LEVEL_SUPER_ADMIN + default: LEVEL_NONE_UNSPECIFIED + limit_type_urls: + type: array + items: + type: string + description: >- + limit_type_urls is used with LEVEL_SOME_MSGS to limit the + lists of Msg type + + URLs that the account can trip. It is an error to use + limit_type_urls with + + a level other than LEVEL_SOME_MSGS. + description: |- + Permissions are the permissions that an account has to trip + or reset the circuit breaker. + description: >- + AccountResponse is the response type for the Query/Account RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + in: path + required: true + type: string + tags: + - Query + /cosmos/circuit/v1/disable_list: + get: + summary: DisabledList returns a list of disabled message urls + operationId: DisabledList_29359 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + disabled_list: + type: array + items: + type: string + description: >- + DisabledListResponse is the response type for the + Query/DisabledList RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/distribution/v1beta1/community_pool: + get: + summary: CommunityPool queries the community pool coins. + description: 'WARNING: This query will fail if an external community pool is used.' + operationId: CommunityPool_13412 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + pool: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + DecCoin defines a token with a denomination and a decimal + amount. + + + NOTE: The amount field is an Dec which implements the custom + method + + signatures required by gogoproto. + description: pool defines community pool's coins. + description: >- + QueryCommunityPoolResponse is the response type for the + Query/CommunityPool + + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards: + get: + summary: |- + DelegationTotalRewards queries the total rewards accrued by each + validator. + operationId: DelegationTotalRewards_07486 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + rewards: + type: array + items: + type: object + properties: + validator_address: + type: string + reward: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + DecCoin defines a token with a denomination and a + decimal amount. + + + NOTE: The amount field is an Dec which implements the + custom method + + signatures required by gogoproto. + description: |- + DelegationDelegatorReward represents the properties + of a delegator's delegation reward. + description: rewards defines all the rewards accrued by a delegator. + total: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + DecCoin defines a token with a denomination and a decimal + amount. + + + NOTE: The amount field is an Dec which implements the custom + method + + signatures required by gogoproto. + description: total defines the sum of all the rewards. + description: |- + QueryDelegationTotalRewardsResponse is the response type for the + Query/DelegationTotalRewards RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: delegator_address + description: delegator_address defines the delegator address to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards/{validator_address}: + get: + summary: DelegationRewards queries the total rewards accrued by a delegation. + operationId: DelegationRewards_15207 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + rewards: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + DecCoin defines a token with a denomination and a decimal + amount. + + + NOTE: The amount field is an Dec which implements the custom + method + + signatures required by gogoproto. + description: rewards defines the rewards accrued by a delegation. + description: |- + QueryDelegationRewardsResponse is the response type for the + Query/DelegationRewards RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: delegator_address + description: delegator_address defines the delegator address to query for. + in: path + required: true + type: string + - name: validator_address + description: validator_address defines the validator address to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/distribution/v1beta1/delegators/{delegator_address}/validators: + get: + summary: DelegatorValidators queries the validators of a delegator. + operationId: DelegatorValidators_13373 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + validators: + type: array + items: + type: string + description: >- + validators defines the validators a delegator is delegating + for. + description: |- + QueryDelegatorValidatorsResponse is the response type for the + Query/DelegatorValidators RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: delegator_address + description: delegator_address defines the delegator address to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/distribution/v1beta1/delegators/{delegator_address}/withdraw_address: + get: + summary: DelegatorWithdrawAddress queries withdraw address of a delegator. + operationId: DelegatorWithdrawAddress_07747 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + withdraw_address: + type: string + description: withdraw_address defines the delegator address to query for. + description: |- + QueryDelegatorWithdrawAddressResponse is the response type for the + Query/DelegatorWithdrawAddress RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: delegator_address + description: delegator_address defines the delegator address to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/distribution/v1beta1/params: + get: + summary: Params queries params of the distribution module. + operationId: Params_22442 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + params: + description: params defines the parameters of the module. + type: object + properties: + community_tax: + type: string + base_proposer_reward: + type: string + description: >- + Deprecated: The base_proposer_reward field is deprecated + and is no longer used + + in the x/distribution module's reward mechanism. + bonus_proposer_reward: + type: string + description: >- + Deprecated: The bonus_proposer_reward field is deprecated + and is no longer used + + in the x/distribution module's reward mechanism. + withdraw_addr_enabled: + type: boolean + description: >- + QueryParamsResponse is the response type for the Query/Params RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/distribution/v1beta1/validators/{validator_address}: + get: + summary: >- + ValidatorDistributionInfo queries validator commission and + self-delegation rewards for validator + operationId: ValidatorDistributionInfo_03314 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + operator_address: + type: string + description: operator_address defines the validator operator address. + self_bond_rewards: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + DecCoin defines a token with a denomination and a decimal + amount. + + + NOTE: The amount field is an Dec which implements the custom + method + + signatures required by gogoproto. + description: self_bond_rewards defines the self delegations rewards. + commission: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + DecCoin defines a token with a denomination and a decimal + amount. + + + NOTE: The amount field is an Dec which implements the custom + method + + signatures required by gogoproto. + description: commission defines the commission the validator received. + description: >- + QueryValidatorDistributionInfoResponse is the response type for + the Query/ValidatorDistributionInfo RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: validator_address + description: validator_address defines the validator address to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/distribution/v1beta1/validators/{validator_address}/commission: + get: + summary: ValidatorCommission queries accumulated commission for a validator. + operationId: ValidatorCommission_23843 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + commission: + description: commission defines the commission the validator received. + type: object + properties: + commission: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + DecCoin defines a token with a denomination and a + decimal amount. + + + NOTE: The amount field is an Dec which implements the + custom method + + signatures required by gogoproto. + title: |- + QueryValidatorCommissionResponse is the response type for the + Query/ValidatorCommission RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: validator_address + description: validator_address defines the validator address to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/distribution/v1beta1/validators/{validator_address}/outstanding_rewards: + get: + summary: ValidatorOutstandingRewards queries rewards of a validator address. + operationId: ValidatorOutstandingRewards_21997 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + rewards: + type: object + properties: + rewards: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + DecCoin defines a token with a denomination and a + decimal amount. + + + NOTE: The amount field is an Dec which implements the + custom method + + signatures required by gogoproto. + description: >- + ValidatorOutstandingRewards represents outstanding + (un-withdrawn) rewards + + for a validator inexpensive to track, allows simple sanity + checks. + description: >- + QueryValidatorOutstandingRewardsResponse is the response type for + the + + Query/ValidatorOutstandingRewards RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: validator_address + description: validator_address defines the validator address to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/distribution/v1beta1/validators/{validator_address}/slashes: + get: + summary: ValidatorSlashes queries slash events of a validator. + operationId: ValidatorSlashes_04723 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + slashes: + type: array + items: + type: object + properties: + validator_period: + type: string + format: uint64 + fraction: + type: string + description: >- + ValidatorSlashEvent represents a validator slash event. + + Height is implicit within the store key. + + This is needed to calculate appropriate amount of staking + tokens + + for delegations which are withdrawn after a slash has + occurred. + description: slashes defines the slashes the validator received. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: |- + QueryValidatorSlashesResponse is the response type for the + Query/ValidatorSlashes RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: validator_address + description: validator_address defines the validator address to query for. + in: path + required: true + type: string + - name: starting_height + description: >- + starting_height defines the optional starting height to query the + slashes. + in: query + required: false + type: string + format: uint64 + - name: ending_height + description: >- + starting_height defines the optional ending height to query the + slashes. + in: query + required: false + type: string + format: uint64 + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/tx/v1beta1/decode: + post: + summary: TxDecode decodes the transaction. + operationId: TxDecode_11631 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + tx: + description: tx is the decoded transaction. + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The + required signers of + + those messages define the number and order of elements + in AuthInfo's + + signer_infos and Tx's signatures. Each required signer + address is added to + + the list only the first time it occurs. + + By convention, the first required signer (usually from + the first message) + + is referred to as the primary signer and pays the fee + for the whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to the + transaction. + + WARNING: in clients, any publicly exposed text should + not be called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this + transaction will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the + transaction signer(s) + + intend for the transaction to be evaluated and + executed in an un-ordered + + fashion. Specifically, the account's nonce will NOT be + checked or + + incremented, which allows for fire-and-forget as well + as concurrent + + transaction execution. + + + Note, when set to true, the existing + 'timeout_timestamp' value must + + be set and will be used to correspond to a timestamp + in which the transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any + transaction with unordered=true and a non-zero + sequence value will + + be rejected. + + External services that make assumptions about sequence + values may need to be updated because of this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this + transaction will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the + transaction is deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be + added by chains + + when the default options are not sufficient. If any of + these are present + + and can't be handled, the transaction will be rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be + added by chains + + when the default options are not sufficient. If any of + these are present + + and can't be handled, they will be ignored + description: >- + TxBody is the body of a transaction that all signers sign + over. + auth_info: + title: >- + auth_info is the authorization related content of the + transaction, + + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies + the type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the + URL's path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into + the binary all types that they + + expect it to use in the context of Any. + However, for URLs which use the + + scheme `http`, `https`, or no scheme, one + can optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is + assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for + type URLs beginning with + + type.googleapis.com. As of May 2023, there + are no widely used type server + + implementations and no plans to implement + one. + + + Schemes other than `http`, `https` (or the + empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer + of the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack + Any values in the form + + of utility functions or additional generated + methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library + will by default use + + 'type.googleapis.com/full.type.name' as the type + URL and the unpack + + methods only use the fully qualified type name + after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses + the regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and + has a custom JSON + + representation, that representation will be + embedded adding a field + + `value` which holds the custom JSON in addition + to the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the + signer and is a nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: >- + mode is the signing mode of the single + signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with + its own security guarantees. + + + This enum should be considered a + registry of all known sign modes + + in the Cosmos ecosystem. Apps are not + expected to support all known + + sign modes. Apps that would like to + support custom sign modes are + + encouraged to open a small PR against + this file to add a new case + + to this SignMode enum describing their + sign mode so that different + + apps have a consistent version of this + enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on + top of the binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to + SIGN_MODE_DIRECT, this sign mode does + not + + require signers signing over other + signers' `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the + future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: + https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is + registered as a SignMode enum variant, + + but is not implemented on the SDK by + default. To enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK + may decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the + multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of + a space efficient bit array. + + This is used to ensure that the encoded + data takes up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not + intended for concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of + the signers of the multisig + + which could include nested multisig + public keys + description: >- + ModeInfo describes the signing mode of a single + or nested multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which + describes the + + number of committed transactions signed by a + given address. It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing mode + of a single top-level + + signer. + description: >- + signer_infos defines the signing modes for the + required signers. The number + + and order of elements must match the required signers + from TxBody's + + messages. The first element is the primary signer and + the one which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. The + first signer is the + + primary signer and the one which pays the fee. The fee + can be calculated + + based on the cost of evaluating the body and doing + signature verification + + of the signers. This can be estimated via simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which + implements the custom method + + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in + transaction processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for + paying the fees. If set, the + + specified account must pay the fees. the payer + must be a tx signer (and + + thus have signed this field in AuthInfo). setting + this field does *not* + + change the ordering of required signers for the + transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or + the value of the payer + + field) requests that a fee grant be used to pay + fees instead of the fee + + payer's own balance. If an appropriate fee grant + does not exist or the + + chain does not support fee grants, this will fail + tip: + description: >- + Tip is the optional tip used for transactions fees + paid in another denom. + + + This field is ignored if the chain didn't enable tips, + i.e. didn't add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which + implements the custom method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: >- + tipper is the address of the account paying for + the tip + description: >- + AuthInfo describes the fee and signer modes that are used + to sign a + + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the length + and order of + + AuthInfo's signer_infos to allow connecting signature meta + information like + + public key and signing mode by position. + description: |- + TxDecodeResponse is the response type for the + Service.TxDecode method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: body + in: body + required: true + schema: + type: object + properties: + tx_bytes: + type: string + format: byte + description: tx_bytes is the raw transaction. + description: |- + TxDecodeRequest is the request type for the Service.TxDecode + RPC method. + tags: + - Service + /cosmos/tx/v1beta1/decode/amino: + post: + summary: TxDecodeAmino decodes an Amino transaction from encoded bytes to JSON. + operationId: TxDecodeAmino_21731 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + amino_json: + type: string + description: >- + TxDecodeAminoResponse is the response type for the + Service.TxDecodeAmino + + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: body + in: body + required: true + schema: + type: object + properties: + amino_binary: + type: string + format: byte + description: >- + TxDecodeAminoRequest is the request type for the + Service.TxDecodeAmino + + RPC method. + tags: + - Service + /cosmos/tx/v1beta1/encode: + post: + summary: TxEncode encodes the transaction. + operationId: TxEncode_14391 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + tx_bytes: + type: string + format: byte + description: tx_bytes is the encoded transaction bytes. + description: |- + TxEncodeResponse is the response type for the + Service.TxEncode method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: body + in: body + required: true + schema: + type: object + properties: + tx: + description: tx is the transaction to encode. + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The + required signers of + + those messages define the number and order of elements + in AuthInfo's + + signer_infos and Tx's signatures. Each required signer + address is added to + + the list only the first time it occurs. + + By convention, the first required signer (usually from + the first message) + + is referred to as the primary signer and pays the fee + for the whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to the + transaction. + + WARNING: in clients, any publicly exposed text should + not be called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this + transaction will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the + transaction signer(s) + + intend for the transaction to be evaluated and + executed in an un-ordered + + fashion. Specifically, the account's nonce will NOT be + checked or + + incremented, which allows for fire-and-forget as well + as concurrent + + transaction execution. + + + Note, when set to true, the existing + 'timeout_timestamp' value must + + be set and will be used to correspond to a timestamp + in which the transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any + transaction with unordered=true and a non-zero + sequence value will + + be rejected. + + External services that make assumptions about sequence + values may need to be updated because of this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this + transaction will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the + transaction is deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be + added by chains + + when the default options are not sufficient. If any of + these are present + + and can't be handled, the transaction will be rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be + added by chains + + when the default options are not sufficient. If any of + these are present + + and can't be handled, they will be ignored + description: >- + TxBody is the body of a transaction that all signers sign + over. + auth_info: + title: >- + auth_info is the authorization related content of the + transaction, + + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies + the type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the + URL's path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into + the binary all types that they + + expect it to use in the context of Any. + However, for URLs which use the + + scheme `http`, `https`, or no scheme, one + can optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is + assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for + type URLs beginning with + + type.googleapis.com. As of May 2023, there + are no widely used type server + + implementations and no plans to implement + one. + + + Schemes other than `http`, `https` (or the + empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer + of the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack + Any values in the form + + of utility functions or additional generated + methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library + will by default use + + 'type.googleapis.com/full.type.name' as the type + URL and the unpack + + methods only use the fully qualified type name + after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses + the regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and + has a custom JSON + + representation, that representation will be + embedded adding a field + + `value` which holds the custom JSON in addition + to the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the + signer and is a nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: >- + mode is the signing mode of the single + signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with + its own security guarantees. + + + This enum should be considered a + registry of all known sign modes + + in the Cosmos ecosystem. Apps are not + expected to support all known + + sign modes. Apps that would like to + support custom sign modes are + + encouraged to open a small PR against + this file to add a new case + + to this SignMode enum describing their + sign mode so that different + + apps have a consistent version of this + enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on + top of the binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to + SIGN_MODE_DIRECT, this sign mode does + not + + require signers signing over other + signers' `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the + future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: + https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is + registered as a SignMode enum variant, + + but is not implemented on the SDK by + default. To enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK + may decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the + multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of + a space efficient bit array. + + This is used to ensure that the encoded + data takes up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not + intended for concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of + the signers of the multisig + + which could include nested multisig + public keys + description: >- + ModeInfo describes the signing mode of a single + or nested multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which + describes the + + number of committed transactions signed by a + given address. It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing mode + of a single top-level + + signer. + description: >- + signer_infos defines the signing modes for the + required signers. The number + + and order of elements must match the required signers + from TxBody's + + messages. The first element is the primary signer and + the one which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. The + first signer is the + + primary signer and the one which pays the fee. The fee + can be calculated + + based on the cost of evaluating the body and doing + signature verification + + of the signers. This can be estimated via simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which + implements the custom method + + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in + transaction processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for + paying the fees. If set, the + + specified account must pay the fees. the payer + must be a tx signer (and + + thus have signed this field in AuthInfo). setting + this field does *not* + + change the ordering of required signers for the + transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or + the value of the payer + + field) requests that a fee grant be used to pay + fees instead of the fee + + payer's own balance. If an appropriate fee grant + does not exist or the + + chain does not support fee grants, this will fail + tip: + description: >- + Tip is the optional tip used for transactions fees + paid in another denom. + + + This field is ignored if the chain didn't enable tips, + i.e. didn't add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which + implements the custom method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: >- + tipper is the address of the account paying for + the tip + description: >- + AuthInfo describes the fee and signer modes that are used + to sign a + + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the length + and order of + + AuthInfo's signer_infos to allow connecting signature meta + information like + + public key and signing mode by position. + description: |- + TxEncodeRequest is the request type for the Service.TxEncode + RPC method. + tags: + - Service + /cosmos/tx/v1beta1/encode/amino: + post: + summary: TxEncodeAmino encodes an Amino transaction from JSON to encoded bytes. + operationId: TxEncodeAmino_28675 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + amino_binary: + type: string + format: byte + description: >- + TxEncodeAminoResponse is the response type for the + Service.TxEncodeAmino + + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: body + in: body + required: true + schema: + type: object + properties: + amino_json: + type: string + description: >- + TxEncodeAminoRequest is the request type for the + Service.TxEncodeAmino + + RPC method. + tags: + - Service + /cosmos/tx/v1beta1/simulate: + post: + summary: Simulate simulates executing a transaction for estimating gas usage. + operationId: Simulate_14257 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + gas_info: + description: gas_info is the information about gas used in the simulation. + type: object + properties: + gas_wanted: + type: string + format: uint64 + description: >- + GasWanted is the maximum units of work we allow this tx to + perform. + gas_used: + type: string + format: uint64 + description: GasUsed is the amount of gas actually consumed. + result: + description: result is the result of the simulation. + type: object + properties: + data: + type: string + format: byte + description: >- + Data is any data returned from message or handler + execution. It MUST be + + length prefixed in order to separate data from multiple + message executions. + + Deprecated. This field is still populated, but prefer + msg_response instead + + because it also contains the Msg response typeURL. + log: + type: string + description: >- + Log contains the log information from message or handler + execution. + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + index: + type: boolean + description: >- + EventAttribute is a single key-value pair, + associated with an event. + description: >- + Event allows application developers to attach additional + information to + + ResponseFinalizeBlock and ResponseCheckTx. + + Later, transactions may be queried using these events. + description: >- + Events contains a slice of Event objects that were emitted + during message + + or handler execution. + msg_responses: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + msg_responses contains the Msg handler responses type + packed in Anys. + description: |- + SimulateResponse is the response type for the + Service.SimulateRPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: body + in: body + required: true + schema: + type: object + properties: + tx: + description: |- + tx is the transaction to simulate. + Deprecated. Send raw tx bytes instead. + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The + required signers of + + those messages define the number and order of elements + in AuthInfo's + + signer_infos and Tx's signatures. Each required signer + address is added to + + the list only the first time it occurs. + + By convention, the first required signer (usually from + the first message) + + is referred to as the primary signer and pays the fee + for the whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to the + transaction. + + WARNING: in clients, any publicly exposed text should + not be called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this + transaction will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the + transaction signer(s) + + intend for the transaction to be evaluated and + executed in an un-ordered + + fashion. Specifically, the account's nonce will NOT be + checked or + + incremented, which allows for fire-and-forget as well + as concurrent + + transaction execution. + + + Note, when set to true, the existing + 'timeout_timestamp' value must + + be set and will be used to correspond to a timestamp + in which the transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any + transaction with unordered=true and a non-zero + sequence value will + + be rejected. + + External services that make assumptions about sequence + values may need to be updated because of this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this + transaction will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the + transaction is deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be + added by chains + + when the default options are not sufficient. If any of + these are present + + and can't be handled, the transaction will be rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be + added by chains + + when the default options are not sufficient. If any of + these are present + + and can't be handled, they will be ignored + description: >- + TxBody is the body of a transaction that all signers sign + over. + auth_info: + title: >- + auth_info is the authorization related content of the + transaction, + + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies + the type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the + URL's path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into + the binary all types that they + + expect it to use in the context of Any. + However, for URLs which use the + + scheme `http`, `https`, or no scheme, one + can optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is + assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for + type URLs beginning with + + type.googleapis.com. As of May 2023, there + are no widely used type server + + implementations and no plans to implement + one. + + + Schemes other than `http`, `https` (or the + empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer + of the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack + Any values in the form + + of utility functions or additional generated + methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library + will by default use + + 'type.googleapis.com/full.type.name' as the type + URL and the unpack + + methods only use the fully qualified type name + after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses + the regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and + has a custom JSON + + representation, that representation will be + embedded adding a field + + `value` which holds the custom JSON in addition + to the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the + signer and is a nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: >- + mode is the signing mode of the single + signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with + its own security guarantees. + + + This enum should be considered a + registry of all known sign modes + + in the Cosmos ecosystem. Apps are not + expected to support all known + + sign modes. Apps that would like to + support custom sign modes are + + encouraged to open a small PR against + this file to add a new case + + to this SignMode enum describing their + sign mode so that different + + apps have a consistent version of this + enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on + top of the binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to + SIGN_MODE_DIRECT, this sign mode does + not + + require signers signing over other + signers' `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the + future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: + https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is + registered as a SignMode enum variant, + + but is not implemented on the SDK by + default. To enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK + may decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the + multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of + a space efficient bit array. + + This is used to ensure that the encoded + data takes up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not + intended for concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of + the signers of the multisig + + which could include nested multisig + public keys + description: >- + ModeInfo describes the signing mode of a single + or nested multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which + describes the + + number of committed transactions signed by a + given address. It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing mode + of a single top-level + + signer. + description: >- + signer_infos defines the signing modes for the + required signers. The number + + and order of elements must match the required signers + from TxBody's + + messages. The first element is the primary signer and + the one which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. The + first signer is the + + primary signer and the one which pays the fee. The fee + can be calculated + + based on the cost of evaluating the body and doing + signature verification + + of the signers. This can be estimated via simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which + implements the custom method + + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in + transaction processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for + paying the fees. If set, the + + specified account must pay the fees. the payer + must be a tx signer (and + + thus have signed this field in AuthInfo). setting + this field does *not* + + change the ordering of required signers for the + transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or + the value of the payer + + field) requests that a fee grant be used to pay + fees instead of the fee + + payer's own balance. If an appropriate fee grant + does not exist or the + + chain does not support fee grants, this will fail + tip: + description: >- + Tip is the optional tip used for transactions fees + paid in another denom. + + + This field is ignored if the chain didn't enable tips, + i.e. didn't add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which + implements the custom method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: >- + tipper is the address of the account paying for + the tip + description: >- + AuthInfo describes the fee and signer modes that are used + to sign a + + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the length + and order of + + AuthInfo's signer_infos to allow connecting signature meta + information like + + public key and signing mode by position. + tx_bytes: + type: string + format: byte + description: tx_bytes is the raw transaction. + description: |- + SimulateRequest is the request type for the Service.Simulate + RPC method. + tags: + - Service + /cosmos/tx/v1beta1/txs: + get: + summary: GetTxsEvent fetches txs by event. + operationId: GetTxsEvent_18338 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + txs: + type: array + items: + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies + the type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the + URL's path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. + However, for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is + assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the + empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack + Any values in the form + + of utility functions or additional generated + methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type + URL and the unpack + + methods only use the fully qualified type name + after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has + a custom JSON + + representation, that representation will be + embedded adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The + required signers of + + those messages define the number and order of + elements in AuthInfo's + + signer_infos and Tx's signatures. Each required + signer address is added to + + the list only the first time it occurs. + + By convention, the first required signer (usually + from the first message) + + is referred to as the primary signer and pays the + fee for the whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to + the transaction. + + WARNING: in clients, any publicly exposed text + should not be called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this + transaction will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the + transaction signer(s) + + intend for the transaction to be evaluated and + executed in an un-ordered + + fashion. Specifically, the account's nonce will NOT + be checked or + + incremented, which allows for fire-and-forget as + well as concurrent + + transaction execution. + + + Note, when set to true, the existing + 'timeout_timestamp' value must + + be set and will be used to correspond to a timestamp + in which the transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any + transaction with unordered=true and a non-zero + sequence value will + + be rejected. + + External services that make assumptions about + sequence values may need to be updated because of + this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this + transaction will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the + transaction is deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies + the type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the + URL's path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. + However, for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is + assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the + empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack + Any values in the form + + of utility functions or additional generated + methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type + URL and the unpack + + methods only use the fully qualified type name + after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has + a custom JSON + + representation, that representation will be + embedded adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be + added by chains + + when the default options are not sufficient. If any + of these are present + + and can't be handled, the transaction will be + rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies + the type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the + URL's path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. + However, for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is + assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the + empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack + Any values in the form + + of utility functions or additional generated + methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type + URL and the unpack + + methods only use the fully qualified type name + after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has + a custom JSON + + representation, that representation will be + embedded adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be + added by chains + + when the default options are not sufficient. If any + of these are present + + and can't be handled, they will be ignored + description: >- + TxBody is the body of a transaction that all signers + sign over. + auth_info: + title: >- + auth_info is the authorization related content of the + transaction, + + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely + identifies the type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the + URL's path must represent + + the fully qualified name of the type (as + in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into + the binary all types that they + + expect it to use in the context of Any. + However, for URLs which use the + + scheme `http`, `https`, or no scheme, one + can optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is + assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for + type URLs beginning with + + type.googleapis.com. As of May 2023, there + are no widely used type server + + implementations and no plans to implement + one. + + + Schemes other than `http`, `https` (or the + empty scheme) might be + + used with implementation specific + semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer + of the above specified type. + description: >- + `Any` contains an arbitrary serialized + protocol buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to + pack/unpack Any values in the form + + of utility functions or additional generated + methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library + will by default use + + 'type.googleapis.com/full.type.name' as the + type URL and the unpack + + methods only use the fully qualified type name + after the last '/' + + in the type URL, for example + "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses + the regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the + type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and + has a custom JSON + + representation, that representation will be + embedded adding a field + + `value` which holds the custom JSON in + addition to the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the + signer and is a nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: >- + mode is the signing mode of the single + signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with + its own security guarantees. + + + This enum should be considered a + registry of all known sign modes + + in the Cosmos ecosystem. Apps are not + expected to support all known + + sign modes. Apps that would like to + support custom sign modes are + + encouraged to open a small PR against + this file to add a new case + + to this SignMode enum describing their + sign mode so that different + + apps have a consistent version of this + enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on + top of the binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to + SIGN_MODE_DIRECT, this sign mode does + not + + require signers signing over other + signers' `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the + future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: + https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is + registered as a SignMode enum variant, + + but is not implemented on the SDK by + default. To enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK + may decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the + multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of + a space efficient bit array. + + This is used to ensure that the encoded + data takes up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not + intended for concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of + the signers of the multisig + + which could include nested multisig + public keys + description: >- + ModeInfo describes the signing mode of a + single or nested multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which + describes the + + number of committed transactions signed by a + given address. It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing + mode of a single top-level + + signer. + description: >- + signer_infos defines the signing modes for the + required signers. The number + + and order of elements must match the required + signers from TxBody's + + messages. The first element is the primary signer + and the one which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. + The first signer is the + + primary signer and the one which pays the fee. The + fee can be calculated + + based on the cost of evaluating the body and doing + signature verification + + of the signers. This can be estimated via + simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and + an amount. + + + NOTE: The amount field is an Int which + implements the custom method + + signatures required by gogoproto. + title: >- + amount is the amount of coins to be paid as a + fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in + transaction processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for + paying the fees. If set, the + + specified account must pay the fees. the payer + must be a tx signer (and + + thus have signed this field in AuthInfo). + setting this field does *not* + + change the ordering of required signers for the + transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer + or the value of the payer + + field) requests that a fee grant be used to pay + fees instead of the fee + + payer's own balance. If an appropriate fee grant + does not exist or the + + chain does not support fee grants, this will + fail + tip: + description: >- + Tip is the optional tip used for transactions fees + paid in another denom. + + + This field is ignored if the chain didn't enable + tips, i.e. didn't add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and + an amount. + + + NOTE: The amount field is an Int which + implements the custom method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: >- + tipper is the address of the account paying for + the tip + description: >- + AuthInfo describes the fee and signer modes that are + used to sign a + + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the + length and order of + + AuthInfo's signer_infos to allow connecting signature + meta information like + + public key and signing mode by position. + description: Tx is the standard type used for broadcasting transactions. + description: txs is the list of queried transactions. + tx_responses: + type: array + items: + type: object + properties: + height: + type: string + format: int64 + title: The block height + txhash: + type: string + description: The transaction hash. + codespace: + type: string + title: Namespace for the Code + code: + type: integer + format: int64 + description: Response code. + data: + type: string + description: Result bytes, if any. + raw_log: + type: string + description: >- + The output of the application's logger (raw string). May + be + + non-deterministic. + logs: + type: array + items: + type: object + properties: + msg_index: + type: integer + format: int64 + log: + type: string + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + description: >- + Attribute defines an attribute wrapper + where the key and value are + + strings instead of raw bytes. + description: >- + StringEvent defines en Event object wrapper + where all the attributes + + contain key/value pairs that are strings instead + of raw bytes. + description: >- + Events contains a slice of Event objects that were + emitted during some + + execution. + description: >- + ABCIMessageLog defines a structure containing an + indexed tx ABCI message log. + description: >- + The output of the application's logger (typed). May be + non-deterministic. + info: + type: string + description: Additional information. May be non-deterministic. + gas_wanted: + type: string + format: int64 + description: Amount of gas requested for transaction. + gas_used: + type: string + format: int64 + description: Amount of gas consumed by transaction. + tx: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + timestamp: + type: string + description: >- + Time of the previous block. For heights > 1, it's the + weighted median of + + the timestamps of the valid votes in the + block.LastCommit. For height == 1, + + it's genesis time. + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + index: + type: boolean + description: >- + EventAttribute is a single key-value pair, + associated with an event. + description: >- + Event allows application developers to attach + additional information to + + ResponseFinalizeBlock and ResponseCheckTx. + + Later, transactions may be queried using these events. + description: >- + Events defines all the events emitted by processing a + transaction. Note, + + these events include those emitted by processing all the + messages and those + + emitted from the ante. Whereas Logs contains the events, + with + + additional metadata, emitted only by processing the + messages. + description: >- + TxResponse defines a structure containing relevant tx data + and metadata. The + + tags are stringified and the log is JSON decoded. + description: tx_responses is the list of queried TxResponses. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + total: + type: string + format: uint64 + title: total is total number of results available + description: >- + GetTxsEventResponse is the response type for the + Service.TxsByEvents + + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: events + description: >- + events is the list of transaction event type. + + Deprecated post v0.47.x: use query instead, which should contain a + valid + + events query. + in: query + required: false + type: array + items: + type: string + collectionFormat: multi + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + - name: order_by + description: |2- + - ORDER_BY_UNSPECIFIED: ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults + to ASC in this case. + - ORDER_BY_ASC: ORDER_BY_ASC defines ascending order + - ORDER_BY_DESC: ORDER_BY_DESC defines descending order + in: query + required: false + type: string + enum: + - ORDER_BY_UNSPECIFIED + - ORDER_BY_ASC + - ORDER_BY_DESC + default: ORDER_BY_UNSPECIFIED + - name: page + description: |- + page is the page number to query, starts at 1. If not provided, will + default to first page. + in: query + required: false + type: string + format: uint64 + - name: limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: query + description: >- + query defines the transaction event query that is proxied to + Tendermint's + + TxSearch RPC method. The query must be valid. + in: query + required: false + type: string + tags: + - Service + post: + summary: BroadcastTx broadcast transaction. + operationId: BroadcastTx_11338 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + tx_response: + type: object + properties: + height: + type: string + format: int64 + title: The block height + txhash: + type: string + description: The transaction hash. + codespace: + type: string + title: Namespace for the Code + code: + type: integer + format: int64 + description: Response code. + data: + type: string + description: Result bytes, if any. + raw_log: + type: string + description: >- + The output of the application's logger (raw string). May + be + + non-deterministic. + logs: + type: array + items: + type: object + properties: + msg_index: + type: integer + format: int64 + log: + type: string + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + description: >- + Attribute defines an attribute wrapper where + the key and value are + + strings instead of raw bytes. + description: >- + StringEvent defines en Event object wrapper where + all the attributes + + contain key/value pairs that are strings instead + of raw bytes. + description: >- + Events contains a slice of Event objects that were + emitted during some + + execution. + description: >- + ABCIMessageLog defines a structure containing an indexed + tx ABCI message log. + description: >- + The output of the application's logger (typed). May be + non-deterministic. + info: + type: string + description: Additional information. May be non-deterministic. + gas_wanted: + type: string + format: int64 + description: Amount of gas requested for transaction. + gas_used: + type: string + format: int64 + description: Amount of gas consumed by transaction. + tx: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + timestamp: + type: string + description: >- + Time of the previous block. For heights > 1, it's the + weighted median of + + the timestamps of the valid votes in the block.LastCommit. + For height == 1, + + it's genesis time. + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + index: + type: boolean + description: >- + EventAttribute is a single key-value pair, + associated with an event. + description: >- + Event allows application developers to attach additional + information to + + ResponseFinalizeBlock and ResponseCheckTx. + + Later, transactions may be queried using these events. + description: >- + Events defines all the events emitted by processing a + transaction. Note, + + these events include those emitted by processing all the + messages and those + + emitted from the ante. Whereas Logs contains the events, + with + + additional metadata, emitted only by processing the + messages. + description: >- + TxResponse defines a structure containing relevant tx data and + metadata. The + + tags are stringified and the log is JSON decoded. + description: |- + BroadcastTxResponse is the response type for the + Service.BroadcastTx method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: body + in: body + required: true + schema: + type: object + properties: + tx_bytes: + type: string + format: byte + description: tx_bytes is the raw transaction. + mode: + type: string + enum: + - BROADCAST_MODE_UNSPECIFIED + - BROADCAST_MODE_BLOCK + - BROADCAST_MODE_SYNC + - BROADCAST_MODE_ASYNC + default: BROADCAST_MODE_UNSPECIFIED + description: >- + BroadcastMode specifies the broadcast mode for the + TxService.Broadcast RPC + + method. + + - BROADCAST_MODE_UNSPECIFIED: zero-value for mode ordering + - BROADCAST_MODE_BLOCK: DEPRECATED: use BROADCAST_MODE_SYNC instead, + BROADCAST_MODE_BLOCK is not supported by the SDK from v0.47.x + onwards. + - BROADCAST_MODE_SYNC: BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits + for a CheckTx execution response only. + - BROADCAST_MODE_ASYNC: BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client + returns immediately. + description: >- + BroadcastTxRequest is the request type for the + Service.BroadcastTxRequest + + RPC method. + tags: + - Service + /cosmos/tx/v1beta1/txs/block/{height}: + get: + summary: GetBlockWithTxs fetches a block with decoded txs. + operationId: GetBlockWithTxs_25708 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + txs: + type: array + items: + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies + the type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the + URL's path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. + However, for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is + assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the + empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack + Any values in the form + + of utility functions or additional generated + methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type + URL and the unpack + + methods only use the fully qualified type name + after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has + a custom JSON + + representation, that representation will be + embedded adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The + required signers of + + those messages define the number and order of + elements in AuthInfo's + + signer_infos and Tx's signatures. Each required + signer address is added to + + the list only the first time it occurs. + + By convention, the first required signer (usually + from the first message) + + is referred to as the primary signer and pays the + fee for the whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to + the transaction. + + WARNING: in clients, any publicly exposed text + should not be called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this + transaction will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the + transaction signer(s) + + intend for the transaction to be evaluated and + executed in an un-ordered + + fashion. Specifically, the account's nonce will NOT + be checked or + + incremented, which allows for fire-and-forget as + well as concurrent + + transaction execution. + + + Note, when set to true, the existing + 'timeout_timestamp' value must + + be set and will be used to correspond to a timestamp + in which the transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any + transaction with unordered=true and a non-zero + sequence value will + + be rejected. + + External services that make assumptions about + sequence values may need to be updated because of + this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this + transaction will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the + transaction is deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies + the type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the + URL's path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. + However, for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is + assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the + empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack + Any values in the form + + of utility functions or additional generated + methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type + URL and the unpack + + methods only use the fully qualified type name + after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has + a custom JSON + + representation, that representation will be + embedded adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be + added by chains + + when the default options are not sufficient. If any + of these are present + + and can't be handled, the transaction will be + rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies + the type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the + URL's path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. + However, for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is + assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the + empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack + Any values in the form + + of utility functions or additional generated + methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type + URL and the unpack + + methods only use the fully qualified type name + after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has + a custom JSON + + representation, that representation will be + embedded adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be + added by chains + + when the default options are not sufficient. If any + of these are present + + and can't be handled, they will be ignored + description: >- + TxBody is the body of a transaction that all signers + sign over. + auth_info: + title: >- + auth_info is the authorization related content of the + transaction, + + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely + identifies the type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the + URL's path must represent + + the fully qualified name of the type (as + in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into + the binary all types that they + + expect it to use in the context of Any. + However, for URLs which use the + + scheme `http`, `https`, or no scheme, one + can optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is + assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for + type URLs beginning with + + type.googleapis.com. As of May 2023, there + are no widely used type server + + implementations and no plans to implement + one. + + + Schemes other than `http`, `https` (or the + empty scheme) might be + + used with implementation specific + semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer + of the above specified type. + description: >- + `Any` contains an arbitrary serialized + protocol buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to + pack/unpack Any values in the form + + of utility functions or additional generated + methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library + will by default use + + 'type.googleapis.com/full.type.name' as the + type URL and the unpack + + methods only use the fully qualified type name + after the last '/' + + in the type URL, for example + "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses + the regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the + type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and + has a custom JSON + + representation, that representation will be + embedded adding a field + + `value` which holds the custom JSON in + addition to the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the + signer and is a nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: >- + mode is the signing mode of the single + signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with + its own security guarantees. + + + This enum should be considered a + registry of all known sign modes + + in the Cosmos ecosystem. Apps are not + expected to support all known + + sign modes. Apps that would like to + support custom sign modes are + + encouraged to open a small PR against + this file to add a new case + + to this SignMode enum describing their + sign mode so that different + + apps have a consistent version of this + enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on + top of the binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to + SIGN_MODE_DIRECT, this sign mode does + not + + require signers signing over other + signers' `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the + future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: + https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is + registered as a SignMode enum variant, + + but is not implemented on the SDK by + default. To enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK + may decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the + multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of + a space efficient bit array. + + This is used to ensure that the encoded + data takes up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not + intended for concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of + the signers of the multisig + + which could include nested multisig + public keys + description: >- + ModeInfo describes the signing mode of a + single or nested multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which + describes the + + number of committed transactions signed by a + given address. It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing + mode of a single top-level + + signer. + description: >- + signer_infos defines the signing modes for the + required signers. The number + + and order of elements must match the required + signers from TxBody's + + messages. The first element is the primary signer + and the one which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. + The first signer is the + + primary signer and the one which pays the fee. The + fee can be calculated + + based on the cost of evaluating the body and doing + signature verification + + of the signers. This can be estimated via + simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and + an amount. + + + NOTE: The amount field is an Int which + implements the custom method + + signatures required by gogoproto. + title: >- + amount is the amount of coins to be paid as a + fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in + transaction processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for + paying the fees. If set, the + + specified account must pay the fees. the payer + must be a tx signer (and + + thus have signed this field in AuthInfo). + setting this field does *not* + + change the ordering of required signers for the + transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer + or the value of the payer + + field) requests that a fee grant be used to pay + fees instead of the fee + + payer's own balance. If an appropriate fee grant + does not exist or the + + chain does not support fee grants, this will + fail + tip: + description: >- + Tip is the optional tip used for transactions fees + paid in another denom. + + + This field is ignored if the chain didn't enable + tips, i.e. didn't add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and + an amount. + + + NOTE: The amount field is an Int which + implements the custom method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: >- + tipper is the address of the account paying for + the tip + description: >- + AuthInfo describes the fee and signer modes that are + used to sign a + + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the + length and order of + + AuthInfo's signer_infos to allow connecting signature + meta information like + + public key and signing mode by position. + description: Tx is the standard type used for broadcasting transactions. + description: txs are the transactions in the block. + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + block: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing + a block in the blockchain, + + including all blockchain data structures and the rules + of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing + on the order first. + + This means that block.AppHash does not include these + txs. + title: >- + Data contains the set of transactions included in the + block + evidence: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed + message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the + application. Only valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the + validator if they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote + from validators for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed + message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the + application. Only valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the + validator if they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote + from validators for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a + validator signed two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules + for processing a block in the + blockchain, + + including all blockchain data structures + and the rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: >- + hashes from the app output from the prev + block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: >- + Header defines the structure of a block + header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included + in a Commit. + description: >- + Commit contains the evidence that a + block was committed by a set of + validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a + set of validators attempting to mislead a light + client. + last_commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included in a + Commit. + description: >- + Commit contains the evidence that a block was committed by + a set of validators. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + GetBlockWithTxsResponse is the response type for the + Service.GetBlockWithTxs + + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: height + description: height is the height of the block to query. + in: path + required: true + type: string + format: int64 + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Service + /cosmos/tx/v1beta1/txs/{hash}: + get: + summary: GetTx fetches a tx by hash. + operationId: GetTx_19925 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + tx: + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The + required signers of + + those messages define the number and order of elements + in AuthInfo's + + signer_infos and Tx's signatures. Each required signer + address is added to + + the list only the first time it occurs. + + By convention, the first required signer (usually from + the first message) + + is referred to as the primary signer and pays the fee + for the whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to the + transaction. + + WARNING: in clients, any publicly exposed text should + not be called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this + transaction will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the + transaction signer(s) + + intend for the transaction to be evaluated and + executed in an un-ordered + + fashion. Specifically, the account's nonce will NOT be + checked or + + incremented, which allows for fire-and-forget as well + as concurrent + + transaction execution. + + + Note, when set to true, the existing + 'timeout_timestamp' value must + + be set and will be used to correspond to a timestamp + in which the transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any + transaction with unordered=true and a non-zero + sequence value will + + be rejected. + + External services that make assumptions about sequence + values may need to be updated because of this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this + transaction will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the + transaction is deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be + added by chains + + when the default options are not sufficient. If any of + these are present + + and can't be handled, the transaction will be rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be + added by chains + + when the default options are not sufficient. If any of + these are present + + and can't be handled, they will be ignored + description: >- + TxBody is the body of a transaction that all signers sign + over. + auth_info: + title: >- + auth_info is the authorization related content of the + transaction, + + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies + the type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the + URL's path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into + the binary all types that they + + expect it to use in the context of Any. + However, for URLs which use the + + scheme `http`, `https`, or no scheme, one + can optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is + assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for + type URLs beginning with + + type.googleapis.com. As of May 2023, there + are no widely used type server + + implementations and no plans to implement + one. + + + Schemes other than `http`, `https` (or the + empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer + of the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack + Any values in the form + + of utility functions or additional generated + methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library + will by default use + + 'type.googleapis.com/full.type.name' as the type + URL and the unpack + + methods only use the fully qualified type name + after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses + the regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and + has a custom JSON + + representation, that representation will be + embedded adding a field + + `value` which holds the custom JSON in addition + to the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the + signer and is a nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: >- + mode is the signing mode of the single + signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with + its own security guarantees. + + + This enum should be considered a + registry of all known sign modes + + in the Cosmos ecosystem. Apps are not + expected to support all known + + sign modes. Apps that would like to + support custom sign modes are + + encouraged to open a small PR against + this file to add a new case + + to this SignMode enum describing their + sign mode so that different + + apps have a consistent version of this + enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on + top of the binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to + SIGN_MODE_DIRECT, this sign mode does + not + + require signers signing over other + signers' `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the + future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: + https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is + registered as a SignMode enum variant, + + but is not implemented on the SDK by + default. To enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK + may decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the + multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of + a space efficient bit array. + + This is used to ensure that the encoded + data takes up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not + intended for concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of + the signers of the multisig + + which could include nested multisig + public keys + description: >- + ModeInfo describes the signing mode of a single + or nested multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which + describes the + + number of committed transactions signed by a + given address. It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing mode + of a single top-level + + signer. + description: >- + signer_infos defines the signing modes for the + required signers. The number + + and order of elements must match the required signers + from TxBody's + + messages. The first element is the primary signer and + the one which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. The + first signer is the + + primary signer and the one which pays the fee. The fee + can be calculated + + based on the cost of evaluating the body and doing + signature verification + + of the signers. This can be estimated via simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which + implements the custom method + + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in + transaction processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for + paying the fees. If set, the + + specified account must pay the fees. the payer + must be a tx signer (and + + thus have signed this field in AuthInfo). setting + this field does *not* + + change the ordering of required signers for the + transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or + the value of the payer + + field) requests that a fee grant be used to pay + fees instead of the fee + + payer's own balance. If an appropriate fee grant + does not exist or the + + chain does not support fee grants, this will fail + tip: + description: >- + Tip is the optional tip used for transactions fees + paid in another denom. + + + This field is ignored if the chain didn't enable tips, + i.e. didn't add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which + implements the custom method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: >- + tipper is the address of the account paying for + the tip + description: >- + AuthInfo describes the fee and signer modes that are used + to sign a + + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the length + and order of + + AuthInfo's signer_infos to allow connecting signature meta + information like + + public key and signing mode by position. + description: Tx is the standard type used for broadcasting transactions. + tx_response: + type: object + properties: + height: + type: string + format: int64 + title: The block height + txhash: + type: string + description: The transaction hash. + codespace: + type: string + title: Namespace for the Code + code: + type: integer + format: int64 + description: Response code. + data: + type: string + description: Result bytes, if any. + raw_log: + type: string + description: >- + The output of the application's logger (raw string). May + be + + non-deterministic. + logs: + type: array + items: + type: object + properties: + msg_index: + type: integer + format: int64 + log: + type: string + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + description: >- + Attribute defines an attribute wrapper where + the key and value are + + strings instead of raw bytes. + description: >- + StringEvent defines en Event object wrapper where + all the attributes + + contain key/value pairs that are strings instead + of raw bytes. + description: >- + Events contains a slice of Event objects that were + emitted during some + + execution. + description: >- + ABCIMessageLog defines a structure containing an indexed + tx ABCI message log. + description: >- + The output of the application's logger (typed). May be + non-deterministic. + info: + type: string + description: Additional information. May be non-deterministic. + gas_wanted: + type: string + format: int64 + description: Amount of gas requested for transaction. + gas_used: + type: string + format: int64 + description: Amount of gas consumed by transaction. + tx: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + timestamp: + type: string + description: >- + Time of the previous block. For heights > 1, it's the + weighted median of + + the timestamps of the valid votes in the block.LastCommit. + For height == 1, + + it's genesis time. + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + index: + type: boolean + description: >- + EventAttribute is a single key-value pair, + associated with an event. + description: >- + Event allows application developers to attach additional + information to + + ResponseFinalizeBlock and ResponseCheckTx. + + Later, transactions may be queried using these events. + description: >- + Events defines all the events emitted by processing a + transaction. Note, + + these events include those emitted by processing all the + messages and those + + emitted from the ante. Whereas Logs contains the events, + with + + additional metadata, emitted only by processing the + messages. + description: >- + TxResponse defines a structure containing relevant tx data and + metadata. The + + tags are stringified and the log is JSON decoded. + description: GetTxResponse is the response type for the Service.GetTx method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: hash + description: hash is the tx hash to query, encoded as a hex string. + in: path + required: true + type: string + tags: + - Service + /cosmos/epochs/v1beta1/current_epoch: + get: + summary: CurrentEpoch provide current epoch of specified identifier + operationId: CurrentEpoch_06227 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + current_epoch: + type: string + format: int64 + description: |- + QueryCurrentEpochResponse defines the gRPC response structure for + querying an epoch by its identifier. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: identifier + in: query + required: false + type: string + tags: + - Query + /cosmos/epochs/v1beta1/epochs: + get: + summary: EpochInfos provide running epochInfos + operationId: EpochInfos_13080 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + epochs: + type: array + items: + type: object + properties: + identifier: + type: string + description: >- + identifier is a unique reference to this particular + timer. + start_time: + type: string + format: date-time + description: >- + start_time is the time at which the timer first ever + ticks. + + If start_time is in the future, the epoch will not begin + until the start + + time. + duration: + type: string + description: >- + duration is the time in between epoch ticks. + + In order for intended behavior to be met, duration + should + + be greater than the chains expected block time. + + Duration must be non-zero. + current_epoch: + type: string + format: int64 + description: >- + current_epoch is the current epoch number, or in other + words, + + how many times has the timer 'ticked'. + + The first tick (current_epoch=1) is defined as + + the first block whose blocktime is greater than the + EpochInfo start_time. + current_epoch_start_time: + type: string + format: date-time + description: >- + current_epoch_start_time describes the start time of the + current timer + + interval. The interval is (current_epoch_start_time, + + current_epoch_start_time + duration] When the timer + ticks, this is set to + + current_epoch_start_time = last_epoch_start_time + + duration only one timer + + tick for a given identifier can occur per block. + + + NOTE! The current_epoch_start_time may diverge + significantly from the + + wall-clock time the epoch began at. Wall-clock time of + epoch start may be + + >> current_epoch_start_time. Suppose + current_epoch_start_time = 10, + + duration = 5. Suppose the chain goes offline at t=14, + and comes back online + + at t=30, and produces blocks at every successive time. + (t=31, 32, etc.) + + * The t=30 block will start the epoch for (10, 15] + + * The t=31 block will start the epoch for (15, 20] + + * The t=32 block will start the epoch for (20, 25] + + * The t=33 block will start the epoch for (25, 30] + + * The t=34 block will start the epoch for (30, 35] + + * The **t=36** block will start the epoch for (35, 40] + epoch_counting_started: + type: boolean + description: >- + epoch_counting_started is a boolean, that indicates + whether this + + epoch timer has began yet. + current_epoch_start_height: + type: string + format: int64 + title: >- + current_epoch_start_height is the block height at which + the current epoch + + started. (The block height at which the timer last + ticked) + description: |- + EpochInfo is a struct that describes the data going into + a timer defined by the x/epochs module. + description: |- + QueryEpochInfosRequest defines the gRPC response structure for + querying all epoch info. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/protocolpool/v1/community_pool: + get: + summary: CommunityPool queries the community pool coins. + operationId: CommunityPool_26086 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + pool: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: pool defines community pool's coins. + description: >- + QueryCommunityPoolResponse is the response type for the + Query/CommunityPool + + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/protocolpool/v1/continuous_funds: + get: + summary: ContinuousFunds queries all continuous funds in the store. + operationId: ContinuousFunds_30879 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + continuous_funds: + type: array + items: + type: object + properties: + recipient: + type: string + description: >- + Recipient is the address string of the account receiving + funds. + percentage: + type: string + description: >- + Percentage is the percentage of funds to be allocated + from Community pool. + expiry: + type: string + format: date-time + description: >- + Optional, if expiry is set, removes the state object + when expired. + description: >- + ContinuousFund defines the fields of continuous fund + proposal. + description: ContinuousFunds defines all continuous funds in state. + description: >- + QueryUnclaimedBudgetResponse is the response type for the + Query/ContinuousFunds + + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/protocolpool/v1/continuous_funds/{recipient}: + get: + summary: >- + ContinuousFund queries a continuous fund by the recipient is is + associated with. + operationId: ContinuousFund_30205 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + continuous_fund: + type: object + properties: + recipient: + type: string + description: >- + Recipient is the address string of the account receiving + funds. + percentage: + type: string + description: >- + Percentage is the percentage of funds to be allocated from + Community pool. + expiry: + type: string + format: date-time + description: >- + Optional, if expiry is set, removes the state object when + expired. + description: ContinuousFund defines the fields of continuous fund proposal. + description: >- + QueryUnclaimedBudgetResponse is the response type for the + Query/ContinuousFund + + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: recipient + description: >- + recipient is the recipient address to query unclaimed budget amount + for. + in: path + required: true + type: string + tags: + - Query + /cosmos/protocolpool/v1/params: + get: + summary: Params returns the total set of x/protocolpool parameters. + operationId: Params_10988 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + params: + type: object + properties: + enabled_distribution_denoms: + type: array + items: + type: string + description: >- + EnabledDistributionDenoms lists the denoms that are + allowed to be distributed. + + This is to avoid spending time distributing undesired + tokens to continuous funds and budgets. + distribution_frequency: + type: string + format: uint64 + description: >- + DistributionFrequency is the frequency (in terms of + blocks) that funds are distributed out from the + + x/protocolpool module. + description: Params defines the parameters for the protocolpool module. + description: >- + QueryParamsResponse is the response type for the Query/Params RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/staking/v1beta1/delegations/{delegator_addr}: + get: + summary: >- + DelegatorDelegations queries all delegations of a given delegator + address. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: DelegatorDelegations_05408 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + delegation_responses: + type: array + items: + type: object + properties: + delegation: + type: object + properties: + delegator_address: + type: string + description: >- + delegator_address is the encoded address of the + delegator. + validator_address: + type: string + description: >- + validator_address is the encoded address of the + validator. + shares: + type: string + description: shares define the delegation shares received. + description: >- + Delegation represents the bond with tokens held by an + account. It is + + owned by one delegator, and is associated with the + voting power of one + + validator. + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: >- + DelegationResponse is equivalent to Delegation except that + it contains a + + balance in addition to shares which is more suitable for + client responses. + description: >- + delegation_responses defines all the delegations' info of a + delegator. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: |- + QueryDelegatorDelegationsResponse is response type for the + Query/DelegatorDelegations RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: delegator_addr + description: delegator_addr defines the delegator address to query for. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/staking/v1beta1/delegators/{delegator_addr}/redelegations: + get: + summary: Redelegations queries redelegations of given address. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: Redelegations_05124 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + redelegation_responses: + type: array + items: + type: object + properties: + redelegation: + type: object + properties: + delegator_address: + type: string + description: >- + delegator_address is the bech32-encoded address of + the delegator. + validator_src_address: + type: string + description: >- + validator_src_address is the validator redelegation + source operator address. + validator_dst_address: + type: string + description: >- + validator_dst_address is the validator redelegation + destination operator address. + entries: + type: array + items: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height defines the height which the + redelegation took place. + completion_time: + type: string + format: date-time + description: >- + completion_time defines the unix time for + redelegation completion. + initial_balance: + type: string + description: >- + initial_balance defines the initial balance + when redelegation started. + shares_dst: + type: string + description: >- + shares_dst is the amount of + destination-validator shares created by + redelegation. + unbonding_id: + type: string + format: uint64 + title: >- + Incrementing id that uniquely identifies this + entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding + has been stopped by external modules + description: >- + RedelegationEntry defines a redelegation object + with relevant metadata. + description: entries are the redelegation entries. + description: >- + Redelegation contains the list of a particular + delegator's redelegating bonds + + from a particular source validator to a particular + destination validator. + entries: + type: array + items: + type: object + properties: + redelegation_entry: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height defines the height which the + redelegation took place. + completion_time: + type: string + format: date-time + description: >- + completion_time defines the unix time for + redelegation completion. + initial_balance: + type: string + description: >- + initial_balance defines the initial balance + when redelegation started. + shares_dst: + type: string + description: >- + shares_dst is the amount of + destination-validator shares created by + redelegation. + unbonding_id: + type: string + format: uint64 + title: >- + Incrementing id that uniquely identifies this + entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding + has been stopped by external modules + description: >- + RedelegationEntry defines a redelegation object + with relevant metadata. + balance: + type: string + description: >- + RedelegationEntryResponse is equivalent to a + RedelegationEntry except that it + + contains a balance in addition to shares which is more + suitable for client + + responses. + description: >- + RedelegationResponse is equivalent to a Redelegation except + that its entries + + contain a balance in addition to shares which is more + suitable for client + + responses. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryRedelegationsResponse is response type for the + Query/Redelegations RPC + + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: delegator_addr + description: delegator_addr defines the delegator address to query for. + in: path + required: true + type: string + - name: src_validator_addr + description: src_validator_addr defines the validator address to redelegate from. + in: query + required: false + type: string + - name: dst_validator_addr + description: dst_validator_addr defines the validator address to redelegate to. + in: query + required: false + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations: + get: + summary: >- + DelegatorUnbondingDelegations queries all unbonding delegations of a + given + + delegator address. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: DelegatorUnbondingDelegations_27332 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + unbonding_responses: + type: array + items: + type: object + properties: + delegator_address: + type: string + description: >- + delegator_address is the encoded address of the + delegator. + validator_address: + type: string + description: >- + validator_address is the encoded address of the + validator. + entries: + type: array + items: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height is the height which the unbonding + took place. + completion_time: + type: string + format: date-time + description: >- + completion_time is the unix time for unbonding + completion. + initial_balance: + type: string + description: >- + initial_balance defines the tokens initially + scheduled to receive at completion. + balance: + type: string + description: >- + balance defines the tokens to receive at + completion. + unbonding_id: + type: string + format: uint64 + title: >- + Incrementing id that uniquely identifies this + entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has + been stopped by external modules + description: >- + UnbondingDelegationEntry defines an unbonding object + with relevant metadata. + description: entries are the unbonding delegation entries. + description: >- + UnbondingDelegation stores all of a single delegator's + unbonding bonds + + for a single validator in an time-ordered list. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryUnbondingDelegatorDelegationsResponse is response type for + the + + Query/UnbondingDelegatorDelegations RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: delegator_addr + description: delegator_addr defines the delegator address to query for. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/staking/v1beta1/delegators/{delegator_addr}/validators: + get: + summary: |- + DelegatorValidators queries all validators info for given delegator + address. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: DelegatorValidators_31909 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + validators: + type: array + items: + type: object + properties: + operator_address: + type: string + description: >- + operator_address defines the address of the validator's + operator; bech encoded in JSON. + consensus_pubkey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + jailed: + type: boolean + description: >- + jailed defined whether the validator has been jailed + from bonded status or not. + status: + description: >- + status is the validator status + (bonded/unbonding/unbonded). + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + tokens: + type: string + description: >- + tokens define the delegated tokens (incl. + self-delegation). + delegator_shares: + type: string + description: >- + delegator_shares defines total shares issued to a + validator's delegators. + description: + description: >- + description defines the description terms for the + validator. + type: object + properties: + moniker: + type: string + description: >- + moniker defines a human-readable name for the + validator. + identity: + type: string + description: >- + identity defines an optional identity signature (ex. + UPort or Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: >- + security_contact defines an optional email for + security contact. + details: + type: string + description: details define other optional details. + unbonding_height: + type: string + format: int64 + description: >- + unbonding_height defines, if unbonding, the height at + which this validator has begun unbonding. + unbonding_time: + type: string + format: date-time + description: >- + unbonding_time defines, if unbonding, the min time for + the validator to complete unbonding. + commission: + description: commission defines the commission parameters. + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission + rates to be used for creating a validator. + type: object + properties: + rate: + type: string + description: >- + rate is the commission rate charged to + delegators, as a fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate + which validator can ever charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily + increase of the validator commission, as a + fraction. + update_time: + type: string + format: date-time + description: >- + update_time is the last time the commission rate was + changed. + min_self_delegation: + type: string + description: >- + min_self_delegation is the validator's self declared + minimum self delegation. + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + strictly positive if this validator's unbonding has been + stopped by external modules + unbonding_ids: + type: array + items: + type: string + format: uint64 + title: >- + list of unbonding ids, each uniquely identifing an + unbonding of this validator + description: >- + Validator defines a validator, together with the total + amount of the + + Validator's bond shares and their exchange rate to coins. + Slashing results in + + a decrease in the exchange rate, allowing correct + calculation of future + + undelegations without iterating over delegators. When coins + are delegated to + + this validator, the validator is credited with a delegation + whose number of + + bond shares is based on the amount of coins delegated + divided by the current + + exchange rate. Voting power can be calculated as total + bonded shares + + multiplied by exchange rate. + description: validators defines the validators' info of a delegator. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: |- + QueryDelegatorValidatorsResponse is response type for the + Query/DelegatorValidators RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: delegator_addr + description: delegator_addr defines the delegator address to query for. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/staking/v1beta1/delegators/{delegator_addr}/validators/{validator_addr}: + get: + summary: |- + DelegatorValidator queries validator info for given delegator validator + pair. + operationId: DelegatorValidator_18935 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + validator: + type: object + properties: + operator_address: + type: string + description: >- + operator_address defines the address of the validator's + operator; bech encoded in JSON. + consensus_pubkey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + jailed: + type: boolean + description: >- + jailed defined whether the validator has been jailed from + bonded status or not. + status: + description: >- + status is the validator status + (bonded/unbonding/unbonded). + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + tokens: + type: string + description: >- + tokens define the delegated tokens (incl. + self-delegation). + delegator_shares: + type: string + description: >- + delegator_shares defines total shares issued to a + validator's delegators. + description: + description: >- + description defines the description terms for the + validator. + type: object + properties: + moniker: + type: string + description: >- + moniker defines a human-readable name for the + validator. + identity: + type: string + description: >- + identity defines an optional identity signature (ex. + UPort or Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: >- + security_contact defines an optional email for + security contact. + details: + type: string + description: details define other optional details. + unbonding_height: + type: string + format: int64 + description: >- + unbonding_height defines, if unbonding, the height at + which this validator has begun unbonding. + unbonding_time: + type: string + format: date-time + description: >- + unbonding_time defines, if unbonding, the min time for the + validator to complete unbonding. + commission: + description: commission defines the commission parameters. + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission rates + to be used for creating a validator. + type: object + properties: + rate: + type: string + description: >- + rate is the commission rate charged to delegators, + as a fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate which + validator can ever charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily increase + of the validator commission, as a fraction. + update_time: + type: string + format: date-time + description: >- + update_time is the last time the commission rate was + changed. + min_self_delegation: + type: string + description: >- + min_self_delegation is the validator's self declared + minimum self delegation. + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + strictly positive if this validator's unbonding has been + stopped by external modules + unbonding_ids: + type: array + items: + type: string + format: uint64 + title: >- + list of unbonding ids, each uniquely identifing an + unbonding of this validator + description: >- + Validator defines a validator, together with the total amount + of the + + Validator's bond shares and their exchange rate to coins. + Slashing results in + + a decrease in the exchange rate, allowing correct calculation + of future + + undelegations without iterating over delegators. When coins + are delegated to + + this validator, the validator is credited with a delegation + whose number of + + bond shares is based on the amount of coins delegated divided + by the current + + exchange rate. Voting power can be calculated as total bonded + shares + + multiplied by exchange rate. + description: |- + QueryDelegatorValidatorResponse response type for the + Query/DelegatorValidator RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: delegator_addr + description: delegator_addr defines the delegator address to query for. + in: path + required: true + type: string + - name: validator_addr + description: validator_addr defines the validator address to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/staking/v1beta1/historical_info/{height}: + get: + summary: HistoricalInfo queries the historical info for given height. + operationId: HistoricalInfo_02627 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + hist: + description: hist defines the historical info at the given height. + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing + a block in the blockchain, + + including all blockchain data structures and the rules + of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + valset: + type: array + items: + type: object + properties: + operator_address: + type: string + description: >- + operator_address defines the address of the + validator's operator; bech encoded in JSON. + consensus_pubkey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must + contain at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name + should be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message + definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup + results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type + URLs beginning with + + type.googleapis.com. As of May 2023, there are + no widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of + the above specified type. + description: >- + `Any` contains an arbitrary serialized protocol + buffer message along with a + + URL that describes the type of the serialized + message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will + by default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" + will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded + message, with an + + additional field `@type` which contains the type + URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to + the `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + jailed: + type: boolean + description: >- + jailed defined whether the validator has been jailed + from bonded status or not. + status: + description: >- + status is the validator status + (bonded/unbonding/unbonded). + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + tokens: + type: string + description: >- + tokens define the delegated tokens (incl. + self-delegation). + delegator_shares: + type: string + description: >- + delegator_shares defines total shares issued to a + validator's delegators. + description: + description: >- + description defines the description terms for the + validator. + type: object + properties: + moniker: + type: string + description: >- + moniker defines a human-readable name for the + validator. + identity: + type: string + description: >- + identity defines an optional identity signature + (ex. UPort or Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: >- + security_contact defines an optional email for + security contact. + details: + type: string + description: details define other optional details. + unbonding_height: + type: string + format: int64 + description: >- + unbonding_height defines, if unbonding, the height + at which this validator has begun unbonding. + unbonding_time: + type: string + format: date-time + description: >- + unbonding_time defines, if unbonding, the min time + for the validator to complete unbonding. + commission: + description: commission defines the commission parameters. + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission + rates to be used for creating a validator. + type: object + properties: + rate: + type: string + description: >- + rate is the commission rate charged to + delegators, as a fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate + which validator can ever charge, as a + fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily + increase of the validator commission, as a + fraction. + update_time: + type: string + format: date-time + description: >- + update_time is the last time the commission rate + was changed. + min_self_delegation: + type: string + description: >- + min_self_delegation is the validator's self declared + minimum self delegation. + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + strictly positive if this validator's unbonding has + been stopped by external modules + unbonding_ids: + type: array + items: + type: string + format: uint64 + title: >- + list of unbonding ids, each uniquely identifing an + unbonding of this validator + description: >- + Validator defines a validator, together with the total + amount of the + + Validator's bond shares and their exchange rate to + coins. Slashing results in + + a decrease in the exchange rate, allowing correct + calculation of future + + undelegations without iterating over delegators. When + coins are delegated to + + this validator, the validator is credited with a + delegation whose number of + + bond shares is based on the amount of coins delegated + divided by the current + + exchange rate. Voting power can be calculated as total + bonded shares + + multiplied by exchange rate. + description: >- + QueryHistoricalInfoResponse is response type for the + Query/HistoricalInfo RPC + + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: height + description: height defines at which height to query the historical info. + in: path + required: true + type: string + format: int64 + tags: + - Query + /cosmos/staking/v1beta1/params: + get: + summary: Parameters queries the staking parameters. + operationId: Params_04961 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + params: + description: params holds all the parameters of this module. + type: object + properties: + unbonding_time: + type: string + description: unbonding_time is the time duration of unbonding. + max_validators: + type: integer + format: int64 + description: max_validators is the maximum number of validators. + max_entries: + type: integer + format: int64 + description: >- + max_entries is the max entries for either unbonding + delegation or redelegation (per pair/trio). + historical_entries: + type: integer + format: int64 + description: >- + historical_entries is the number of historical entries to + persist. + bond_denom: + type: string + description: bond_denom defines the bondable coin denomination. + min_commission_rate: + type: string + title: >- + min_commission_rate is the chain-wide minimum commission + rate that a validator can charge their delegators + description: >- + QueryParamsResponse is response type for the Query/Params RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/staking/v1beta1/pool: + get: + summary: Pool queries the pool info. + operationId: Pool_29824 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + pool: + description: pool defines the pool info. + type: object + properties: + not_bonded_tokens: + type: string + bonded_tokens: + type: string + description: QueryPoolResponse is response type for the Query/Pool RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/staking/v1beta1/validators: + get: + summary: Validators queries all validators that match the given status. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: Validators_02556 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + validators: + type: array + items: + type: object + properties: + operator_address: + type: string + description: >- + operator_address defines the address of the validator's + operator; bech encoded in JSON. + consensus_pubkey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + jailed: + type: boolean + description: >- + jailed defined whether the validator has been jailed + from bonded status or not. + status: + description: >- + status is the validator status + (bonded/unbonding/unbonded). + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + tokens: + type: string + description: >- + tokens define the delegated tokens (incl. + self-delegation). + delegator_shares: + type: string + description: >- + delegator_shares defines total shares issued to a + validator's delegators. + description: + description: >- + description defines the description terms for the + validator. + type: object + properties: + moniker: + type: string + description: >- + moniker defines a human-readable name for the + validator. + identity: + type: string + description: >- + identity defines an optional identity signature (ex. + UPort or Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: >- + security_contact defines an optional email for + security contact. + details: + type: string + description: details define other optional details. + unbonding_height: + type: string + format: int64 + description: >- + unbonding_height defines, if unbonding, the height at + which this validator has begun unbonding. + unbonding_time: + type: string + format: date-time + description: >- + unbonding_time defines, if unbonding, the min time for + the validator to complete unbonding. + commission: + description: commission defines the commission parameters. + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission + rates to be used for creating a validator. + type: object + properties: + rate: + type: string + description: >- + rate is the commission rate charged to + delegators, as a fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate + which validator can ever charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily + increase of the validator commission, as a + fraction. + update_time: + type: string + format: date-time + description: >- + update_time is the last time the commission rate was + changed. + min_self_delegation: + type: string + description: >- + min_self_delegation is the validator's self declared + minimum self delegation. + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + strictly positive if this validator's unbonding has been + stopped by external modules + unbonding_ids: + type: array + items: + type: string + format: uint64 + title: >- + list of unbonding ids, each uniquely identifing an + unbonding of this validator + description: >- + Validator defines a validator, together with the total + amount of the + + Validator's bond shares and their exchange rate to coins. + Slashing results in + + a decrease in the exchange rate, allowing correct + calculation of future + + undelegations without iterating over delegators. When coins + are delegated to + + this validator, the validator is credited with a delegation + whose number of + + bond shares is based on the amount of coins delegated + divided by the current + + exchange rate. Voting power can be calculated as total + bonded shares + + multiplied by exchange rate. + description: validators contains all the queried validators. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: >- + QueryValidatorsResponse is response type for the Query/Validators + RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: status + description: status enables to query for validators matching a given status. + in: query + required: false + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/staking/v1beta1/validators/{validator_addr}: + get: + summary: Validator queries validator info for given validator address. + operationId: Validator_15582 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + validator: + type: object + properties: + operator_address: + type: string + description: >- + operator_address defines the address of the validator's + operator; bech encoded in JSON. + consensus_pubkey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + jailed: + type: boolean + description: >- + jailed defined whether the validator has been jailed from + bonded status or not. + status: + description: >- + status is the validator status + (bonded/unbonding/unbonded). + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + tokens: + type: string + description: >- + tokens define the delegated tokens (incl. + self-delegation). + delegator_shares: + type: string + description: >- + delegator_shares defines total shares issued to a + validator's delegators. + description: + description: >- + description defines the description terms for the + validator. + type: object + properties: + moniker: + type: string + description: >- + moniker defines a human-readable name for the + validator. + identity: + type: string + description: >- + identity defines an optional identity signature (ex. + UPort or Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: >- + security_contact defines an optional email for + security contact. + details: + type: string + description: details define other optional details. + unbonding_height: + type: string + format: int64 + description: >- + unbonding_height defines, if unbonding, the height at + which this validator has begun unbonding. + unbonding_time: + type: string + format: date-time + description: >- + unbonding_time defines, if unbonding, the min time for the + validator to complete unbonding. + commission: + description: commission defines the commission parameters. + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission rates + to be used for creating a validator. + type: object + properties: + rate: + type: string + description: >- + rate is the commission rate charged to delegators, + as a fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate which + validator can ever charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily increase + of the validator commission, as a fraction. + update_time: + type: string + format: date-time + description: >- + update_time is the last time the commission rate was + changed. + min_self_delegation: + type: string + description: >- + min_self_delegation is the validator's self declared + minimum self delegation. + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + strictly positive if this validator's unbonding has been + stopped by external modules + unbonding_ids: + type: array + items: + type: string + format: uint64 + title: >- + list of unbonding ids, each uniquely identifing an + unbonding of this validator + description: >- + Validator defines a validator, together with the total amount + of the + + Validator's bond shares and their exchange rate to coins. + Slashing results in + + a decrease in the exchange rate, allowing correct calculation + of future + + undelegations without iterating over delegators. When coins + are delegated to + + this validator, the validator is credited with a delegation + whose number of + + bond shares is based on the amount of coins delegated divided + by the current + + exchange rate. Voting power can be calculated as total bonded + shares + + multiplied by exchange rate. + title: >- + QueryValidatorResponse is response type for the Query/Validator + RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: validator_addr + description: validator_addr defines the validator address to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/staking/v1beta1/validators/{validator_addr}/delegations: + get: + summary: ValidatorDelegations queries delegate info for given validator. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: ValidatorDelegations_21298 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + delegation_responses: + type: array + items: + type: object + properties: + delegation: + type: object + properties: + delegator_address: + type: string + description: >- + delegator_address is the encoded address of the + delegator. + validator_address: + type: string + description: >- + validator_address is the encoded address of the + validator. + shares: + type: string + description: shares define the delegation shares received. + description: >- + Delegation represents the bond with tokens held by an + account. It is + + owned by one delegator, and is associated with the + voting power of one + + validator. + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: >- + DelegationResponse is equivalent to Delegation except that + it contains a + + balance in addition to shares which is more suitable for + client responses. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: |- + QueryValidatorDelegationsResponse is response type for the + Query/ValidatorDelegations RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: validator_addr + description: validator_addr defines the validator address to query for. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/staking/v1beta1/validators/{validator_addr}/delegations/{delegator_addr}: + get: + summary: Delegation queries delegate info for given validator delegator pair. + operationId: Delegation_15402 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + delegation_response: + type: object + properties: + delegation: + type: object + properties: + delegator_address: + type: string + description: >- + delegator_address is the encoded address of the + delegator. + validator_address: + type: string + description: >- + validator_address is the encoded address of the + validator. + shares: + type: string + description: shares define the delegation shares received. + description: >- + Delegation represents the bond with tokens held by an + account. It is + + owned by one delegator, and is associated with the voting + power of one + + validator. + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: >- + DelegationResponse is equivalent to Delegation except that it + contains a + + balance in addition to shares which is more suitable for + client responses. + description: >- + QueryDelegationResponse is response type for the Query/Delegation + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: validator_addr + description: validator_addr defines the validator address to query for. + in: path + required: true + type: string + - name: delegator_addr + description: delegator_addr defines the delegator address to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/staking/v1beta1/validators/{validator_addr}/delegations/{delegator_addr}/unbonding_delegation: + get: + summary: |- + UnbondingDelegation queries unbonding info for given validator delegator + pair. + operationId: UnbondingDelegation_06357 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + unbond: + type: object + properties: + delegator_address: + type: string + description: delegator_address is the encoded address of the delegator. + validator_address: + type: string + description: validator_address is the encoded address of the validator. + entries: + type: array + items: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height is the height which the unbonding + took place. + completion_time: + type: string + format: date-time + description: >- + completion_time is the unix time for unbonding + completion. + initial_balance: + type: string + description: >- + initial_balance defines the tokens initially + scheduled to receive at completion. + balance: + type: string + description: balance defines the tokens to receive at completion. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been + stopped by external modules + description: >- + UnbondingDelegationEntry defines an unbonding object + with relevant metadata. + description: entries are the unbonding delegation entries. + description: >- + UnbondingDelegation stores all of a single delegator's + unbonding bonds + + for a single validator in an time-ordered list. + description: >- + QueryDelegationResponse is response type for the + Query/UnbondingDelegation + + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: validator_addr + description: validator_addr defines the validator address to query for. + in: path + required: true + type: string + - name: delegator_addr + description: delegator_addr defines the delegator address to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/staking/v1beta1/validators/{validator_addr}/unbonding_delegations: + get: + summary: >- + ValidatorUnbondingDelegations queries unbonding delegations of a + validator. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: ValidatorUnbondingDelegations_28720 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + unbonding_responses: + type: array + items: + type: object + properties: + delegator_address: + type: string + description: >- + delegator_address is the encoded address of the + delegator. + validator_address: + type: string + description: >- + validator_address is the encoded address of the + validator. + entries: + type: array + items: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height is the height which the unbonding + took place. + completion_time: + type: string + format: date-time + description: >- + completion_time is the unix time for unbonding + completion. + initial_balance: + type: string + description: >- + initial_balance defines the tokens initially + scheduled to receive at completion. + balance: + type: string + description: >- + balance defines the tokens to receive at + completion. + unbonding_id: + type: string + format: uint64 + title: >- + Incrementing id that uniquely identifies this + entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has + been stopped by external modules + description: >- + UnbondingDelegationEntry defines an unbonding object + with relevant metadata. + description: entries are the unbonding delegation entries. + description: >- + UnbondingDelegation stores all of a single delegator's + unbonding bonds + + for a single validator in an time-ordered list. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryValidatorUnbondingDelegationsResponse is response type for + the + + Query/ValidatorUnbondingDelegations RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: validator_addr + description: validator_addr defines the validator address to query for. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/params/v1beta1/params: + get: + summary: |- + Params queries a specific parameter of a module, given its subspace and + key. + operationId: Params_10155 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + param: + description: param defines the queried parameter. + type: object + properties: + subspace: + type: string + key: + type: string + value: + type: string + description: >- + QueryParamsResponse is response type for the Query/Params RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: subspace + description: subspace defines the module to query the parameter for. + in: query + required: false + type: string + - name: key + description: key defines the key of the parameter in the subspace. + in: query + required: false + type: string + tags: + - Query + /cosmos/params/v1beta1/subspaces: + get: + summary: >- + Subspaces queries for all registered subspaces and all keys for a + subspace. + operationId: Subspaces_27745 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + subspaces: + type: array + items: + type: object + properties: + subspace: + type: string + keys: + type: array + items: + type: string + description: >- + Subspace defines a parameter subspace name and all the keys + that exist for + + the subspace. + description: >- + QuerySubspacesResponse defines the response types for querying for + all + + registered subspaces and all keys for a subspace. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/authz/v1beta1/grants: + get: + summary: Returns list of `Authorization`, granted to the grantee by the granter. + operationId: Grants_20945 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + grants: + type: array + items: + type: object + properties: + authorization: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + expiration: + type: string + format: date-time + title: >- + time when the grant will expire and will be pruned. If + null, then the grant + + doesn't have a time expiration (other conditions in + `authorization` + + may apply to invalidate the grant) + description: |- + Grant gives permissions to execute + the provide method with expiration time. + description: >- + authorizations is a list of grants granted for grantee by + granter. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGrantsResponse is the response type for the + Query/Authorizations RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: granter + in: query + required: false + type: string + - name: grantee + in: query + required: false + type: string + - name: msg_type_url + description: >- + Optional, msg_type_url, when set, will query only grants matching + given msg type. + in: query + required: false + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/authz/v1beta1/grants/grantee/{grantee}: + get: + summary: GranteeGrants returns a list of `GrantAuthorization` by grantee. + operationId: GranteeGrants_14911 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + grants: + type: array + items: + type: object + properties: + granter: + type: string + grantee: + type: string + authorization: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + expiration: + type: string + format: date-time + title: >- + GrantAuthorization extends a grant with both the addresses + of the grantee and granter. + + It is used in genesis.proto and query.proto + description: grants is a list of grants granted to the grantee. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGranteeGrantsResponse is the response type for the + Query/GranteeGrants RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: grantee + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/authz/v1beta1/grants/granter/{granter}: + get: + summary: GranterGrants returns list of `GrantAuthorization`, granted by granter. + operationId: GranterGrants_07856 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + grants: + type: array + items: + type: object + properties: + granter: + type: string + grantee: + type: string + authorization: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + expiration: + type: string + format: date-time + title: >- + GrantAuthorization extends a grant with both the addresses + of the grantee and granter. + + It is used in genesis.proto and query.proto + description: grants is a list of grants granted by the granter. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGranterGrantsResponse is the response type for the + Query/GranterGrants RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: granter + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/upgrade/v1beta1/applied_plan/{name}: + get: + summary: AppliedPlan queries a previously applied upgrade plan by its name. + operationId: AppliedPlan_32493 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + height: + type: string + format: int64 + description: height is the block height at which the plan was applied. + description: >- + QueryAppliedPlanResponse is the response type for the + Query/AppliedPlan RPC + + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: name + description: name is the name of the applied plan to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/upgrade/v1beta1/authority: + get: + summary: Returns the account with authority to conduct upgrades + operationId: Authority_14581 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + address: + type: string + title: QueryAuthorityResponse is the response type for Query/Authority + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/upgrade/v1beta1/current_plan: + get: + summary: CurrentPlan queries the current upgrade plan. + operationId: CurrentPlan_10361 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + plan: + description: plan is the current upgrade plan. + type: object + properties: + name: + type: string + description: >- + Sets the name for the upgrade. This name will be used by + the upgraded + + version of the software to apply any special "on-upgrade" + commands during + + the first BeginBlock method after the upgrade is applied. + It is also used + + to detect whether a software version can handle a given + upgrade. If no + + upgrade handler with this name has been set in the + software, it will be + + assumed that the software is out-of-date when the upgrade + Time or Height is + + reached and the software will exit. + time: + type: string + format: date-time + description: >- + Deprecated: Time based upgrades have been deprecated. Time + based upgrade logic + + has been removed from the SDK. + + If this field is not empty, an error will be thrown. + height: + type: string + format: int64 + description: The height at which the upgrade must be performed. + info: + type: string + title: >- + Any application specific upgrade info to be included + on-chain + + such as a git commit that validators could automatically + upgrade to + upgraded_client_state: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + QueryCurrentPlanResponse is the response type for the + Query/CurrentPlan RPC + + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/upgrade/v1beta1/module_versions: + get: + summary: ModuleVersions queries the list of module versions from state. + operationId: ModuleVersions_24226 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + module_versions: + type: array + items: + type: object + properties: + name: + type: string + title: name of the app module + version: + type: string + format: uint64 + title: consensus version of the app module + description: ModuleVersion specifies a module and its consensus version. + description: >- + module_versions is a list of module names with their consensus + versions. + description: >- + QueryModuleVersionsResponse is the response type for the + Query/ModuleVersions + + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: module_name + description: |- + module_name is a field to query a specific module + consensus version from state. Leaving this empty will + fetch the full list of module versions from state. + in: query + required: false + type: string + tags: + - Query + /cosmos/upgrade/v1beta1/upgraded_consensus_state/{last_height}: + get: + summary: >- + UpgradedConsensusState queries the consensus state that will serve + + as a trusted kernel for the next version of this chain. It will only be + + stored at the last height of this chain. + + UpgradedConsensusState RPC not supported with legacy querier + + This rpc is deprecated now that IBC has its own replacement + + (https://github.com/cosmos/ibc-go/blob/2c880a22e9f9cc75f62b527ca94aa75ce1106001/proto/ibc/core/client/v1/query.proto#L54) + operationId: UpgradedConsensusState_15233 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + upgraded_consensus_state: + type: string + format: byte + description: >- + QueryUpgradedConsensusStateResponse is the response type for the + Query/UpgradedConsensusState + + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: last_height + description: |- + last height of the current chain must be sent in request + as this is the height under which next consensus state is stored + in: path + required: true + type: string + format: int64 + tags: + - Query + /cosmos/slashing/v1beta1/params: + get: + summary: Params queries the parameters of slashing module + operationId: Params_03358 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + params: + type: object + properties: + signed_blocks_window: + type: string + format: int64 + min_signed_per_window: + type: string + format: byte + downtime_jail_duration: + type: string + slash_fraction_double_sign: + type: string + format: byte + slash_fraction_downtime: + type: string + format: byte + description: >- + Params represents the parameters used for by the slashing + module. + title: >- + QueryParamsResponse is the response type for the Query/Params RPC + method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/slashing/v1beta1/signing_infos: + get: + summary: SigningInfos queries signing info of all validators + operationId: SigningInfos_09842 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + info: + type: array + items: + type: object + properties: + address: + type: string + start_height: + type: string + format: int64 + title: >- + Height at which validator was first a candidate OR was + un-jailed + index_offset: + type: string + format: int64 + description: >- + Index which is incremented every time a validator is + bonded in a block and + + _may_ have signed a pre-commit or not. This in + conjunction with the + + signed_blocks_window param determines the index in the + missed block bitmap. + jailed_until: + type: string + format: date-time + description: >- + Timestamp until which the validator is jailed due to + liveness downtime. + tombstoned: + type: boolean + description: >- + Whether or not a validator has been tombstoned (killed + out of validator + + set). It is set once the validator commits an + equivocation or for any other + + configured misbehavior. + missed_blocks_counter: + type: string + format: int64 + description: >- + A counter of missed (unsigned) blocks. It is used to + avoid unnecessary + + reads in the missed block bitmap. + description: >- + ValidatorSigningInfo defines a validator's signing info for + monitoring their + + liveness activity. + title: info is the signing info of all validators + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: >- + QuerySigningInfosResponse is the response type for the + Query/SigningInfos RPC + + method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/slashing/v1beta1/signing_infos/{cons_address}: + get: + summary: SigningInfo queries the signing info of given cons address + operationId: SigningInfo_07974 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + val_signing_info: + type: object + properties: + address: + type: string + start_height: + type: string + format: int64 + title: >- + Height at which validator was first a candidate OR was + un-jailed + index_offset: + type: string + format: int64 + description: >- + Index which is incremented every time a validator is + bonded in a block and + + _may_ have signed a pre-commit or not. This in conjunction + with the + + signed_blocks_window param determines the index in the + missed block bitmap. + jailed_until: + type: string + format: date-time + description: >- + Timestamp until which the validator is jailed due to + liveness downtime. + tombstoned: + type: boolean + description: >- + Whether or not a validator has been tombstoned (killed out + of validator + + set). It is set once the validator commits an equivocation + or for any other + + configured misbehavior. + missed_blocks_counter: + type: string + format: int64 + description: >- + A counter of missed (unsigned) blocks. It is used to avoid + unnecessary + + reads in the missed block bitmap. + description: >- + ValidatorSigningInfo defines a validator's signing info for + monitoring their + + liveness activity. + title: >- + val_signing_info is the signing info of requested val cons + address + title: >- + QuerySigningInfoResponse is the response type for the + Query/SigningInfo RPC + + method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: cons_address + description: cons_address is the address to query signing info of + in: path + required: true + type: string + tags: + - Query + /cosmos/base/tendermint/v1beta1/abci_query: + get: + summary: >- + ABCIQuery defines a query handler that supports ABCI queries directly to + the + + application, bypassing Tendermint completely. The ABCI query must + contain + + a valid and supported path, including app, custom, p2p, and store. + operationId: ABCIQuery_14697 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + code: + type: integer + format: int64 + log: + type: string + info: + type: string + index: + type: string + format: int64 + key: + type: string + format: byte + value: + type: string + format: byte + proof_ops: + type: object + properties: + ops: + type: array + items: + type: object + properties: + type: + type: string + key: + type: string + format: byte + data: + type: string + format: byte + description: >- + ProofOp defines an operation used for calculating Merkle + root. The data could + + be arbitrary format, providing necessary data for + example neighbouring node + + hash. + + + Note: This type is a duplicate of the ProofOp proto type + defined in Tendermint. + description: >- + ProofOps is Merkle proof defined by the list of ProofOps. + + + Note: This type is a duplicate of the ProofOps proto type + defined in Tendermint. + height: + type: string + format: int64 + codespace: + type: string + description: >- + ABCIQueryResponse defines the response structure for the ABCIQuery + gRPC query. + + + Note: This type is a duplicate of the ResponseQuery proto type + defined in + + Tendermint. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: data + in: query + required: false + type: string + format: byte + - name: path + in: query + required: false + type: string + - name: height + in: query + required: false + type: string + format: int64 + - name: prove + in: query + required: false + type: boolean + tags: + - Service + /cosmos/base/tendermint/v1beta1/blocks/latest: + get: + summary: GetLatestBlock returns the latest block. + operationId: GetLatestBlock_11012 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + block: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing + a block in the blockchain, + + including all blockchain data structures and the rules + of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing + on the order first. + + This means that block.AppHash does not include these + txs. + title: >- + Data contains the set of transactions included in the + block + evidence: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed + message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the + application. Only valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the + validator if they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote + from validators for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed + message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the + application. Only valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the + validator if they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote + from validators for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a + validator signed two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules + for processing a block in the + blockchain, + + including all blockchain data structures + and the rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: >- + hashes from the app output from the prev + block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: >- + Header defines the structure of a block + header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included + in a Commit. + description: >- + Commit contains the evidence that a + block was committed by a set of + validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a + set of validators attempting to mislead a light + client. + last_commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included in a + Commit. + description: >- + Commit contains the evidence that a block was committed by + a set of validators. + title: 'Deprecated: please use `sdk_block` instead' + sdk_block: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing + a block in the blockchain, + + including all blockchain data structures and the rules + of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + description: >- + proposer_address is the original block proposer + address, formatted as a Bech32 string. + + In Tendermint, this type is `bytes`, but in the SDK, + we convert it to a Bech32 string + + for better UX. + description: Header defines the structure of a Tendermint block header. + data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing + on the order first. + + This means that block.AppHash does not include these + txs. + title: >- + Data contains the set of transactions included in the + block + evidence: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed + message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the + application. Only valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the + validator if they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote + from validators for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed + message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the + application. Only valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the + validator if they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote + from validators for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a + validator signed two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules + for processing a block in the + blockchain, + + including all blockchain data structures + and the rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: >- + hashes from the app output from the prev + block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: >- + Header defines the structure of a block + header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included + in a Commit. + description: >- + Commit contains the evidence that a + block was committed by a set of + validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a + set of validators attempting to mislead a light + client. + last_commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included in a + Commit. + description: >- + Commit contains the evidence that a block was committed by + a set of validators. + description: >- + Block is tendermint type Block, with the Header proposer + address + + field converted to bech32 string. + description: >- + GetLatestBlockResponse is the response type for the + Query/GetLatestBlock RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Service + /cosmos/base/tendermint/v1beta1/blocks/{height}: + get: + summary: GetBlockByHeight queries block for given height. + operationId: GetBlockByHeight_18806 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + block: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing + a block in the blockchain, + + including all blockchain data structures and the rules + of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing + on the order first. + + This means that block.AppHash does not include these + txs. + title: >- + Data contains the set of transactions included in the + block + evidence: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed + message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the + application. Only valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the + validator if they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote + from validators for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed + message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the + application. Only valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the + validator if they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote + from validators for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a + validator signed two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules + for processing a block in the + blockchain, + + including all blockchain data structures + and the rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: >- + hashes from the app output from the prev + block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: >- + Header defines the structure of a block + header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included + in a Commit. + description: >- + Commit contains the evidence that a + block was committed by a set of + validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a + set of validators attempting to mislead a light + client. + last_commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included in a + Commit. + description: >- + Commit contains the evidence that a block was committed by + a set of validators. + title: 'Deprecated: please use `sdk_block` instead' + sdk_block: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing + a block in the blockchain, + + including all blockchain data structures and the rules + of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + description: >- + proposer_address is the original block proposer + address, formatted as a Bech32 string. + + In Tendermint, this type is `bytes`, but in the SDK, + we convert it to a Bech32 string + + for better UX. + description: Header defines the structure of a Tendermint block header. + data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing + on the order first. + + This means that block.AppHash does not include these + txs. + title: >- + Data contains the set of transactions included in the + block + evidence: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed + message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the + application. Only valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the + validator if they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote + from validators for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed + message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the + application. Only valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the + validator if they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote + from validators for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a + validator signed two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules + for processing a block in the + blockchain, + + including all blockchain data structures + and the rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: >- + hashes from the app output from the prev + block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: >- + Header defines the structure of a block + header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included + in a Commit. + description: >- + Commit contains the evidence that a + block was committed by a set of + validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a + set of validators attempting to mislead a light + client. + last_commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included in a + Commit. + description: >- + Commit contains the evidence that a block was committed by + a set of validators. + description: >- + Block is tendermint type Block, with the Header proposer + address + + field converted to bech32 string. + description: >- + GetBlockByHeightResponse is the response type for the + Query/GetBlockByHeight RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: height + in: path + required: true + type: string + format: int64 + tags: + - Service + /cosmos/base/tendermint/v1beta1/node_info: + get: + summary: GetNodeInfo queries the current node info. + operationId: GetNodeInfo_23566 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + default_node_info: + type: object + properties: + protocol_version: + type: object + properties: + p2p: + type: string + format: uint64 + block: + type: string + format: uint64 + app: + type: string + format: uint64 + default_node_id: + type: string + listen_addr: + type: string + network: + type: string + version: + type: string + channels: + type: string + format: byte + moniker: + type: string + other: + type: object + properties: + tx_index: + type: string + rpc_address: + type: string + application_version: + type: object + properties: + name: + type: string + app_name: + type: string + version: + type: string + git_commit: + type: string + build_tags: + type: string + go_version: + type: string + build_deps: + type: array + items: + type: object + properties: + path: + type: string + title: module path + version: + type: string + title: module version + sum: + type: string + title: checksum + title: Module is the type for VersionInfo + cosmos_sdk_version: + type: string + description: VersionInfo is the type for the GetNodeInfoResponse message. + description: >- + GetNodeInfoResponse is the response type for the Query/GetNodeInfo + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Service + /cosmos/base/tendermint/v1beta1/syncing: + get: + summary: GetSyncing queries node syncing. + operationId: GetSyncing_05429 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + syncing: + type: boolean + description: >- + GetSyncingResponse is the response type for the Query/GetSyncing + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Service + /cosmos/base/tendermint/v1beta1/validatorsets/latest: + get: + summary: GetLatestValidatorSet queries latest validator-set. + operationId: GetLatestValidatorSet_12787 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + block_height: + type: string + format: int64 + validators: + type: array + items: + type: object + properties: + address: + type: string + pub_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + description: Validator is the type for the validator-set. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + GetLatestValidatorSetResponse is the response type for the + Query/GetValidatorSetByHeight RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Service + /cosmos/base/tendermint/v1beta1/validatorsets/{height}: + get: + summary: GetValidatorSetByHeight queries validator-set at a given height. + operationId: GetValidatorSetByHeight_23638 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + block_height: + type: string + format: int64 + validators: + type: array + items: + type: object + properties: + address: + type: string + pub_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + description: Validator is the type for the validator-set. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + GetValidatorSetByHeightResponse is the response type for the + Query/GetValidatorSetByHeight RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: height + in: path + required: true + type: string + format: int64 + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Service + /cosmos/base/node/v1beta1/config: + get: + summary: Config queries for the operator configuration. + operationId: Config_13992 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + minimum_gas_price: + type: string + pruning_keep_recent: + type: string + pruning_interval: + type: string + halt_height: + type: string + format: uint64 + description: >- + ConfigResponse defines the response structure for the Config gRPC + query. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Service + /cosmos/base/node/v1beta1/status: + get: + summary: Status queries for the node status. + operationId: Status_15448 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + earliest_store_height: + type: string + format: uint64 + height: + type: string + format: uint64 + timestamp: + type: string + format: date-time + app_hash: + type: string + format: byte + validator_hash: + type: string + format: byte + description: >- + StateResponse defines the response structure for the status of a + node. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Service + /cosmos/gov/v1/constitution: + get: + summary: Constitution queries the chain's constitution. + operationId: Constitution_31276 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + constitution: + type: string + title: >- + QueryConstitutionResponse is the response type for the + Query/Constitution RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/gov/v1/params/{params_type}: + get: + summary: Params queries all parameters of the gov module. + operationId: Params_28867 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + voting_params: + description: |- + Deprecated: Prefer to use `params` instead. + voting_params defines the parameters related to voting. + type: object + properties: + voting_period: + type: string + description: Duration of the voting period. + deposit_params: + description: |- + Deprecated: Prefer to use `params` instead. + deposit_params defines the parameters related to deposit. + type: object + properties: + min_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: Minimum deposit for a proposal to enter voting period. + max_deposit_period: + type: string + description: >- + Maximum period for Atom holders to deposit on a proposal. + Initial value: 2 + + months. + tally_params: + description: |- + Deprecated: Prefer to use `params` instead. + tally_params defines the parameters related to tally. + type: object + properties: + quorum: + type: string + description: >- + Minimum percentage of total stake needed to vote for a + result to be + + considered valid. + threshold: + type: string + description: >- + Minimum proportion of Yes votes for proposal to pass. + Default value: 0.5. + veto_threshold: + type: string + description: >- + Minimum value of Veto votes to Total votes ratio for + proposal to be + + vetoed. Default value: 1/3. + params: + description: params defines all the paramaters of x/gov module. + type: object + properties: + min_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: Minimum deposit for a proposal to enter voting period. + max_deposit_period: + type: string + description: >- + Maximum period for Atom holders to deposit on a proposal. + Initial value: 2 + + months. + voting_period: + type: string + description: Duration of the voting period. + quorum: + type: string + description: >- + Minimum percentage of total stake needed to vote for a + result to be + considered valid. + threshold: + type: string + description: >- + Minimum proportion of Yes votes for proposal to pass. + Default value: 0.5. + veto_threshold: + type: string + description: >- + Minimum value of Veto votes to Total votes ratio for + proposal to be + vetoed. Default value: 1/3. + min_initial_deposit_ratio: + type: string + description: >- + The ratio representing the proportion of the deposit value + that must be paid at proposal submission. + proposal_cancel_ratio: + type: string + description: >- + The cancel ratio which will not be returned back to the + depositors when a proposal is cancelled. + proposal_cancel_dest: + type: string + description: >- + The address which will receive (proposal_cancel_ratio * + deposit) proposal deposits. + + If empty, the (proposal_cancel_ratio * deposit) proposal + deposits will be burned. + expedited_voting_period: + type: string + description: Duration of the voting period of an expedited proposal. + expedited_threshold: + type: string + description: >- + Minimum proportion of Yes votes for proposal to pass. + Default value: 0.67. + expedited_min_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: >- + Minimum expedited deposit for a proposal to enter voting + period. + burn_vote_quorum: + type: boolean + title: burn deposits if a proposal does not meet quorum + burn_proposal_deposit_prevote: + type: boolean + title: burn deposits if the proposal does not enter voting period + burn_vote_veto: + type: boolean + title: burn deposits if quorum with vote type no_veto is met + min_deposit_ratio: + type: string + description: >- + The ratio representing the proportion of the deposit value + minimum that must be met when making a deposit. + + Default value: 0.01. Meaning that for a chain with a + min_deposit of 100stake, a deposit of 1stake would be + + required. + description: >- + QueryParamsResponse is the response type for the Query/Params RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: params_type + description: >- + params_type defines which parameters to query for, can be one of + "voting", + + "tallying" or "deposit". + in: path + required: true + type: string + tags: + - Query + /cosmos/gov/v1/proposals: + get: + summary: Proposals queries all proposals based on given status. + operationId: Proposals_10011 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + proposals: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + description: id defines the unique id of the proposal. + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain + at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should + be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions + as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages are the arbitrary messages to be executed if + the proposal passes. + status: + description: status defines the proposal status. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result is the final tally result of the + proposal. When + + querying a proposal via gRPC, this field is not + populated until the + + proposal's voting period has ended. + type: object + properties: + yes_count: + type: string + description: yes_count is the number of yes votes on a proposal. + abstain_count: + type: string + description: >- + abstain_count is the number of abstain votes on a + proposal. + no_count: + type: string + description: no_count is the number of no votes on a proposal. + no_with_veto_count: + type: string + description: >- + no_with_veto_count is the number of no with veto + votes on a proposal. + submit_time: + type: string + format: date-time + description: submit_time is the time of proposal submission. + deposit_end_time: + type: string + format: date-time + description: deposit_end_time is the end time for deposition. + total_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: total_deposit is the total deposit on the proposal. + voting_start_time: + type: string + format: date-time + description: >- + voting_start_time is the starting time to vote on a + proposal. + voting_end_time: + type: string + format: date-time + description: voting_end_time is the end time of voting on a proposal. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the + proposal. + + the recommended format of the metadata is to be found + here: + + https://docs.cosmos.network/v0.47/modules/gov#proposal-3 + title: + type: string + title: title is the title of the proposal + summary: + type: string + title: summary is a short summary of the proposal + proposer: + type: string + title: proposer is the address of the proposal sumbitter + expedited: + type: boolean + title: expedited defines if the proposal is expedited + failed_reason: + type: string + title: failed_reason defines the reason why the proposal failed + description: >- + Proposal defines the core field members of a governance + proposal. + description: proposals defines all the requested governance proposals. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryProposalsResponse is the response type for the + Query/Proposals RPC + + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_status + description: |- + proposal_status defines the status of the proposals. + + - PROPOSAL_STATUS_UNSPECIFIED: PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. + - PROPOSAL_STATUS_DEPOSIT_PERIOD: PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit + period. + - PROPOSAL_STATUS_VOTING_PERIOD: PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting + period. + - PROPOSAL_STATUS_PASSED: PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has + passed. + - PROPOSAL_STATUS_REJECTED: PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has + been rejected. + - PROPOSAL_STATUS_FAILED: PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has + failed. + in: query + required: false + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + - name: voter + description: voter defines the voter address for the proposals. + in: query + required: false + type: string + - name: depositor + description: depositor defines the deposit addresses from the proposals. + in: query + required: false + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/gov/v1/proposals/{proposal_id}: + get: + summary: Proposal queries proposal details based on ProposalID. + operationId: Proposal_19251 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + proposal: + type: object + properties: + id: + type: string + format: uint64 + description: id defines the unique id of the proposal. + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages are the arbitrary messages to be executed if the + proposal passes. + status: + description: status defines the proposal status. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result is the final tally result of the + proposal. When + + querying a proposal via gRPC, this field is not populated + until the + + proposal's voting period has ended. + type: object + properties: + yes_count: + type: string + description: yes_count is the number of yes votes on a proposal. + abstain_count: + type: string + description: >- + abstain_count is the number of abstain votes on a + proposal. + no_count: + type: string + description: no_count is the number of no votes on a proposal. + no_with_veto_count: + type: string + description: >- + no_with_veto_count is the number of no with veto votes + on a proposal. + submit_time: + type: string + format: date-time + description: submit_time is the time of proposal submission. + deposit_end_time: + type: string + format: date-time + description: deposit_end_time is the end time for deposition. + total_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: total_deposit is the total deposit on the proposal. + voting_start_time: + type: string + format: date-time + description: >- + voting_start_time is the starting time to vote on a + proposal. + voting_end_time: + type: string + format: date-time + description: voting_end_time is the end time of voting on a proposal. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the + proposal. + + the recommended format of the metadata is to be found + here: + + https://docs.cosmos.network/v0.47/modules/gov#proposal-3 + title: + type: string + title: title is the title of the proposal + summary: + type: string + title: summary is a short summary of the proposal + proposer: + type: string + title: proposer is the address of the proposal sumbitter + expedited: + type: boolean + title: expedited defines if the proposal is expedited + failed_reason: + type: string + title: failed_reason defines the reason why the proposal failed + description: >- + Proposal defines the core field members of a governance + proposal. + description: >- + QueryProposalResponse is the response type for the Query/Proposal + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id defines the unique id of the proposal. + in: path + required: true + type: string + format: uint64 + tags: + - Query + /cosmos/gov/v1/proposals/{proposal_id}/deposits: + get: + summary: Deposits queries all deposits of a single proposal. + operationId: Deposits_20629 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + deposits: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + depositor: + type: string + description: >- + depositor defines the deposit addresses from the + proposals. + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: amount to be deposited by depositor. + description: >- + Deposit defines an amount deposited by an account address to + an active + + proposal. + description: deposits defines the requested deposits. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryDepositsResponse is the response type for the Query/Deposits + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id defines the unique id of the proposal. + in: path + required: true + type: string + format: uint64 + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/gov/v1/proposals/{proposal_id}/deposits/{depositor}: + get: + summary: >- + Deposit queries single deposit information based on proposalID, + depositAddr. + operationId: Deposit_00785 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + deposit: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + depositor: + type: string + description: >- + depositor defines the deposit addresses from the + proposals. + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: amount to be deposited by depositor. + description: >- + Deposit defines an amount deposited by an account address to + an active + + proposal. + description: >- + QueryDepositResponse is the response type for the Query/Deposit + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id defines the unique id of the proposal. + in: path + required: true + type: string + format: uint64 + - name: depositor + description: depositor defines the deposit addresses from the proposals. + in: path + required: true + type: string + tags: + - Query + /cosmos/gov/v1/proposals/{proposal_id}/tally: + get: + summary: TallyResult queries the tally of a proposal vote. + operationId: TallyResult_00866 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + tally: + description: tally defines the requested tally. + type: object + properties: + yes_count: + type: string + description: yes_count is the number of yes votes on a proposal. + abstain_count: + type: string + description: >- + abstain_count is the number of abstain votes on a + proposal. + no_count: + type: string + description: no_count is the number of no votes on a proposal. + no_with_veto_count: + type: string + description: >- + no_with_veto_count is the number of no with veto votes on + a proposal. + description: >- + QueryTallyResultResponse is the response type for the Query/Tally + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id defines the unique id of the proposal. + in: path + required: true + type: string + format: uint64 + tags: + - Query + /cosmos/gov/v1/proposals/{proposal_id}/votes: + get: + summary: Votes queries votes of a given proposal. + operationId: Votes_03087 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + votes: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + voter: + type: string + description: voter is the voter address of the proposal. + options: + type: array + items: + type: object + properties: + option: + description: >- + option defines the valid vote options, it must not + contain duplicate vote options. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + weight: + type: string + description: >- + weight is the vote weight associated with the vote + option. + description: >- + WeightedVoteOption defines a unit of vote for vote + split. + description: options is the weighted vote options. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the vote. + + the recommended format of the metadata is to be found + here: + https://docs.cosmos.network/v0.47/modules/gov#vote-5 + description: >- + Vote defines a vote on a governance proposal. + + A Vote consists of a proposal ID, the voter, and the vote + option. + description: votes defines the queried votes. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryVotesResponse is the response type for the Query/Votes RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id defines the unique id of the proposal. + in: path + required: true + type: string + format: uint64 + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/gov/v1/proposals/{proposal_id}/votes/{voter}: + get: + summary: Vote queries voted information based on proposalID, voterAddr. + operationId: Vote_01762 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + vote: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + voter: + type: string + description: voter is the voter address of the proposal. + options: + type: array + items: + type: object + properties: + option: + description: >- + option defines the valid vote options, it must not + contain duplicate vote options. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + weight: + type: string + description: >- + weight is the vote weight associated with the vote + option. + description: >- + WeightedVoteOption defines a unit of vote for vote + split. + description: options is the weighted vote options. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the vote. + + the recommended format of the metadata is to be found + here: https://docs.cosmos.network/v0.47/modules/gov#vote-5 + description: >- + Vote defines a vote on a governance proposal. + + A Vote consists of a proposal ID, the voter, and the vote + option. + description: >- + QueryVoteResponse is the response type for the Query/Vote RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id defines the unique id of the proposal. + in: path + required: true + type: string + format: uint64 + - name: voter + description: voter defines the voter address for the proposals. + in: path + required: true + type: string + tags: + - Query + /cosmos/gov/v1beta1/params/{params_type}: + get: + summary: Params queries all parameters of the gov module. + operationId: Params_31454 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + voting_params: + description: voting_params defines the parameters related to voting. + type: object + properties: + voting_period: + type: string + description: Duration of the voting period. + deposit_params: + description: deposit_params defines the parameters related to deposit. + type: object + properties: + min_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: Minimum deposit for a proposal to enter voting period. + max_deposit_period: + type: string + description: >- + Maximum period for Atom holders to deposit on a proposal. + Initial value: 2 + + months. + tally_params: + description: tally_params defines the parameters related to tally. + type: object + properties: + quorum: + type: string + format: byte + description: >- + Minimum percentage of total stake needed to vote for a + result to be + + considered valid. + threshold: + type: string + format: byte + description: >- + Minimum proportion of Yes votes for proposal to pass. + Default value: 0.5. + veto_threshold: + type: string + format: byte + description: >- + Minimum value of Veto votes to Total votes ratio for + proposal to be + + vetoed. Default value: 1/3. + description: >- + QueryParamsResponse is the response type for the Query/Params RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: params_type + description: >- + params_type defines which parameters to query for, can be one of + "voting", + + "tallying" or "deposit". + in: path + required: true + type: string + tags: + - Query + /cosmos/gov/v1beta1/proposals: + get: + summary: Proposals queries all proposals based on given status. + operationId: Proposals_28076 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + proposals: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + content: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + status: + description: status defines the proposal status. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result is the final tally result of the + proposal. When + + querying a proposal via gRPC, this field is not + populated until the + + proposal's voting period has ended. + type: object + properties: + 'yes': + type: string + description: yes is the number of yes votes on a proposal. + abstain: + type: string + description: >- + abstain is the number of abstain votes on a + proposal. + 'no': + type: string + description: no is the number of no votes on a proposal. + no_with_veto: + type: string + description: >- + no_with_veto is the number of no with veto votes on + a proposal. + submit_time: + type: string + format: date-time + description: submit_time is the time of proposal submission. + deposit_end_time: + type: string + format: date-time + description: deposit_end_time is the end time for deposition. + total_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: total_deposit is the total deposit on the proposal. + voting_start_time: + type: string + format: date-time + description: >- + voting_start_time is the starting time to vote on a + proposal. + voting_end_time: + type: string + format: date-time + description: voting_end_time is the end time of voting on a proposal. + description: >- + Proposal defines the core field members of a governance + proposal. + description: proposals defines all the requested governance proposals. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryProposalsResponse is the response type for the + Query/Proposals RPC + + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_status + description: |- + proposal_status defines the status of the proposals. + + - PROPOSAL_STATUS_UNSPECIFIED: PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. + - PROPOSAL_STATUS_DEPOSIT_PERIOD: PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit + period. + - PROPOSAL_STATUS_VOTING_PERIOD: PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting + period. + - PROPOSAL_STATUS_PASSED: PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has + passed. + - PROPOSAL_STATUS_REJECTED: PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has + been rejected. + - PROPOSAL_STATUS_FAILED: PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has + failed. + in: query + required: false + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + - name: voter + description: voter defines the voter address for the proposals. + in: query + required: false + type: string + - name: depositor + description: depositor defines the deposit addresses from the proposals. + in: query + required: false + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/gov/v1beta1/proposals/{proposal_id}: + get: + summary: Proposal queries proposal details based on ProposalID. + operationId: Proposal_15432 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + proposal: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + content: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + status: + description: status defines the proposal status. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result is the final tally result of the + proposal. When + + querying a proposal via gRPC, this field is not populated + until the + + proposal's voting period has ended. + type: object + properties: + 'yes': + type: string + description: yes is the number of yes votes on a proposal. + abstain: + type: string + description: abstain is the number of abstain votes on a proposal. + 'no': + type: string + description: no is the number of no votes on a proposal. + no_with_veto: + type: string + description: >- + no_with_veto is the number of no with veto votes on a + proposal. + submit_time: + type: string + format: date-time + description: submit_time is the time of proposal submission. + deposit_end_time: + type: string + format: date-time + description: deposit_end_time is the end time for deposition. + total_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: total_deposit is the total deposit on the proposal. + voting_start_time: + type: string + format: date-time + description: >- + voting_start_time is the starting time to vote on a + proposal. + voting_end_time: + type: string + format: date-time + description: voting_end_time is the end time of voting on a proposal. + description: >- + Proposal defines the core field members of a governance + proposal. + description: >- + QueryProposalResponse is the response type for the Query/Proposal + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id defines the unique id of the proposal. + in: path + required: true + type: string + format: uint64 + tags: + - Query + /cosmos/gov/v1beta1/proposals/{proposal_id}/deposits: + get: + summary: Deposits queries all deposits of a single proposal. + operationId: Deposits_28854 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + deposits: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + depositor: + type: string + description: >- + depositor defines the deposit addresses from the + proposals. + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: amount to be deposited by depositor. + description: >- + Deposit defines an amount deposited by an account address to + an active + + proposal. + description: deposits defines the requested deposits. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryDepositsResponse is the response type for the Query/Deposits + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id defines the unique id of the proposal. + in: path + required: true + type: string + format: uint64 + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/gov/v1beta1/proposals/{proposal_id}/deposits/{depositor}: + get: + summary: >- + Deposit queries single deposit information based on proposalID, + depositor address. + operationId: Deposit_22213 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + deposit: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + depositor: + type: string + description: >- + depositor defines the deposit addresses from the + proposals. + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: amount to be deposited by depositor. + description: >- + Deposit defines an amount deposited by an account address to + an active + + proposal. + description: >- + QueryDepositResponse is the response type for the Query/Deposit + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id defines the unique id of the proposal. + in: path + required: true + type: string + format: uint64 + - name: depositor + description: depositor defines the deposit addresses from the proposals. + in: path + required: true + type: string + tags: + - Query + /cosmos/gov/v1beta1/proposals/{proposal_id}/tally: + get: + summary: TallyResult queries the tally of a proposal vote. + operationId: TallyResult_29335 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + tally: + description: tally defines the requested tally. + type: object + properties: + 'yes': + type: string + description: yes is the number of yes votes on a proposal. + abstain: + type: string + description: abstain is the number of abstain votes on a proposal. + 'no': + type: string + description: no is the number of no votes on a proposal. + no_with_veto: + type: string + description: >- + no_with_veto is the number of no with veto votes on a + proposal. + description: >- + QueryTallyResultResponse is the response type for the Query/Tally + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id defines the unique id of the proposal. + in: path + required: true + type: string + format: uint64 + tags: + - Query + /cosmos/gov/v1beta1/proposals/{proposal_id}/votes: + get: + summary: Votes queries votes of a given proposal. + operationId: Votes_14173 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + votes: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + voter: + type: string + description: voter is the voter address of the proposal. + option: + description: >- + Deprecated: Prefer to use `options` instead. This field + is set in queries + + if and only if `len(options) == 1` and that option has + weight 1. In all + + other cases, this field will default to + VOTE_OPTION_UNSPECIFIED. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + options: + type: array + items: + type: object + properties: + option: + description: >- + option defines the valid vote options, it must not + contain duplicate vote options. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + weight: + type: string + description: >- + weight is the vote weight associated with the vote + option. + description: >- + WeightedVoteOption defines a unit of vote for vote + split. + description: options is the weighted vote options. + description: >- + Vote defines a vote on a governance proposal. + + A Vote consists of a proposal ID, the voter, and the vote + option. + description: votes defines the queried votes. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryVotesResponse is the response type for the Query/Votes RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id defines the unique id of the proposal. + in: path + required: true + type: string + format: uint64 + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/gov/v1beta1/proposals/{proposal_id}/votes/{voter}: + get: + summary: Vote queries voted information based on proposalID, voterAddr. + operationId: Vote_04632 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + vote: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + voter: + type: string + description: voter is the voter address of the proposal. + option: + description: >- + Deprecated: Prefer to use `options` instead. This field is + set in queries + + if and only if `len(options) == 1` and that option has + weight 1. In all + + other cases, this field will default to + VOTE_OPTION_UNSPECIFIED. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + options: + type: array + items: + type: object + properties: + option: + description: >- + option defines the valid vote options, it must not + contain duplicate vote options. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + weight: + type: string + description: >- + weight is the vote weight associated with the vote + option. + description: >- + WeightedVoteOption defines a unit of vote for vote + split. + description: options is the weighted vote options. + description: >- + Vote defines a vote on a governance proposal. + + A Vote consists of a proposal ID, the voter, and the vote + option. + description: >- + QueryVoteResponse is the response type for the Query/Vote RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id defines the unique id of the proposal. + in: path + required: true + type: string + format: uint64 + - name: voter + description: voter defines the voter address for the proposals. + in: path + required: true + type: string + tags: + - Query + /cosmos/feegrant/v1beta1/allowance/{granter}/{grantee}: + get: + summary: Allowance returns granted allwance to the grantee by the granter. + operationId: Allowance_08467 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + allowance: + description: allowance is a allowance granted for grantee by granter. + type: object + properties: + granter: + type: string + description: >- + granter is the address of the user granting an allowance + of their funds. + grantee: + type: string + description: >- + grantee is the address of the user being granted an + allowance of another user's funds. + allowance: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + Grant is stored in the KVStore to record a grant with full + context + description: >- + QueryAllowanceResponse is the response type for the + Query/Allowance RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: granter + description: >- + granter is the address of the user granting an allowance of their + funds. + in: path + required: true + type: string + - name: grantee + description: >- + grantee is the address of the user being granted an allowance of + another user's funds. + in: path + required: true + type: string + tags: + - Query + /cosmos/feegrant/v1beta1/allowances/{grantee}: + get: + summary: Allowances returns all the grants for the given grantee address. + operationId: Allowances_06814 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + allowances: + type: array + items: + type: object + properties: + granter: + type: string + description: >- + granter is the address of the user granting an allowance + of their funds. + grantee: + type: string + description: >- + grantee is the address of the user being granted an + allowance of another user's funds. + allowance: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + Grant is stored in the KVStore to record a grant with full + context + description: allowances are allowance's granted for grantee by granter. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryAllowancesResponse is the response type for the + Query/Allowances RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: grantee + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/feegrant/v1beta1/issued/{granter}: + get: + summary: AllowancesByGranter returns all the grants given by an address + operationId: AllowancesByGranter_11061 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + allowances: + type: array + items: + type: object + properties: + granter: + type: string + description: >- + granter is the address of the user granting an allowance + of their funds. + grantee: + type: string + description: >- + grantee is the address of the user being granted an + allowance of another user's funds. + allowance: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + Grant is stored in the KVStore to record a grant with full + context + description: allowances that have been issued by the granter. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryAllowancesByGranterResponse is the response type for the + Query/AllowancesByGranter RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: granter + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/evidence/v1beta1/evidence: + get: + summary: AllEvidence queries all evidence. + operationId: AllEvidence_07096 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: evidence returns all evidences. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryAllEvidenceResponse is the response type for the + Query/AllEvidence RPC + + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/evidence/v1beta1/evidence/{hash}: + get: + summary: Evidence queries evidence based on evidence hash. + operationId: Evidence_08064 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + evidence: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + QueryEvidenceResponse is the response type for the Query/Evidence + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: hash + description: hash defines the evidence hash of the requested evidence. + in: path + required: true + type: string + - name: evidence_hash + description: |- + evidence_hash defines the hash of the requested evidence. + Deprecated: Use hash, a HEX encoded string, instead. + in: query + required: false + type: string + format: byte + tags: + - Query + /cosmos/nft/v1beta1/balance/{owner}/{class_id}: + get: + summary: >- + Balance queries the number of NFTs of a given class owned by the owner, + same as balanceOf in ERC721 + operationId: Balance_31544 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + amount: + type: string + format: uint64 + title: >- + amount is the number of all NFTs of a given class owned by the + owner + title: >- + QueryBalanceResponse is the response type for the Query/Balance + RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: owner + description: owner is the owner address of the nft + in: path + required: true + type: string + - name: class_id + description: class_id associated with the nft + in: path + required: true + type: string + tags: + - Query + /cosmos/nft/v1beta1/classes: + get: + summary: Classes queries all NFT classes + operationId: Classes_03863 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + classes: + type: array + items: + type: object + properties: + id: + type: string + title: >- + id defines the unique identifier of the NFT + classification, similar to the contract address of + ERC721 + name: + type: string + title: >- + name defines the human-readable name of the NFT + classification. Optional + symbol: + type: string + title: >- + symbol is an abbreviated name for nft classification. + Optional + description: + type: string + title: >- + description is a brief description of nft + classification. Optional + uri: + type: string + title: >- + uri for the class metadata stored off chain. It can + define schema for Class and NFT `Data` attributes. + Optional + uri_hash: + type: string + title: >- + uri_hash is a hash of the document pointed by uri. + Optional + data: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + data is the app specific metadata of the NFT class. + Optional + description: Class defines the class of the nft type. + description: class defines the class of the nft type. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: >- + QueryClassesResponse is the response type for the Query/Classes + RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/nft/v1beta1/classes/{class_id}: + get: + summary: Class queries an NFT class based on its id + operationId: Class_24355 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + class: + type: object + properties: + id: + type: string + title: >- + id defines the unique identifier of the NFT + classification, similar to the contract address of ERC721 + name: + type: string + title: >- + name defines the human-readable name of the NFT + classification. Optional + symbol: + type: string + title: >- + symbol is an abbreviated name for nft classification. + Optional + description: + type: string + title: >- + description is a brief description of nft classification. + Optional + uri: + type: string + title: >- + uri for the class metadata stored off chain. It can define + schema for Class and NFT `Data` attributes. Optional + uri_hash: + type: string + title: >- + uri_hash is a hash of the document pointed by uri. + Optional + data: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + data is the app specific metadata of the NFT class. + Optional + description: Class defines the class of the nft type. + title: >- + QueryClassResponse is the response type for the Query/Class RPC + method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: class_id + description: class_id associated with the nft + in: path + required: true + type: string + tags: + - Query + /cosmos/nft/v1beta1/nfts: + get: + summary: >- + NFTs queries all NFTs of a given class or owner,choose at least one of + the two, similar to tokenByIndex in + + ERC721Enumerable + operationId: NFTs_12853 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + nfts: + type: array + items: + type: object + properties: + class_id: + type: string + title: >- + class_id associated with the NFT, similar to the + contract address of ERC721 + id: + type: string + title: id is a unique identifier of the NFT + uri: + type: string + title: uri for the NFT metadata stored off chain + uri_hash: + type: string + title: uri_hash is a hash of the document pointed by uri + data: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: data is an app specific data of the NFT. Optional + description: NFT defines the NFT. + title: NFT defines the NFT + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: >- + QueryNFTsResponse is the response type for the Query/NFTs RPC + methods + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: class_id + description: class_id associated with the nft. + in: query + required: false + type: string + - name: owner + description: owner is the owner address of the nft. + in: query + required: false + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/nft/v1beta1/nfts/{class_id}/{id}: + get: + summary: NFT queries an NFT based on its class and id. + operationId: NFT_30918 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + nft: + type: object + properties: + class_id: + type: string + title: >- + class_id associated with the NFT, similar to the contract + address of ERC721 + id: + type: string + title: id is a unique identifier of the NFT + uri: + type: string + title: uri for the NFT metadata stored off chain + uri_hash: + type: string + title: uri_hash is a hash of the document pointed by uri + data: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: data is an app specific data of the NFT. Optional + description: NFT defines the NFT. + title: owner is the owner address of the nft + title: QueryNFTResponse is the response type for the Query/NFT RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: class_id + description: class_id associated with the nft + in: path + required: true + type: string + - name: id + description: id is a unique identifier of the NFT + in: path + required: true + type: string + tags: + - Query + /cosmos/nft/v1beta1/owner/{class_id}/{id}: + get: + summary: >- + Owner queries the owner of the NFT based on its class and id, same as + ownerOf in ERC721 + operationId: Owner_01888 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + owner: + type: string + title: owner is the owner address of the nft + title: >- + QueryOwnerResponse is the response type for the Query/Owner RPC + method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: class_id + description: class_id associated with the nft + in: path + required: true + type: string + - name: id + description: id is a unique identifier of the NFT + in: path + required: true + type: string + tags: + - Query + /cosmos/nft/v1beta1/supply/{class_id}: + get: + summary: >- + Supply queries the number of NFTs from the given class, same as + totalSupply of ERC721. + operationId: Supply_15112 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + amount: + type: string + format: uint64 + title: amount is the number of all NFTs from the given class + title: >- + QuerySupplyResponse is the response type for the Query/Supply RPC + method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: class_id + description: class_id associated with the nft + in: path + required: true + type: string + tags: + - Query + /cosmos/auth/v1beta1/account_info/{address}: + get: + summary: AccountInfo queries account info which is common to all account types. + operationId: AccountInfo_12435 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + info: + description: info is the account info which is represented by BaseAccount. + type: object + properties: + address: + type: string + pub_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + account_number: + type: string + format: uint64 + sequence: + type: string + format: uint64 + description: QueryAccountInfoResponse is the Query/AccountInfo response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address is the account address string. + in: path + required: true + type: string + tags: + - Query + /cosmos/auth/v1beta1/accounts: + get: + summary: Accounts returns all the existing accounts. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: Accounts_11218 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + accounts: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: accounts are the existing accounts + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryAccountsResponse is the response type for the Query/Accounts + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/auth/v1beta1/accounts/{address}: + get: + summary: Account returns account details based on address. + operationId: Account_23612 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + account: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + QueryAccountResponse is the response type for the Query/Account + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address defines the address to query for. + in: path + required: true + type: string + tags: + - Query + /cosmos/auth/v1beta1/address_by_id/{id}: + get: + summary: AccountAddressByID returns account address based on account number. + operationId: AccountAddressByID_25837 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + account_address: + type: string + title: >- + QueryAccountAddressByIDResponse is the response type for + AccountAddressByID rpc method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: id + description: |- + Deprecated, use account_id instead + + id is the account number of the address to be queried. This field + should have been an uint64 (like all account numbers), and will be + updated to uint64 in a future version of the auth query. + in: path + required: true + type: string + format: int64 + - name: account_id + description: account_id is the account number of the address to be queried. + in: query + required: false + type: string + format: uint64 + tags: + - Query + /cosmos/auth/v1beta1/bech32: + get: + summary: Bech32Prefix queries bech32Prefix + operationId: Bech32Prefix_07353 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + bech32_prefix: + type: string + description: >- + Bech32PrefixResponse is the response type for Bech32Prefix rpc + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/auth/v1beta1/bech32/{address_bytes}: + get: + summary: AddressBytesToString converts Account Address bytes to string + operationId: AddressBytesToString_19251 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + address_string: + type: string + description: >- + AddressBytesToStringResponse is the response type for + AddressString rpc method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address_bytes + in: path + required: true + type: string + format: byte + tags: + - Query + /cosmos/auth/v1beta1/bech32/{address_string}: + get: + summary: AddressStringToBytes converts Address string to bytes + operationId: AddressStringToBytes_18538 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + address_bytes: + type: string + format: byte + description: >- + AddressStringToBytesResponse is the response type for AddressBytes + rpc method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address_string + in: path + required: true + type: string + tags: + - Query + /cosmos/auth/v1beta1/module_accounts: + get: + summary: ModuleAccounts returns all the existing module accounts. + operationId: ModuleAccounts_25363 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + accounts: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + QueryModuleAccountsResponse is the response type for the + Query/ModuleAccounts RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/auth/v1beta1/module_accounts/{name}: + get: + summary: ModuleAccountByName returns the module account info by module name + operationId: ModuleAccountByName_23867 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + account: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + QueryModuleAccountByNameResponse is the response type for the + Query/ModuleAccountByName RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: name + in: path + required: true + type: string + tags: + - Query + /cosmos/auth/v1beta1/params: + get: + summary: Params queries all parameters. + operationId: Params_16086 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + params: + description: params defines the parameters of the module. + type: object + properties: + max_memo_characters: + type: string + format: uint64 + tx_sig_limit: + type: string + format: uint64 + tx_size_cost_per_byte: + type: string + format: uint64 + sig_verify_cost_ed25519: + type: string + format: uint64 + sig_verify_cost_secp256k1: + type: string + format: uint64 + description: >- + QueryParamsResponse is the response type for the Query/Params RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/group/v1/group_info/{group_id}: + get: + summary: GroupInfo queries group info based on group id. + operationId: GroupInfo_05098 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + info: + description: info is the GroupInfo of the group. + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group's admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata to attached to the + group. + + the recommended format of the metadata is to be found + here: + https://docs.cosmos.network/v0.47/modules/group#group-1 + version: + type: string + format: uint64 + title: >- + version is used to track changes to a group's membership + structure that + + would break existing proposals. Whenever any members + weight is changed, + + or any member is added or removed this version is + incremented and will + + cause proposals based on older versions of this group to + fail + total_weight: + type: string + description: total_weight is the sum of the group members' weights. + created_at: + type: string + format: date-time + description: >- + created_at is a timestamp specifying when a group was + created. + description: QueryGroupInfoResponse is the Query/GroupInfo response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: group_id + description: group_id is the unique ID of the group. + in: path + required: true + type: string + format: uint64 + tags: + - Query + /cosmos/group/v1/group_members/{group_id}: + get: + summary: GroupMembers queries members of a group by group id. + operationId: GroupMembers_18395 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + members: + type: array + items: + type: object + properties: + group_id: + type: string + format: uint64 + description: group_id is the unique ID of the group. + member: + description: member is the member data. + type: object + properties: + address: + type: string + description: address is the member's account address. + weight: + type: string + description: >- + weight is the member's voting weight that should be + greater than 0. + metadata: + type: string + description: >- + metadata is any arbitrary metadata attached to the + member. + added_at: + type: string + format: date-time + description: >- + added_at is a timestamp specifying when a member was + added. + description: >- + GroupMember represents the relationship between a group and + a member. + description: members are the members of the group with given group_id. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGroupMembersResponse is the Query/GroupMembersResponse + response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: group_id + description: group_id is the unique ID of the group. + in: path + required: true + type: string + format: uint64 + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/group/v1/group_policies_by_admin/{admin}: + get: + summary: GroupPoliciesByAdmin queries group policies by admin address. + operationId: GroupPoliciesByAdmin_15701 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + group_policies: + type: array + items: + type: object + properties: + address: + type: string + description: address is the account address of group policy. + group_id: + type: string + format: uint64 + description: group_id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the group + policy. + + the recommended format of the metadata is to be found + here: + + https://docs.cosmos.network/v0.47/modules/group#decision-policy-1 + version: + type: string + format: uint64 + description: >- + version is used to track changes to a group's + GroupPolicyInfo structure that + + would create a different result on a running proposal. + decision_policy: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + created_at: + type: string + format: date-time + description: >- + created_at is a timestamp specifying when a group policy + was created. + description: >- + GroupPolicyInfo represents the high-level on-chain + information for a group policy. + description: >- + group_policies are the group policies info with provided + admin. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGroupPoliciesByAdminResponse is the + Query/GroupPoliciesByAdmin response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: admin + description: admin is the admin address of the group policy. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/group/v1/group_policies_by_group/{group_id}: + get: + summary: GroupPoliciesByGroup queries group policies by group id. + operationId: GroupPoliciesByGroup_06037 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + group_policies: + type: array + items: + type: object + properties: + address: + type: string + description: address is the account address of group policy. + group_id: + type: string + format: uint64 + description: group_id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the group + policy. + + the recommended format of the metadata is to be found + here: + + https://docs.cosmos.network/v0.47/modules/group#decision-policy-1 + version: + type: string + format: uint64 + description: >- + version is used to track changes to a group's + GroupPolicyInfo structure that + + would create a different result on a running proposal. + decision_policy: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + created_at: + type: string + format: date-time + description: >- + created_at is a timestamp specifying when a group policy + was created. + description: >- + GroupPolicyInfo represents the high-level on-chain + information for a group policy. + description: >- + group_policies are the group policies info associated with the + provided group. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGroupPoliciesByGroupResponse is the + Query/GroupPoliciesByGroup response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: group_id + description: group_id is the unique ID of the group policy's group. + in: path + required: true + type: string + format: uint64 + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/group/v1/group_policy_info/{address}: + get: + summary: >- + GroupPolicyInfo queries group policy info based on account address of + group policy. + operationId: GroupPolicyInfo_18457 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + info: + type: object + properties: + address: + type: string + description: address is the account address of group policy. + group_id: + type: string + format: uint64 + description: group_id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the group + policy. + + the recommended format of the metadata is to be found + here: + + https://docs.cosmos.network/v0.47/modules/group#decision-policy-1 + version: + type: string + format: uint64 + description: >- + version is used to track changes to a group's + GroupPolicyInfo structure that + + would create a different result on a running proposal. + decision_policy: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + created_at: + type: string + format: date-time + description: >- + created_at is a timestamp specifying when a group policy + was created. + description: >- + GroupPolicyInfo represents the high-level on-chain information + for a group policy. + description: >- + QueryGroupPolicyInfoResponse is the Query/GroupPolicyInfo response + type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address is the account address of the group policy. + in: path + required: true + type: string + tags: + - Query + /cosmos/group/v1/groups: + get: + summary: Groups queries all groups in state. + operationId: Groups_05953 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + groups: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group's admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata to attached to the + group. + + the recommended format of the metadata is to be found + here: + https://docs.cosmos.network/v0.47/modules/group#group-1 + version: + type: string + format: uint64 + title: >- + version is used to track changes to a group's membership + structure that + + would break existing proposals. Whenever any members + weight is changed, + + or any member is added or removed this version is + incremented and will + + cause proposals based on older versions of this group to + fail + total_weight: + type: string + description: total_weight is the sum of the group members' weights. + created_at: + type: string + format: date-time + description: >- + created_at is a timestamp specifying when a group was + created. + description: >- + GroupInfo represents the high-level on-chain information for + a group. + description: '`groups` is all the groups present in state.' + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: QueryGroupsResponse is the Query/Groups response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/group/v1/groups_by_admin/{admin}: + get: + summary: GroupsByAdmin queries groups by admin address. + operationId: GroupsByAdmin_26486 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + groups: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group's admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata to attached to the + group. + + the recommended format of the metadata is to be found + here: + https://docs.cosmos.network/v0.47/modules/group#group-1 + version: + type: string + format: uint64 + title: >- + version is used to track changes to a group's membership + structure that + + would break existing proposals. Whenever any members + weight is changed, + + or any member is added or removed this version is + incremented and will + + cause proposals based on older versions of this group to + fail + total_weight: + type: string + description: total_weight is the sum of the group members' weights. + created_at: + type: string + format: date-time + description: >- + created_at is a timestamp specifying when a group was + created. + description: >- + GroupInfo represents the high-level on-chain information for + a group. + description: groups are the groups info with the provided admin. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGroupsByAdminResponse is the Query/GroupsByAdminResponse + response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: admin + description: admin is the account address of a group's admin. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/group/v1/groups_by_member/{address}: + get: + summary: GroupsByMember queries groups by member address. + operationId: GroupsByMember_32697 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + groups: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group's admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata to attached to the + group. + + the recommended format of the metadata is to be found + here: + https://docs.cosmos.network/v0.47/modules/group#group-1 + version: + type: string + format: uint64 + title: >- + version is used to track changes to a group's membership + structure that + + would break existing proposals. Whenever any members + weight is changed, + + or any member is added or removed this version is + incremented and will + + cause proposals based on older versions of this group to + fail + total_weight: + type: string + description: total_weight is the sum of the group members' weights. + created_at: + type: string + format: date-time + description: >- + created_at is a timestamp specifying when a group was + created. + description: >- + GroupInfo represents the high-level on-chain information for + a group. + description: groups are the groups info with the provided group member. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGroupsByMemberResponse is the Query/GroupsByMember response + type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address is the group member address. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/group/v1/proposal/{proposal_id}: + get: + summary: Proposal queries a proposal based on proposal id. + operationId: Proposal_08409 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + proposal: + description: proposal is the proposal info. + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique id of the proposal. + group_policy_address: + type: string + description: >- + group_policy_address is the account address of group + policy. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the + proposal. + + the recommended format of the metadata is to be found + here: + + https://docs.cosmos.network/v0.47/modules/group#proposal-4 + proposers: + type: array + items: + type: string + description: proposers are the account addresses of the proposers. + submit_time: + type: string + format: date-time + description: >- + submit_time is a timestamp specifying when a proposal was + submitted. + group_version: + type: string + format: uint64 + description: >- + group_version tracks the version of the group at proposal + submission. + + This field is here for informational purposes only. + group_policy_version: + type: string + format: uint64 + description: >- + group_policy_version tracks the version of the group + policy at proposal submission. + + When a decision policy is changed, existing proposals from + previous policy + + versions will become invalid with the `ABORTED` status. + + This field is here for informational purposes only. + status: + description: >- + status represents the high level position in the life + cycle of the proposal. Initial value is Submitted. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_SUBMITTED + - PROPOSAL_STATUS_ACCEPTED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_ABORTED + - PROPOSAL_STATUS_WITHDRAWN + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result contains the sums of all weighted votes + for this + + proposal for each vote option. It is empty at submission, + and only + + populated after tallying, at voting period end or at + proposal execution, + + whichever happens first. + type: object + properties: + yes_count: + type: string + description: yes_count is the weighted sum of yes votes. + abstain_count: + type: string + description: abstain_count is the weighted sum of abstainers. + no_count: + type: string + description: no_count is the weighted sum of no votes. + no_with_veto_count: + type: string + description: no_with_veto_count is the weighted sum of veto. + voting_period_end: + type: string + format: date-time + description: >- + voting_period_end is the timestamp before which voting + must be done. + + Unless a successful MsgExec is called before (to execute a + proposal whose + + tally is successful before the voting period ends), + tallying will be done + + at this point, and the `final_tally_result`and `status` + fields will be + + accordingly updated. + executor_result: + description: >- + executor_result is the final result of the proposal + execution. Initial value is NotRun. + type: string + enum: + - PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED + - PROPOSAL_EXECUTOR_RESULT_NOT_RUN + - PROPOSAL_EXECUTOR_RESULT_SUCCESS + - PROPOSAL_EXECUTOR_RESULT_FAILURE + default: PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of `sdk.Msg`s that will be executed if + the proposal passes. + title: + type: string + title: title is the title of the proposal + summary: + type: string + title: summary is a short summary of the proposal + description: QueryProposalResponse is the Query/Proposal response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id is the unique ID of a proposal. + in: path + required: true + type: string + format: uint64 + tags: + - Query + /cosmos/group/v1/proposals/{proposal_id}/tally: + get: + summary: >- + TallyResult returns the tally result of a proposal. If the proposal is + + still in voting period, then this query computes the current tally + state, + + which might not be final. On the other hand, if the proposal is final, + + then it simply returns the `final_tally_result` state stored in the + + proposal itself. + operationId: TallyResult_15364 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + tally: + description: tally defines the requested tally. + type: object + properties: + yes_count: + type: string + description: yes_count is the weighted sum of yes votes. + abstain_count: + type: string + description: abstain_count is the weighted sum of abstainers. + no_count: + type: string + description: no_count is the weighted sum of no votes. + no_with_veto_count: + type: string + description: no_with_veto_count is the weighted sum of veto. + description: QueryTallyResultResponse is the Query/TallyResult response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id is the unique id of a proposal. + in: path + required: true + type: string + format: uint64 + tags: + - Query + /cosmos/group/v1/proposals_by_group_policy/{address}: + get: + summary: >- + ProposalsByGroupPolicy queries proposals based on account address of + group policy. + operationId: ProposalsByGroupPolicy_21557 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + proposals: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique id of the proposal. + group_policy_address: + type: string + description: >- + group_policy_address is the account address of group + policy. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the + proposal. + + the recommended format of the metadata is to be found + here: + + https://docs.cosmos.network/v0.47/modules/group#proposal-4 + proposers: + type: array + items: + type: string + description: proposers are the account addresses of the proposers. + submit_time: + type: string + format: date-time + description: >- + submit_time is a timestamp specifying when a proposal + was submitted. + group_version: + type: string + format: uint64 + description: >- + group_version tracks the version of the group at + proposal submission. + + This field is here for informational purposes only. + group_policy_version: + type: string + format: uint64 + description: >- + group_policy_version tracks the version of the group + policy at proposal submission. + + When a decision policy is changed, existing proposals + from previous policy + + versions will become invalid with the `ABORTED` status. + + This field is here for informational purposes only. + status: + description: >- + status represents the high level position in the life + cycle of the proposal. Initial value is Submitted. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_SUBMITTED + - PROPOSAL_STATUS_ACCEPTED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_ABORTED + - PROPOSAL_STATUS_WITHDRAWN + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result contains the sums of all weighted + votes for this + + proposal for each vote option. It is empty at + submission, and only + + populated after tallying, at voting period end or at + proposal execution, + + whichever happens first. + type: object + properties: + yes_count: + type: string + description: yes_count is the weighted sum of yes votes. + abstain_count: + type: string + description: abstain_count is the weighted sum of abstainers. + no_count: + type: string + description: no_count is the weighted sum of no votes. + no_with_veto_count: + type: string + description: no_with_veto_count is the weighted sum of veto. + voting_period_end: + type: string + format: date-time + description: >- + voting_period_end is the timestamp before which voting + must be done. + + Unless a successful MsgExec is called before (to execute + a proposal whose + + tally is successful before the voting period ends), + tallying will be done + + at this point, and the `final_tally_result`and `status` + fields will be + + accordingly updated. + executor_result: + description: >- + executor_result is the final result of the proposal + execution. Initial value is NotRun. + type: string + enum: + - PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED + - PROPOSAL_EXECUTOR_RESULT_NOT_RUN + - PROPOSAL_EXECUTOR_RESULT_SUCCESS + - PROPOSAL_EXECUTOR_RESULT_FAILURE + default: PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain + at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should + be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions + as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of `sdk.Msg`s that will be executed + if the proposal passes. + title: + type: string + title: title is the title of the proposal + summary: + type: string + title: summary is a short summary of the proposal + description: >- + Proposal defines a group proposal. Any member of a group can + submit a proposal + + for a group policy to decide upon. + + A proposal consists of a set of `sdk.Msg`s that will be + executed if the proposal + + passes as well as some optional metadata associated with the + proposal. + description: proposals are the proposals with given group policy. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryProposalsByGroupPolicyResponse is the + Query/ProposalByGroupPolicy response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: >- + address is the account address of the group policy related to + proposals. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/group/v1/vote_by_proposal_voter/{proposal_id}/{voter}: + get: + summary: VoteByProposalVoter queries a vote by proposal id and voter. + operationId: VoteByProposalVoter_22518 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + vote: + description: vote is the vote with given proposal_id and voter. + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal is the unique ID of the proposal. + voter: + type: string + description: voter is the account address of the voter. + option: + description: option is the voter's choice on the proposal. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the vote. + + the recommended format of the metadata is to be found + here: + https://docs.cosmos.network/v0.47/modules/group#vote-2 + submit_time: + type: string + format: date-time + description: submit_time is the timestamp when the vote was submitted. + title: Vote represents a vote for a proposal.string metadata + description: >- + QueryVoteByProposalVoterResponse is the Query/VoteByProposalVoter + response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id is the unique ID of a proposal. + in: path + required: true + type: string + format: uint64 + - name: voter + description: voter is a proposal voter account address. + in: path + required: true + type: string + tags: + - Query + /cosmos/group/v1/votes_by_proposal/{proposal_id}: + get: + summary: VotesByProposal queries a vote by proposal id. + operationId: VotesByProposal_11954 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + votes: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal is the unique ID of the proposal. + voter: + type: string + description: voter is the account address of the voter. + option: + description: option is the voter's choice on the proposal. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the vote. + + the recommended format of the metadata is to be found + here: + https://docs.cosmos.network/v0.47/modules/group#vote-2 + submit_time: + type: string + format: date-time + description: >- + submit_time is the timestamp when the vote was + submitted. + title: Vote represents a vote for a proposal.string metadata + description: votes are the list of votes for given proposal_id. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryVotesByProposalResponse is the Query/VotesByProposal response + type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: proposal_id + description: proposal_id is the unique ID of a proposal. + in: path + required: true + type: string + format: uint64 + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/group/v1/votes_by_voter/{voter}: + get: + summary: VotesByVoter queries a vote by voter. + operationId: VotesByVoter_05777 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + votes: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal is the unique ID of the proposal. + voter: + type: string + description: voter is the account address of the voter. + option: + description: option is the voter's choice on the proposal. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the vote. + + the recommended format of the metadata is to be found + here: + https://docs.cosmos.network/v0.47/modules/group#vote-2 + submit_time: + type: string + format: date-time + description: >- + submit_time is the timestamp when the vote was + submitted. + title: Vote represents a vote for a proposal.string metadata + description: votes are the list of votes by given voter. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: QueryVotesByVoterResponse is the Query/VotesByVoter response type. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: voter + description: voter is a proposal voter account address. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/bank/v1beta1/balances/{address}: + get: + summary: AllBalances queries the balance of all coins for a single account. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: AllBalances_01584 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + balances: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: balances is the balances of all the coins. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryAllBalancesResponse is the response type for the + Query/AllBalances RPC + + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address is the address to query balances for. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + - name: resolve_denom + description: >- + resolve_denom is the flag to resolve the denom into a human-readable + form from the metadata. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/bank/v1beta1/balances/{address}/by_denom: + get: + summary: Balance queries the balance of a single coin for a single account. + operationId: Balance_09499 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: >- + QueryBalanceResponse is the response type for the Query/Balance + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address is the address to query balances for. + in: path + required: true + type: string + - name: denom + description: denom is the coin denom to query balances for. + in: query + required: false + type: string + tags: + - Query + /cosmos/bank/v1beta1/denom_owners/{denom}: + get: + summary: >- + DenomOwners queries for all account addresses that own a particular + token + + denomination. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: DenomOwners_32702 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + denom_owners: + type: array + items: + type: object + properties: + address: + type: string + description: >- + address defines the address that owns a particular + denomination. + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: >- + DenomOwner defines structure representing an account that + owns or holds a + + particular denominated token. It contains the account + address and account + + balance of the denominated token. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryDenomOwnersResponse defines the RPC response of a DenomOwners + RPC query. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: denom + description: >- + denom defines the coin denomination to query all account holders + for. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/bank/v1beta1/denom_owners_by_query: + get: + summary: >- + DenomOwnersByQuery queries for all account addresses that own a + particular token + + denomination. + operationId: DenomOwnersByQuery_29947 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + denom_owners: + type: array + items: + type: object + properties: + address: + type: string + description: >- + address defines the address that owns a particular + denomination. + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + description: >- + DenomOwner defines structure representing an account that + owns or holds a + + particular denominated token. It contains the account + address and account + + balance of the denominated token. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryDenomOwnersByQueryResponse defines the RPC response of a + DenomOwnersByQuery RPC query. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: denom + description: >- + denom defines the coin denomination to query all account holders + for. + in: query + required: false + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/bank/v1beta1/denoms_metadata: + get: + summary: |- + DenomsMetadata queries the client metadata for all registered coin + denominations. + operationId: DenomsMetadata_16064 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + metadatas: + type: array + items: + type: object + properties: + description: + type: string + denom_units: + type: array + items: + type: object + properties: + denom: + type: string + description: >- + denom represents the string name of the given + denom unit (e.g uatom). + exponent: + type: integer + format: int64 + description: >- + exponent represents power of 10 exponent that one + must + + raise the base_denom to in order to equal the + given DenomUnit's denom + + 1 denom = 10^exponent base_denom + + (e.g. with a base_denom of uatom, one can create a + DenomUnit of 'atom' with + + exponent = 6, thus: 1 atom = 10^6 uatom). + aliases: + type: array + items: + type: string + title: >- + aliases is a list of string aliases for the given + denom + description: |- + DenomUnit represents a struct that describes a given + denomination unit of the basic token. + title: >- + denom_units represents the list of DenomUnit's for a + given coin + base: + type: string + description: >- + base represents the base denom (should be the DenomUnit + with exponent = 0). + display: + type: string + description: |- + display indicates the suggested denom that should be + displayed in clients. + name: + type: string + title: 'name defines the name of the token (eg: Cosmos Atom)' + symbol: + type: string + description: >- + symbol is the token symbol usually shown on exchanges + (eg: ATOM). This can + + be the same as the display. + uri: + type: string + description: >- + URI to a document (on or off-chain) that contains + additional information. Optional. + uri_hash: + type: string + description: >- + URIHash is a sha256 hash of a document pointed by URI. + It's used to verify that + + the document didn't change. Optional. + description: |- + Metadata represents a struct that describes + a basic token. + description: >- + metadata provides the client information for all the + registered tokens. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryDenomsMetadataResponse is the response type for the + Query/DenomsMetadata RPC + + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/bank/v1beta1/denoms_metadata/{denom}: + get: + summary: DenomMetadata queries the client metadata of a given coin denomination. + operationId: DenomMetadata_24417 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + metadata: + type: object + properties: + description: + type: string + denom_units: + type: array + items: + type: object + properties: + denom: + type: string + description: >- + denom represents the string name of the given denom + unit (e.g uatom). + exponent: + type: integer + format: int64 + description: >- + exponent represents power of 10 exponent that one + must + + raise the base_denom to in order to equal the given + DenomUnit's denom + + 1 denom = 10^exponent base_denom + + (e.g. with a base_denom of uatom, one can create a + DenomUnit of 'atom' with + + exponent = 6, thus: 1 atom = 10^6 uatom). + aliases: + type: array + items: + type: string + title: >- + aliases is a list of string aliases for the given + denom + description: |- + DenomUnit represents a struct that describes a given + denomination unit of the basic token. + title: >- + denom_units represents the list of DenomUnit's for a given + coin + base: + type: string + description: >- + base represents the base denom (should be the DenomUnit + with exponent = 0). + display: + type: string + description: |- + display indicates the suggested denom that should be + displayed in clients. + name: + type: string + title: 'name defines the name of the token (eg: Cosmos Atom)' + symbol: + type: string + description: >- + symbol is the token symbol usually shown on exchanges (eg: + ATOM). This can + + be the same as the display. + uri: + type: string + description: >- + URI to a document (on or off-chain) that contains + additional information. Optional. + uri_hash: + type: string + description: >- + URIHash is a sha256 hash of a document pointed by URI. + It's used to verify that + + the document didn't change. Optional. + description: |- + Metadata represents a struct that describes + a basic token. + description: >- + QueryDenomMetadataResponse is the response type for the + Query/DenomMetadata RPC + + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: denom + description: denom is the coin denom to query the metadata for. + in: path + required: true + type: string + tags: + - Query + /cosmos/bank/v1beta1/denoms_metadata_by_query_string: + get: + summary: >- + DenomMetadataByQueryString queries the client metadata of a given coin + denomination. + operationId: DenomMetadataByQueryString_03384 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + metadata: + type: object + properties: + description: + type: string + denom_units: + type: array + items: + type: object + properties: + denom: + type: string + description: >- + denom represents the string name of the given denom + unit (e.g uatom). + exponent: + type: integer + format: int64 + description: >- + exponent represents power of 10 exponent that one + must + + raise the base_denom to in order to equal the given + DenomUnit's denom + + 1 denom = 10^exponent base_denom + + (e.g. with a base_denom of uatom, one can create a + DenomUnit of 'atom' with + + exponent = 6, thus: 1 atom = 10^6 uatom). + aliases: + type: array + items: + type: string + title: >- + aliases is a list of string aliases for the given + denom + description: |- + DenomUnit represents a struct that describes a given + denomination unit of the basic token. + title: >- + denom_units represents the list of DenomUnit's for a given + coin + base: + type: string + description: >- + base represents the base denom (should be the DenomUnit + with exponent = 0). + display: + type: string + description: |- + display indicates the suggested denom that should be + displayed in clients. + name: + type: string + title: 'name defines the name of the token (eg: Cosmos Atom)' + symbol: + type: string + description: >- + symbol is the token symbol usually shown on exchanges (eg: + ATOM). This can + + be the same as the display. + uri: + type: string + description: >- + URI to a document (on or off-chain) that contains + additional information. Optional. + uri_hash: + type: string + description: >- + URIHash is a sha256 hash of a document pointed by URI. + It's used to verify that + + the document didn't change. Optional. + description: |- + Metadata represents a struct that describes + a basic token. + description: >- + QueryDenomMetadataByQueryStringResponse is the response type for + the Query/DenomMetadata RPC + + method. Identical with QueryDenomMetadataResponse but receives + denom as query string in request. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: denom + description: denom is the coin denom to query the metadata for. + in: query + required: false + type: string + tags: + - Query + /cosmos/bank/v1beta1/params: + get: + summary: Params queries the parameters of x/bank module. + operationId: Params_18267 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + params: + description: params provides the parameters of the bank module. + type: object + properties: + send_enabled: + type: array + items: + type: object + properties: + denom: + type: string + enabled: + type: boolean + description: >- + SendEnabled maps coin denom to a send_enabled status + (whether a denom is + + sendable). + description: >- + Deprecated: Use of SendEnabled in params is deprecated. + + For genesis, use the newly added send_enabled field in the + genesis object. + + Storage, lookup, and manipulation of this information is + now in the keeper. + + + As of cosmos-sdk 0.47, this only exists for backwards + compatibility of genesis files. + default_send_enabled: + type: boolean + description: >- + QueryParamsResponse defines the response type for querying x/bank + parameters. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmos/bank/v1beta1/send_enabled: + get: + summary: SendEnabled queries for SendEnabled entries. + description: >- + This query only returns denominations that have specific SendEnabled + settings. + + Any denomination that does not have a specific setting will use the + default + + params.default_send_enabled, and will not be returned by this query. + operationId: SendEnabled_20297 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + send_enabled: + type: array + items: + type: object + properties: + denom: + type: string + enabled: + type: boolean + description: >- + SendEnabled maps coin denom to a send_enabled status + (whether a denom is + + sendable). + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QuerySendEnabledResponse defines the RPC response of a SendEnable + query. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: denoms + description: >- + denoms is the specific denoms you want look up. Leave empty to get + all entries. + in: query + required: false + type: array + items: + type: string + collectionFormat: multi + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/bank/v1beta1/spendable_balances/{address}: + get: + summary: >- + SpendableBalances queries the spendable balance of all coins for a + single + + account. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: SpendableBalances_31048 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + balances: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: balances is the spendable balances of all the coins. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QuerySpendableBalancesResponse defines the gRPC response structure + for querying + + an account's spendable balances. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address is the address to query spendable balances for. + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/bank/v1beta1/spendable_balances/{address}/by_denom: + get: + summary: >- + SpendableBalanceByDenom queries the spendable balance of a single denom + for + + a single account. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: SpendableBalanceByDenom_20160 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: >- + QuerySpendableBalanceByDenomResponse defines the gRPC response + structure for + + querying an account's spendable balance for a specific denom. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address is the address to query balances for. + in: path + required: true + type: string + - name: denom + description: denom is the coin denom to query balances for. + in: query + required: false + type: string + tags: + - Query + /cosmos/bank/v1beta1/supply: + get: + summary: TotalSupply queries the total supply of all coins. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: TotalSupply_27400 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + supply: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + title: supply is the supply of the coins + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: >- + QueryTotalSupplyResponse is the response type for the + Query/TotalSupply RPC + + method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + in: query + required: false + type: boolean + tags: + - Query + /cosmos/bank/v1beta1/supply/by_denom: + get: + summary: SupplyOf queries the supply of a single coin. + description: >- + When called from another module, this query might consume a high amount + of + + gas if the pagination field is incorrectly set. + operationId: SupplyOf_14347 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + amount: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: >- + QuerySupplyOfResponse is the response type for the Query/SupplyOf + RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: denom + description: denom is the coin denom to query balances for. + in: query + required: false + type: string + tags: + - Query + /cosmwasm/wasm/v1/code: + get: + summary: Codes gets the metadata for all stored wasm codes + operationId: Codes_03807 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + code_infos: + type: array + items: + type: object + properties: + code_id: + type: string + format: uint64 + creator: + type: string + data_hash: + type: string + format: byte + instantiate_permission: + type: object + properties: + permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified + placeholder for empty value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + addresses: + type: array + items: + type: string + description: AccessConfig access control type. + title: CodeInfoResponse contains code meta data from CodeInfo + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: >- + QueryCodesResponse is the response type for the Query/Codes RPC + method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + + + Since: cosmos-sdk 0.43 + in: query + required: false + type: boolean + tags: + - Query + /cosmwasm/wasm/v1/code-info/{code_id}: + get: + summary: CodeInfo gets the metadata for a single wasm code + operationId: CodeInfo_28610 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + code_id: + type: string + format: uint64 + creator: + type: string + checksum: + type: string + format: byte + instantiate_permission: + type: object + properties: + permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified + placeholder for empty value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + addresses: + type: array + items: + type: string + description: AccessConfig access control type. + title: >- + QueryCodeInfoResponse is the response type for the Query/CodeInfo + RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: code_id + in: path + required: true + type: string + format: uint64 + tags: + - Query + /cosmwasm/wasm/v1/code/{code_id}: + get: + summary: Code gets the binary code and metadata for a single wasm code + operationId: Code_13275 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + code_info: + type: object + properties: + code_id: + type: string + format: uint64 + creator: + type: string + data_hash: + type: string + format: byte + instantiate_permission: + type: object + properties: + permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified + placeholder for empty value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + addresses: + type: array + items: + type: string + description: AccessConfig access control type. + title: CodeInfoResponse contains code meta data from CodeInfo + data: + type: string + format: byte + title: >- + QueryCodeResponse is the response type for the Query/Code RPC + method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: code_id + in: path + required: true + type: string + format: uint64 + tags: + - Query + /cosmwasm/wasm/v1/code/{code_id}/contracts: + get: + summary: ContractsByCode lists all smart contracts for a code id + operationId: ContractsByCode_25860 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + contracts: + type: array + items: + type: string + title: contracts are a set of contract addresses + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: |- + QueryContractsByCodeResponse is the response type for the + Query/ContractsByCode RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: code_id + in: path + required: true + type: string + format: uint64 + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + + + Since: cosmos-sdk 0.43 + in: query + required: false + type: boolean + tags: + - Query + /cosmwasm/wasm/v1/codes/params: + get: + summary: Params gets the module params + operationId: Params_29880 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + params: + description: params defines the parameters of the module. + type: object + properties: + code_upload_access: + type: object + properties: + permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified + placeholder for empty value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + addresses: + type: array + items: + type: string + description: AccessConfig access control type. + instantiate_default_permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified + placeholder for empty value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + description: >- + QueryParamsResponse is the response type for the Query/Params RPC + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query + /cosmwasm/wasm/v1/codes/pinned: + get: + summary: PinnedCodes gets the pinned code ids + operationId: PinnedCodes_07660 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + code_ids: + type: array + items: + type: string + format: uint64 + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: |- + QueryPinnedCodesResponse is the response type for the + Query/PinnedCodes RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + + + Since: cosmos-sdk 0.43 + in: query + required: false + type: boolean + tags: + - Query + /cosmwasm/wasm/v1/contract/build_address: + get: + summary: BuildAddress builds a contract address + operationId: BuildAddress_27786 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + address: + type: string + title: Address is the contract address + description: >- + QueryBuildAddressResponse is the response type for the + Query/BuildAddress RPC + + method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: code_hash + description: CodeHash is the hash of the code. + in: query + required: false + type: string + - name: creator_address + description: CreatorAddress is the address of the contract instantiator. + in: query + required: false + type: string + - name: salt + description: Salt is a hex encoded salt. + in: query + required: false + type: string + - name: init_args + description: >- + InitArgs are optional json encoded init args to be used in contract + address + + building if provided. + in: query + required: false + type: string + format: byte + tags: + - Query + /cosmwasm/wasm/v1/contract/{address}: + get: + summary: ContractInfo gets the contract meta data + operationId: ContractInfo_10101 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + address: + type: string + title: address is the address of the contract + contract_info: + type: object + properties: + code_id: + type: string + format: uint64 + title: CodeID is the reference to the stored Wasm code + creator: + type: string + title: Creator address who initially instantiated the contract + admin: + type: string + title: Admin is an optional address that can execute migrations + label: + type: string + description: >- + Label is optional metadata to be stored with a contract + instance. + created: + description: Created Tx position when the contract was instantiated. + type: object + properties: + block_height: + type: string + format: uint64 + title: BlockHeight is the block the contract was created at + tx_index: + type: string + format: uint64 + title: >- + TxIndex is a monotonic counter within the block + (actual transaction index, + + or gas consumed) + ibc_port_id: + type: string + ibc2_port_id: + type: string + extension: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: ContractInfo stores a WASM contract instance + title: >- + QueryContractInfoResponse is the response type for the + Query/ContractInfo RPC + + method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address is the address of the contract to query + in: path + required: true + type: string + tags: + - Query + /cosmwasm/wasm/v1/contract/{address}/history: + get: + summary: ContractHistory gets the contract code history + operationId: ContractHistory_18657 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + entries: + type: array + items: + type: object + properties: + operation: + type: string + enum: + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS + default: CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED + description: >- + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED: + ContractCodeHistoryOperationTypeUnspecified placeholder + for empty value + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT: ContractCodeHistoryOperationTypeInit on chain contract instantiation + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE: ContractCodeHistoryOperationTypeMigrate code migration + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS: ContractCodeHistoryOperationTypeGenesis based on genesis data + title: >- + ContractCodeHistoryOperationType actions that caused a + code change + code_id: + type: string + format: uint64 + title: CodeID is the reference to the stored WASM code + updated: + description: Updated Tx position when the operation was executed. + type: object + properties: + block_height: + type: string + format: uint64 + title: BlockHeight is the block the contract was created at + tx_index: + type: string + format: uint64 + title: >- + TxIndex is a monotonic counter within the block + (actual transaction index, + + or gas consumed) + msg: + type: string + format: byte + description: ContractCodeHistoryEntry metadata to a contract. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: |- + QueryContractHistoryResponse is the response type for the + Query/ContractHistory RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address is the address of the contract to query + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + + + Since: cosmos-sdk 0.43 + in: query + required: false + type: boolean + tags: + - Query + /cosmwasm/wasm/v1/contract/{address}/raw/{query_data}: + get: + summary: RawContractState gets single key from the raw store data of a contract + operationId: RawContractState_22453 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + data: + type: string + format: byte + title: Data contains the raw store data + title: |- + QueryRawContractStateResponse is the response type for the + Query/RawContractState RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address is the address of the contract + in: path + required: true + type: string + - name: query_data + in: path + required: true + type: string + format: byte + tags: + - Query + /cosmwasm/wasm/v1/contract/{address}/smart/{query_data}: + get: + summary: SmartContractState get smart query result from the contract + operationId: SmartContractState_11163 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + data: + type: string + format: byte + title: Data contains the json data returned from the smart contract + title: |- + QuerySmartContractStateResponse is the response type for the + Query/SmartContractState RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address is the address of the contract + in: path + required: true + type: string + - name: query_data + description: QueryData contains the query data passed to the contract + in: path + required: true + type: string + format: byte + tags: + - Query + /cosmwasm/wasm/v1/contract/{address}/state: + get: + summary: AllContractState gets all raw store data for a single contract + operationId: AllContractState_21718 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + models: + type: array + items: + type: object + properties: + key: + type: string + format: byte + title: hex-encode key to read it better (this is often ascii) + value: + type: string + format: byte + title: base64-encode raw value + title: Model is a struct that holds a KV pair + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: |- + QueryAllContractStateResponse is the response type for the + Query/AllContractState RPC method + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: address + description: address is the address of the contract + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + + + Since: cosmos-sdk 0.43 + in: query + required: false + type: boolean + tags: + - Query + /cosmwasm/wasm/v1/contracts/creator/{creator_address}: + get: + summary: ContractsByCreator gets the contracts by creator + operationId: ContractsByCreator_27306 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + contract_addresses: + type: array + items: + type: string + title: ContractAddresses result set + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: |- + QueryContractsByCreatorResponse is the response type for the + Query/ContractsByCreator RPC method. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + parameters: + - name: creator_address + description: CreatorAddress is the address of contract creator + in: path + required: true + type: string + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + + + Since: cosmos-sdk 0.43 + in: query + required: false + type: boolean + tags: + - Query + /cosmwasm/wasm/v1/wasm-limits-config: + get: + summary: >- + WasmLimitsConfig gets the configured limits for static validation of + Wasm + + files, encoded in JSON. + operationId: WasmLimitsConfig_15559 + responses: + '200': + description: A successful response. + schema: + type: object + properties: + config: + type: string + description: >- + QueryWasmLimitsConfigResponse is the response type for the + + Query/WasmLimitsConfig RPC method. It contains the JSON encoded + limits for + + static validation of Wasm files. + default: + description: An unexpected error response. + schema: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + tags: + - Query +definitions: + bitsong.smartaccount.v1beta1.AccountAuthenticator: + type: object + properties: + id: + type: string + format: uint64 + description: ID uniquely identifies the authenticator instance. + type: + type: string + description: |- + Type specifies the category of the AccountAuthenticator. + This type information is essential for differentiating authenticators + and ensuring precise data retrieval from the storage layer. + config: + type: string + format: byte + description: >- + Config is a versatile field used in conjunction with the specific type + of + + account authenticator to facilitate complex authentication processes. + + The interpretation of this field is overloaded, enabling multiple + + authenticators to utilize it for their respective purposes. + description: >- + AccountAuthenticator represents a foundational model for all + authenticators. + + It provides extensibility by allowing concrete types to interpret and + + validate transactions based on the encapsulated data. + bitsong.smartaccount.v1beta1.GetAuthenticatorResponse: + type: object + properties: + account_authenticator: + type: object + properties: + id: + type: string + format: uint64 + description: ID uniquely identifies the authenticator instance. + type: + type: string + description: >- + Type specifies the category of the AccountAuthenticator. + + This type information is essential for differentiating + authenticators + + and ensuring precise data retrieval from the storage layer. + config: + type: string + format: byte + description: >- + Config is a versatile field used in conjunction with the specific + type of + + account authenticator to facilitate complex authentication + processes. + + The interpretation of this field is overloaded, enabling multiple + + authenticators to utilize it for their respective purposes. + description: >- + AccountAuthenticator represents a foundational model for all + authenticators. + + It provides extensibility by allowing concrete types to interpret and + + validate transactions based on the encapsulated data. + description: >- + MsgGetAuthenticatorResponse defines the Msg/GetAuthenticator response + type. + bitsong.smartaccount.v1beta1.GetAuthenticatorsResponse: + type: object + properties: + account_authenticators: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + description: ID uniquely identifies the authenticator instance. + type: + type: string + description: >- + Type specifies the category of the AccountAuthenticator. + + This type information is essential for differentiating + authenticators + + and ensuring precise data retrieval from the storage layer. + config: + type: string + format: byte + description: >- + Config is a versatile field used in conjunction with the + specific type of + + account authenticator to facilitate complex authentication + processes. + + The interpretation of this field is overloaded, enabling + multiple + + authenticators to utilize it for their respective purposes. + description: >- + AccountAuthenticator represents a foundational model for all + authenticators. + + It provides extensibility by allowing concrete types to interpret + and + + validate transactions based on the encapsulated data. + description: >- + MsgGetAuthenticatorsResponse defines the Msg/GetAuthenticators response + type. + bitsong.smartaccount.v1beta1.Params: + type: object + properties: + maximum_unauthenticated_gas: + type: string + format: uint64 + description: >- + MaximumUnauthenticatedGas defines the maximum amount of gas that can + be + + used to authenticate a transaction in ante handler without having fee + payer + + authenticated. + is_smart_account_active: + type: boolean + description: |- + IsSmartAccountActive defines the state of the authenticator. + If set to false, the authenticator module will not be used + and the classic cosmos sdk authentication will be used instead. + circuit_breaker_controllers: + type: array + items: + type: string + description: >- + CircuitBreakerControllers defines list of addresses that are allowed + to + + set is_smart_account_active without going through governance. + description: Params defines the parameters for the module. + bitsong.smartaccount.v1beta1.QueryParamsResponse: + type: object + properties: + params: + description: params holds all the parameters of this module. + type: object + properties: + maximum_unauthenticated_gas: + type: string + format: uint64 + description: >- + MaximumUnauthenticatedGas defines the maximum amount of gas that + can be + + used to authenticate a transaction in ante handler without having + fee payer + + authenticated. + is_smart_account_active: + type: boolean + description: |- + IsSmartAccountActive defines the state of the authenticator. + If set to false, the authenticator module will not be used + and the classic cosmos sdk authentication will be used instead. + circuit_breaker_controllers: + type: array + items: + type: string + description: >- + CircuitBreakerControllers defines list of addresses that are + allowed to + + set is_smart_account_active without going through governance. + description: QueryParamsResponse is response type for the Query/Params RPC method. + google.protobuf.Any: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a canonical + form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types that + they + + expect it to use in the context of Any. However, for URLs which use + the + + scheme `http`, `https`, or no scheme, one can optionally set up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along with + a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + grpc.gateway.runtime.Error: + type: object + properties: + error: + type: string + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up + a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + bitsong.fantoken.v1beta1.FanToken: + type: object + properties: + denom: + type: string + description: >- + denom represents the string name of the given denom unit (e.g + ft). + max_supply: + type: string + minter: + type: string + title: sdk.AccAddress allowed to mint new fantoken + meta_data: + type: object + properties: + name: + type: string + title: 'name defines the name of the fantoken (eg: Kitty Punk)' + symbol: + type: string + title: 'symbol is the token symbol usually shown on exchanges (eg: KITTY)' + uri: + type: string + description: |- + URI to a document (on or off-chain) that contains additional + information.Optional. + authority: + type: string + title: sdk.AccAddress allowed to set a new uri + title: FanToken defines a standard for the fungible token + bitsong.fantoken.v1beta1.Metadata: + type: object + properties: + name: + type: string + title: 'name defines the name of the fantoken (eg: Kitty Punk)' + symbol: + type: string + title: 'symbol is the token symbol usually shown on exchanges (eg: KITTY)' + uri: + type: string + description: |- + URI to a document (on or off-chain) that contains additional + information.Optional. + authority: + type: string + title: sdk.AccAddress allowed to set a new uri + bitsong.fantoken.v1beta1.Params: + type: object + properties: + issue_fee: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + mint_fee: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + burn_fee: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + title: Params defines fantoken module's parameters + bitsong.fantoken.v1beta1.QueryFanTokenResponse: + type: object + properties: + fantoken: + type: object + properties: + denom: + type: string + description: >- + denom represents the string name of the given denom unit (e.g + ft). + max_supply: + type: string + minter: + type: string + title: sdk.AccAddress allowed to mint new fantoken + meta_data: + type: object + properties: + name: + type: string + title: 'name defines the name of the fantoken (eg: Kitty Punk)' + symbol: + type: string + title: >- + symbol is the token symbol usually shown on exchanges (eg: + KITTY) + uri: + type: string + description: |- + URI to a document (on or off-chain) that contains additional + information.Optional. + authority: + type: string + title: sdk.AccAddress allowed to set a new uri + title: FanToken defines a standard for the fungible token + title: QueryFanTokenResponse is response type for the Query/FanToken RPC method + bitsong.fantoken.v1beta1.QueryFanTokensResponse: + type: object + properties: + fantokens: + type: array + items: + type: object + properties: + denom: + type: string + description: >- + denom represents the string name of the given denom unit (e.g + ft). + max_supply: + type: string + minter: + type: string + title: sdk.AccAddress allowed to mint new fantoken + meta_data: + type: object + properties: + name: + type: string + title: 'name defines the name of the fantoken (eg: Kitty Punk)' + symbol: + type: string + title: >- + symbol is the token symbol usually shown on exchanges (eg: + KITTY) + uri: + type: string + description: |- + URI to a document (on or off-chain) that contains additional + information.Optional. + authority: + type: string + title: sdk.AccAddress allowed to set a new uri + title: FanToken defines a standard for the fungible token + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: QueryFanTokensResponse is response type for the Query/FanTokens RPC method + bitsong.fantoken.v1beta1.QueryParamsResponse: + type: object + properties: + params: + type: object + properties: + issue_fee: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + mint_fee: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + burn_fee: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + title: Params defines fantoken module's parameters + title: >- + QueryParametersResponse is response type for the Query/Parameters RPC + method + cosmos.base.query.v1beta1.PageRequest: + type: object + properties: + key: + type: string + format: byte + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + offset: + type: string + format: uint64 + description: |- + offset is a numeric offset that can be used when key is unavailable. + It is less efficient than using key. Only one of offset or key should + be set. + limit: + type: string + format: uint64 + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + count_total: + type: boolean + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in UIs. + + count_total is only respected when offset is used. It is ignored when + key + + is set. + reverse: + type: boolean + description: >- + reverse is set to true if results are to be returned in the descending + order. + + + Since: cosmos-sdk 0.43 + description: |- + message SomeRequest { + Foo some_parameter = 1; + PageRequest pagination = 2; + } + title: |- + PageRequest is to be embedded in gRPC request messages for efficient + pagination. Ex: + cosmos.base.query.v1beta1.PageResponse: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: |- + total is total number of results available if PageRequest.count_total + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + cosmos.base.v1beta1.Coin: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + cosmos.consensus.v1.QueryParamsResponse: + type: object + properties: + params: + description: >- + params are the tendermint consensus params stored in the consensus + module. + + Please note that `params.version` is not populated in this response, + it is + + tracked separately in the x/upgrade module. + type: object + properties: + block: + type: object + properties: + max_bytes: + type: string + format: int64 + title: |- + Max block size, in bytes. + Note: must be greater than 0 + max_gas: + type: string + format: int64 + title: |- + Max gas per block. + Note: must be greater or equal to -1 + description: BlockParams contains limits on the block size. + evidence: + type: object + properties: + max_age_num_blocks: + type: string + format: int64 + description: >- + Max age of evidence, in blocks. + + + The basic formula for calculating this is: MaxAgeDuration / + {average block + + time}. + max_age_duration: + type: string + description: >- + Max age of evidence, in time. + + + It should correspond with an app's "unbonding period" or other + similar + + mechanism for handling [Nothing-At-Stake + + attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed). + max_bytes: + type: string + format: int64 + title: >- + This sets the maximum size of total evidence in bytes that can + be committed in a single block. + + and should fall comfortably under the max block bytes. + + Default is 1048576 or 1MB + description: EvidenceParams determine how we handle evidence of malfeasance. + validator: + type: object + properties: + pub_key_types: + type: array + items: + type: string + description: |- + ValidatorParams restrict the public key types validators can use. + NOTE: uses ABCI pubkey naming, not Amino names. + version: + type: object + properties: + app: + type: string + format: uint64 + description: VersionParams contains the ABCI application version. + abci: + type: object + properties: + vote_extensions_enable_height: + type: string + format: int64 + description: >- + vote_extensions_enable_height configures the first height + during which + + vote extensions will be enabled. During this specified height, + and for all + + subsequent heights, precommit messages that do not contain + valid extension data + + will be considered invalid. Prior to this height, vote + extensions will not + + be used or accepted by validators on the network. + + + Once enabled, vote extensions will be created by the + application in ExtendVote, + + passed to the application for validation in + VerifyVoteExtension and given + + to the application to use when proposing a block during + PrepareProposal. + description: >- + ABCIParams configure functionality specific to the Application + Blockchain Interface. + description: >- + QueryParamsResponse defines the response type for querying x/consensus + parameters. + tendermint.types.ABCIParams: + type: object + properties: + vote_extensions_enable_height: + type: string + format: int64 + description: >- + vote_extensions_enable_height configures the first height during which + + vote extensions will be enabled. During this specified height, and for + all + + subsequent heights, precommit messages that do not contain valid + extension data + + will be considered invalid. Prior to this height, vote extensions will + not + + be used or accepted by validators on the network. + + + Once enabled, vote extensions will be created by the application in + ExtendVote, + + passed to the application for validation in VerifyVoteExtension and + given + + to the application to use when proposing a block during + PrepareProposal. + description: >- + ABCIParams configure functionality specific to the Application Blockchain + Interface. + tendermint.types.BlockParams: + type: object + properties: + max_bytes: + type: string + format: int64 + title: |- + Max block size, in bytes. + Note: must be greater than 0 + max_gas: + type: string + format: int64 + title: |- + Max gas per block. + Note: must be greater or equal to -1 + description: BlockParams contains limits on the block size. + tendermint.types.ConsensusParams: + type: object + properties: + block: + type: object + properties: + max_bytes: + type: string + format: int64 + title: |- + Max block size, in bytes. + Note: must be greater than 0 + max_gas: + type: string + format: int64 + title: |- + Max gas per block. + Note: must be greater or equal to -1 + description: BlockParams contains limits on the block size. + evidence: + type: object + properties: + max_age_num_blocks: + type: string + format: int64 + description: >- + Max age of evidence, in blocks. + + + The basic formula for calculating this is: MaxAgeDuration / + {average block + + time}. + max_age_duration: + type: string + description: >- + Max age of evidence, in time. + + + It should correspond with an app's "unbonding period" or other + similar + + mechanism for handling [Nothing-At-Stake + + attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed). + max_bytes: + type: string + format: int64 + title: >- + This sets the maximum size of total evidence in bytes that can be + committed in a single block. + + and should fall comfortably under the max block bytes. + + Default is 1048576 or 1MB + description: EvidenceParams determine how we handle evidence of malfeasance. + validator: + type: object + properties: + pub_key_types: + type: array + items: + type: string + description: |- + ValidatorParams restrict the public key types validators can use. + NOTE: uses ABCI pubkey naming, not Amino names. + version: + type: object + properties: + app: + type: string + format: uint64 + description: VersionParams contains the ABCI application version. + abci: + type: object + properties: + vote_extensions_enable_height: + type: string + format: int64 + description: >- + vote_extensions_enable_height configures the first height during + which + + vote extensions will be enabled. During this specified height, and + for all + + subsequent heights, precommit messages that do not contain valid + extension data + + will be considered invalid. Prior to this height, vote extensions + will not + + be used or accepted by validators on the network. + + + Once enabled, vote extensions will be created by the application + in ExtendVote, + + passed to the application for validation in VerifyVoteExtension + and given + + to the application to use when proposing a block during + PrepareProposal. + description: >- + ABCIParams configure functionality specific to the Application + Blockchain Interface. + description: |- + ConsensusParams contains consensus critical parameters that determine the + validity of blocks. + tendermint.types.EvidenceParams: + type: object + properties: + max_age_num_blocks: + type: string + format: int64 + description: >- + Max age of evidence, in blocks. + + + The basic formula for calculating this is: MaxAgeDuration / {average + block + + time}. + max_age_duration: + type: string + description: >- + Max age of evidence, in time. + + + It should correspond with an app's "unbonding period" or other similar + + mechanism for handling [Nothing-At-Stake + + attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed). + max_bytes: + type: string + format: int64 + title: >- + This sets the maximum size of total evidence in bytes that can be + committed in a single block. + + and should fall comfortably under the max block bytes. + + Default is 1048576 or 1MB + description: EvidenceParams determine how we handle evidence of malfeasance. + tendermint.types.ValidatorParams: + type: object + properties: + pub_key_types: + type: array + items: + type: string + description: |- + ValidatorParams restrict the public key types validators can use. + NOTE: uses ABCI pubkey naming, not Amino names. + tendermint.types.VersionParams: + type: object + properties: + app: + type: string + format: uint64 + description: VersionParams contains the ABCI application version. + cosmos.circuit.v1.AccountResponse: + type: object + properties: + permission: + type: object + properties: + level: + description: level is the level of permissions granted to this account. + type: string + enum: + - LEVEL_NONE_UNSPECIFIED + - LEVEL_SOME_MSGS + - LEVEL_ALL_MSGS + - LEVEL_SUPER_ADMIN + default: LEVEL_NONE_UNSPECIFIED + limit_type_urls: + type: array + items: + type: string + description: >- + limit_type_urls is used with LEVEL_SOME_MSGS to limit the lists of + Msg type + + URLs that the account can trip. It is an error to use + limit_type_urls with + + a level other than LEVEL_SOME_MSGS. + description: |- + Permissions are the permissions that an account has to trip + or reset the circuit breaker. + description: AccountResponse is the response type for the Query/Account RPC method. + cosmos.circuit.v1.AccountsResponse: + type: object + properties: + accounts: + type: array + items: + type: object + properties: + address: + type: string + permissions: + type: object + properties: + level: + description: level is the level of permissions granted to this account. + type: string + enum: + - LEVEL_NONE_UNSPECIFIED + - LEVEL_SOME_MSGS + - LEVEL_ALL_MSGS + - LEVEL_SUPER_ADMIN + default: LEVEL_NONE_UNSPECIFIED + limit_type_urls: + type: array + items: + type: string + description: >- + limit_type_urls is used with LEVEL_SOME_MSGS to limit the + lists of Msg type + + URLs that the account can trip. It is an error to use + limit_type_urls with + + a level other than LEVEL_SOME_MSGS. + description: |- + Permissions are the permissions that an account has to trip + or reset the circuit breaker. + title: >- + GenesisAccountPermissions is the account permissions for the circuit + breaker in genesis + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: AccountsResponse is the response type for the Query/Accounts RPC method. + cosmos.circuit.v1.DisabledListResponse: + type: object + properties: + disabled_list: + type: array + items: + type: string + description: >- + DisabledListResponse is the response type for the Query/DisabledList RPC + method. + cosmos.circuit.v1.GenesisAccountPermissions: + type: object + properties: + address: + type: string + permissions: + type: object + properties: + level: + description: level is the level of permissions granted to this account. + type: string + enum: + - LEVEL_NONE_UNSPECIFIED + - LEVEL_SOME_MSGS + - LEVEL_ALL_MSGS + - LEVEL_SUPER_ADMIN + default: LEVEL_NONE_UNSPECIFIED + limit_type_urls: + type: array + items: + type: string + description: >- + limit_type_urls is used with LEVEL_SOME_MSGS to limit the lists of + Msg type + + URLs that the account can trip. It is an error to use + limit_type_urls with + + a level other than LEVEL_SOME_MSGS. + description: |- + Permissions are the permissions that an account has to trip + or reset the circuit breaker. + title: >- + GenesisAccountPermissions is the account permissions for the circuit + breaker in genesis + cosmos.circuit.v1.Permissions: + type: object + properties: + level: + description: level is the level of permissions granted to this account. + type: string + enum: + - LEVEL_NONE_UNSPECIFIED + - LEVEL_SOME_MSGS + - LEVEL_ALL_MSGS + - LEVEL_SUPER_ADMIN + default: LEVEL_NONE_UNSPECIFIED + limit_type_urls: + type: array + items: + type: string + description: >- + limit_type_urls is used with LEVEL_SOME_MSGS to limit the lists of Msg + type + + URLs that the account can trip. It is an error to use limit_type_urls + with + + a level other than LEVEL_SOME_MSGS. + description: |- + Permissions are the permissions that an account has to trip + or reset the circuit breaker. + cosmos.circuit.v1.Permissions.Level: + type: string + enum: + - LEVEL_NONE_UNSPECIFIED + - LEVEL_SOME_MSGS + - LEVEL_ALL_MSGS + - LEVEL_SUPER_ADMIN + default: LEVEL_NONE_UNSPECIFIED + description: |- + Level is the permission level. + + - LEVEL_NONE_UNSPECIFIED: LEVEL_NONE_UNSPECIFIED indicates that the account will have no circuit + breaker permissions. + - LEVEL_SOME_MSGS: LEVEL_SOME_MSGS indicates that the account will have permission to + trip or reset the circuit breaker for some Msg type URLs. If this level + is chosen, a non-empty list of Msg type URLs must be provided in + limit_type_urls. + - LEVEL_ALL_MSGS: LEVEL_ALL_MSGS indicates that the account can trip or reset the circuit + breaker for Msg's of all type URLs. + - LEVEL_SUPER_ADMIN: LEVEL_SUPER_ADMIN indicates that the account can take all circuit breaker + actions and can grant permissions to other accounts. + cosmos.base.v1beta1.DecCoin: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + DecCoin defines a token with a denomination and a decimal amount. + + NOTE: The amount field is an Dec which implements the custom method + signatures required by gogoproto. + cosmos.distribution.v1beta1.DelegationDelegatorReward: + type: object + properties: + validator_address: + type: string + reward: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + DecCoin defines a token with a denomination and a decimal amount. + + NOTE: The amount field is an Dec which implements the custom method + signatures required by gogoproto. + description: |- + DelegationDelegatorReward represents the properties + of a delegator's delegation reward. + cosmos.distribution.v1beta1.Params: + type: object + properties: + community_tax: + type: string + base_proposer_reward: + type: string + description: >- + Deprecated: The base_proposer_reward field is deprecated and is no + longer used + + in the x/distribution module's reward mechanism. + bonus_proposer_reward: + type: string + description: >- + Deprecated: The bonus_proposer_reward field is deprecated and is no + longer used + + in the x/distribution module's reward mechanism. + withdraw_addr_enabled: + type: boolean + description: Params defines the set of params for the distribution module. + cosmos.distribution.v1beta1.QueryCommunityPoolResponse: + type: object + properties: + pool: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + DecCoin defines a token with a denomination and a decimal amount. + + NOTE: The amount field is an Dec which implements the custom method + signatures required by gogoproto. + description: pool defines community pool's coins. + description: >- + QueryCommunityPoolResponse is the response type for the + Query/CommunityPool + + RPC method. + cosmos.distribution.v1beta1.QueryDelegationRewardsResponse: + type: object + properties: + rewards: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + DecCoin defines a token with a denomination and a decimal amount. + + NOTE: The amount field is an Dec which implements the custom method + signatures required by gogoproto. + description: rewards defines the rewards accrued by a delegation. + description: |- + QueryDelegationRewardsResponse is the response type for the + Query/DelegationRewards RPC method. + cosmos.distribution.v1beta1.QueryDelegationTotalRewardsResponse: + type: object + properties: + rewards: + type: array + items: + type: object + properties: + validator_address: + type: string + reward: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + DecCoin defines a token with a denomination and a decimal + amount. + + + NOTE: The amount field is an Dec which implements the custom + method + + signatures required by gogoproto. + description: |- + DelegationDelegatorReward represents the properties + of a delegator's delegation reward. + description: rewards defines all the rewards accrued by a delegator. + total: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + DecCoin defines a token with a denomination and a decimal amount. + + NOTE: The amount field is an Dec which implements the custom method + signatures required by gogoproto. + description: total defines the sum of all the rewards. + description: |- + QueryDelegationTotalRewardsResponse is the response type for the + Query/DelegationTotalRewards RPC method. + cosmos.distribution.v1beta1.QueryDelegatorValidatorsResponse: + type: object + properties: + validators: + type: array + items: + type: string + description: validators defines the validators a delegator is delegating for. + description: |- + QueryDelegatorValidatorsResponse is the response type for the + Query/DelegatorValidators RPC method. + cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressResponse: + type: object + properties: + withdraw_address: + type: string + description: withdraw_address defines the delegator address to query for. + description: |- + QueryDelegatorWithdrawAddressResponse is the response type for the + Query/DelegatorWithdrawAddress RPC method. + cosmos.distribution.v1beta1.QueryParamsResponse: + type: object + properties: + params: + description: params defines the parameters of the module. + type: object + properties: + community_tax: + type: string + base_proposer_reward: + type: string + description: >- + Deprecated: The base_proposer_reward field is deprecated and is no + longer used + + in the x/distribution module's reward mechanism. + bonus_proposer_reward: + type: string + description: >- + Deprecated: The bonus_proposer_reward field is deprecated and is + no longer used + + in the x/distribution module's reward mechanism. + withdraw_addr_enabled: + type: boolean + description: QueryParamsResponse is the response type for the Query/Params RPC method. + cosmos.distribution.v1beta1.QueryValidatorCommissionResponse: + type: object + properties: + commission: + description: commission defines the commission the validator received. + type: object + properties: + commission: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + DecCoin defines a token with a denomination and a decimal + amount. + + + NOTE: The amount field is an Dec which implements the custom + method + + signatures required by gogoproto. + title: |- + QueryValidatorCommissionResponse is the response type for the + Query/ValidatorCommission RPC method + cosmos.distribution.v1beta1.QueryValidatorDistributionInfoResponse: + type: object + properties: + operator_address: + type: string + description: operator_address defines the validator operator address. + self_bond_rewards: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + DecCoin defines a token with a denomination and a decimal amount. + + NOTE: The amount field is an Dec which implements the custom method + signatures required by gogoproto. + description: self_bond_rewards defines the self delegations rewards. + commission: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + DecCoin defines a token with a denomination and a decimal amount. + + NOTE: The amount field is an Dec which implements the custom method + signatures required by gogoproto. + description: commission defines the commission the validator received. + description: >- + QueryValidatorDistributionInfoResponse is the response type for the + Query/ValidatorDistributionInfo RPC method. + cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsResponse: + type: object + properties: + rewards: + type: object + properties: + rewards: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + DecCoin defines a token with a denomination and a decimal + amount. + + + NOTE: The amount field is an Dec which implements the custom + method + + signatures required by gogoproto. + description: >- + ValidatorOutstandingRewards represents outstanding (un-withdrawn) + rewards + + for a validator inexpensive to track, allows simple sanity checks. + description: |- + QueryValidatorOutstandingRewardsResponse is the response type for the + Query/ValidatorOutstandingRewards RPC method. + cosmos.distribution.v1beta1.QueryValidatorSlashesResponse: + type: object + properties: + slashes: + type: array + items: + type: object + properties: + validator_period: + type: string + format: uint64 + fraction: + type: string + description: |- + ValidatorSlashEvent represents a validator slash event. + Height is implicit within the store key. + This is needed to calculate appropriate amount of staking tokens + for delegations which are withdrawn after a slash has occurred. + description: slashes defines the slashes the validator received. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: |- + QueryValidatorSlashesResponse is the response type for the + Query/ValidatorSlashes RPC method. + cosmos.distribution.v1beta1.ValidatorAccumulatedCommission: + type: object + properties: + commission: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + DecCoin defines a token with a denomination and a decimal amount. + + NOTE: The amount field is an Dec which implements the custom method + signatures required by gogoproto. + description: |- + ValidatorAccumulatedCommission represents accumulated commission + for a validator kept as a running counter, can be withdrawn at any time. + cosmos.distribution.v1beta1.ValidatorOutstandingRewards: + type: object + properties: + rewards: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + DecCoin defines a token with a denomination and a decimal amount. + + NOTE: The amount field is an Dec which implements the custom method + signatures required by gogoproto. + description: |- + ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards + for a validator inexpensive to track, allows simple sanity checks. + cosmos.distribution.v1beta1.ValidatorSlashEvent: + type: object + properties: + validator_period: + type: string + format: uint64 + fraction: + type: string + description: |- + ValidatorSlashEvent represents a validator slash event. + Height is implicit within the store key. + This is needed to calculate appropriate amount of staking tokens + for delegations which are withdrawn after a slash has occurred. + cosmos.base.abci.v1beta1.ABCIMessageLog: + type: object + properties: + msg_index: + type: integer + format: int64 + log: + type: string + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + description: >- + Attribute defines an attribute wrapper where the key and value + are + + strings instead of raw bytes. + description: |- + StringEvent defines en Event object wrapper where all the attributes + contain key/value pairs that are strings instead of raw bytes. + description: |- + Events contains a slice of Event objects that were emitted during some + execution. + description: >- + ABCIMessageLog defines a structure containing an indexed tx ABCI message + log. + cosmos.base.abci.v1beta1.Attribute: + type: object + properties: + key: + type: string + value: + type: string + description: |- + Attribute defines an attribute wrapper where the key and value are + strings instead of raw bytes. + cosmos.base.abci.v1beta1.GasInfo: + type: object + properties: + gas_wanted: + type: string + format: uint64 + description: GasWanted is the maximum units of work we allow this tx to perform. + gas_used: + type: string + format: uint64 + description: GasUsed is the amount of gas actually consumed. + description: GasInfo defines tx execution gas context. + cosmos.base.abci.v1beta1.Result: + type: object + properties: + data: + type: string + format: byte + description: >- + Data is any data returned from message or handler execution. It MUST + be + + length prefixed in order to separate data from multiple message + executions. + + Deprecated. This field is still populated, but prefer msg_response + instead + + because it also contains the Msg response typeURL. + log: + type: string + description: Log contains the log information from message or handler execution. + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + index: + type: boolean + description: >- + EventAttribute is a single key-value pair, associated with an + event. + description: >- + Event allows application developers to attach additional information + to + + ResponseFinalizeBlock and ResponseCheckTx. + + Later, transactions may be queried using these events. + description: >- + Events contains a slice of Event objects that were emitted during + message + + or handler execution. + msg_responses: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up + a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: msg_responses contains the Msg handler responses type packed in Anys. + description: Result is the union of ResponseFormat and ResponseCheckTx. + cosmos.base.abci.v1beta1.StringEvent: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + description: |- + Attribute defines an attribute wrapper where the key and value are + strings instead of raw bytes. + description: |- + StringEvent defines en Event object wrapper where all the attributes + contain key/value pairs that are strings instead of raw bytes. + cosmos.base.abci.v1beta1.TxResponse: + type: object + properties: + height: + type: string + format: int64 + title: The block height + txhash: + type: string + description: The transaction hash. + codespace: + type: string + title: Namespace for the Code + code: + type: integer + format: int64 + description: Response code. + data: + type: string + description: Result bytes, if any. + raw_log: + type: string + description: |- + The output of the application's logger (raw string). May be + non-deterministic. + logs: + type: array + items: + type: object + properties: + msg_index: + type: integer + format: int64 + log: + type: string + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + description: >- + Attribute defines an attribute wrapper where the key and + value are + + strings instead of raw bytes. + description: >- + StringEvent defines en Event object wrapper where all the + attributes + + contain key/value pairs that are strings instead of raw bytes. + description: >- + Events contains a slice of Event objects that were emitted + during some + + execution. + description: >- + ABCIMessageLog defines a structure containing an indexed tx ABCI + message log. + description: >- + The output of the application's logger (typed). May be + non-deterministic. + info: + type: string + description: Additional information. May be non-deterministic. + gas_wanted: + type: string + format: int64 + description: Amount of gas requested for transaction. + gas_used: + type: string + format: int64 + description: Amount of gas consumed by transaction. + tx: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + timestamp: + type: string + description: >- + Time of the previous block. For heights > 1, it's the weighted median + of + + the timestamps of the valid votes in the block.LastCommit. For height + == 1, + + it's genesis time. + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + index: + type: boolean + description: >- + EventAttribute is a single key-value pair, associated with an + event. + description: >- + Event allows application developers to attach additional information + to + + ResponseFinalizeBlock and ResponseCheckTx. + + Later, transactions may be queried using these events. + description: >- + Events defines all the events emitted by processing a transaction. + Note, + + these events include those emitted by processing all the messages and + those + + emitted from the ante. Whereas Logs contains the events, with + + additional metadata, emitted only by processing the messages. + description: >- + TxResponse defines a structure containing relevant tx data and metadata. + The + + tags are stringified and the log is JSON decoded. + cosmos.crypto.multisig.v1beta1.CompactBitArray: + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: |- + CompactBitArray is an implementation of a space efficient bit array. + This is used to ensure that the encoded data takes up a minimal amount of + space after proto encoding. + This is not thread safe, and is not intended for concurrent usage. + cosmos.tx.signing.v1beta1.SignMode: + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: |- + SignMode represents a signing mode with its own security guarantees. + + This enum should be considered a registry of all known sign modes + in the Cosmos ecosystem. Apps are not expected to support all known + sign modes. Apps that would like to support custom sign modes are + encouraged to open a small PR against this file to add a new case + to this SignMode enum describing their sign mode so that different + apps have a consistent version of this enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top of the binary representation + from SIGN_MODE_DIRECT. + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not + require signers signing over other signers' `signer_info`. + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + + Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum variant, + but is not implemented on the SDK by default. To enable EIP-191, you need + to pass a custom `TxConfig` that has an implementation of + `SignModeHandler` for EIP-191. The SDK may decide to fully support + EIP-191 in the future. + + Since: cosmos-sdk 0.45.2 + cosmos.tx.v1beta1.AuthInfo: + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the signer and is a + nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: mode is the signing mode of the single signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with its own security + guarantees. + + + This enum should be considered a registry of all known + sign modes + + in the Cosmos ecosystem. Apps are not expected to + support all known + + sign modes. Apps that would like to support custom sign + modes are + + encouraged to open a small PR against this file to add a + new case + + to this SignMode enum describing their sign mode so that + different + + apps have a consistent version of this enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top of the + binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this + sign mode does not + + require signers signing over other signers' + `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is registered as a SignMode + enum variant, + + but is not implemented on the SDK by default. To enable + EIP-191, you need + + to pass a custom `TxConfig` that has an implementation + of + + `SignModeHandler` for EIP-191. The SDK may decide to + fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the multisig are + signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of a space + efficient bit array. + + This is used to ensure that the encoded data takes up a + minimal amount of + + space after proto encoding. + + This is not thread safe, and is not intended for + concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of the signers of + the multisig + + which could include nested multisig public keys + description: >- + ModeInfo describes the signing mode of a single or nested + multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which describes the + + number of committed transactions signed by a given address. It + is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing mode of a single + top-level + + signer. + description: >- + signer_infos defines the signing modes for the required signers. The + number + + and order of elements must match the required signers from TxBody's + + messages. The first element is the primary signer and the one which + pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. The first signer is + the + + primary signer and the one which pays the fee. The fee can be + calculated + + based on the cost of evaluating the body and doing signature + verification + + of the signers. This can be estimated via simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in transaction + processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for paying the fees. If + set, the + + specified account must pay the fees. the payer must be a tx signer + (and + + thus have signed this field in AuthInfo). setting this field does + *not* + + change the ordering of required signers for the transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or the value of the + payer + + field) requests that a fee grant be used to pay fees instead of + the fee + + payer's own balance. If an appropriate fee grant does not exist or + the + + chain does not support fee grants, this will fail + tip: + description: >- + Tip is the optional tip used for transactions fees paid in another + denom. + + + This field is ignored if the chain didn't enable tips, i.e. didn't add + the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: tipper is the address of the account paying for the tip + description: |- + AuthInfo describes the fee and signer modes that are used to sign a + transaction. + cosmos.tx.v1beta1.BroadcastMode: + type: string + enum: + - BROADCAST_MODE_UNSPECIFIED + - BROADCAST_MODE_BLOCK + - BROADCAST_MODE_SYNC + - BROADCAST_MODE_ASYNC + default: BROADCAST_MODE_UNSPECIFIED + description: |- + BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC + method. + + - BROADCAST_MODE_UNSPECIFIED: zero-value for mode ordering + - BROADCAST_MODE_BLOCK: DEPRECATED: use BROADCAST_MODE_SYNC instead, + BROADCAST_MODE_BLOCK is not supported by the SDK from v0.47.x onwards. + - BROADCAST_MODE_SYNC: BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits + for a CheckTx execution response only. + - BROADCAST_MODE_ASYNC: BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client + returns immediately. + cosmos.tx.v1beta1.BroadcastTxRequest: + type: object + properties: + tx_bytes: + type: string + format: byte + description: tx_bytes is the raw transaction. + mode: + type: string + enum: + - BROADCAST_MODE_UNSPECIFIED + - BROADCAST_MODE_BLOCK + - BROADCAST_MODE_SYNC + - BROADCAST_MODE_ASYNC + default: BROADCAST_MODE_UNSPECIFIED + description: >- + BroadcastMode specifies the broadcast mode for the TxService.Broadcast + RPC + + method. + + - BROADCAST_MODE_UNSPECIFIED: zero-value for mode ordering + - BROADCAST_MODE_BLOCK: DEPRECATED: use BROADCAST_MODE_SYNC instead, + BROADCAST_MODE_BLOCK is not supported by the SDK from v0.47.x onwards. + - BROADCAST_MODE_SYNC: BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits + for a CheckTx execution response only. + - BROADCAST_MODE_ASYNC: BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client + returns immediately. + description: |- + BroadcastTxRequest is the request type for the Service.BroadcastTxRequest + RPC method. + cosmos.tx.v1beta1.BroadcastTxResponse: + type: object + properties: + tx_response: + type: object + properties: + height: + type: string + format: int64 + title: The block height + txhash: + type: string + description: The transaction hash. + codespace: + type: string + title: Namespace for the Code + code: + type: integer + format: int64 + description: Response code. + data: + type: string + description: Result bytes, if any. + raw_log: + type: string + description: |- + The output of the application's logger (raw string). May be + non-deterministic. + logs: + type: array + items: + type: object + properties: + msg_index: + type: integer + format: int64 + log: + type: string + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + description: >- + Attribute defines an attribute wrapper where the key + and value are + + strings instead of raw bytes. + description: >- + StringEvent defines en Event object wrapper where all the + attributes + + contain key/value pairs that are strings instead of raw + bytes. + description: >- + Events contains a slice of Event objects that were emitted + during some + + execution. + description: >- + ABCIMessageLog defines a structure containing an indexed tx ABCI + message log. + description: >- + The output of the application's logger (typed). May be + non-deterministic. + info: + type: string + description: Additional information. May be non-deterministic. + gas_wanted: + type: string + format: int64 + description: Amount of gas requested for transaction. + gas_used: + type: string + format: int64 + description: Amount of gas consumed by transaction. + tx: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + timestamp: + type: string + description: >- + Time of the previous block. For heights > 1, it's the weighted + median of + + the timestamps of the valid votes in the block.LastCommit. For + height == 1, + + it's genesis time. + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + index: + type: boolean + description: >- + EventAttribute is a single key-value pair, associated with + an event. + description: >- + Event allows application developers to attach additional + information to + + ResponseFinalizeBlock and ResponseCheckTx. + + Later, transactions may be queried using these events. + description: >- + Events defines all the events emitted by processing a transaction. + Note, + + these events include those emitted by processing all the messages + and those + + emitted from the ante. Whereas Logs contains the events, with + + additional metadata, emitted only by processing the messages. + description: >- + TxResponse defines a structure containing relevant tx data and + metadata. The + + tags are stringified and the log is JSON decoded. + description: |- + BroadcastTxResponse is the response type for the + Service.BroadcastTx method. + cosmos.tx.v1beta1.Fee: + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in transaction + processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for paying the fees. If set, + the + + specified account must pay the fees. the payer must be a tx signer + (and + + thus have signed this field in AuthInfo). setting this field does + *not* + + change the ordering of required signers for the transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or the value of the + payer + + field) requests that a fee grant be used to pay fees instead of the + fee + + payer's own balance. If an appropriate fee grant does not exist or the + + chain does not support fee grants, this will fail + description: >- + Fee includes the amount of coins paid in fees and the maximum + + gas to be used by the transaction. The ratio yields an effective + "gasprice", + + which must be above some miminum to be accepted into the mempool. + cosmos.tx.v1beta1.GetBlockWithTxsResponse: + type: object + properties: + txs: + type: array + items: + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The required + signers of + + those messages define the number and order of elements in + AuthInfo's + + signer_infos and Tx's signatures. Each required signer + address is added to + + the list only the first time it occurs. + + By convention, the first required signer (usually from the + first message) + + is referred to as the primary signer and pays the fee for + the whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to the + transaction. + + WARNING: in clients, any publicly exposed text should not be + called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this + transaction will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the transaction + signer(s) + + intend for the transaction to be evaluated and executed in + an un-ordered + + fashion. Specifically, the account's nonce will NOT be + checked or + + incremented, which allows for fire-and-forget as well as + concurrent + + transaction execution. + + + Note, when set to true, the existing 'timeout_timestamp' + value must + + be set and will be used to correspond to a timestamp in + which the transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any transaction + with unordered=true and a non-zero sequence value will + + be rejected. + + External services that make assumptions about sequence + values may need to be updated because of this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this + transaction will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the transaction + is deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these + are present + + and can't be handled, the transaction will be rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these + are present + + and can't be handled, they will be ignored + description: TxBody is the body of a transaction that all signers sign over. + auth_info: + title: >- + auth_info is the authorization related content of the + transaction, + + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain + at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should + be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions + as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the signer and + is a nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: mode is the signing mode of the single signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with its + own security guarantees. + + + This enum should be considered a registry of + all known sign modes + + in the Cosmos ecosystem. Apps are not expected + to support all known + + sign modes. Apps that would like to support + custom sign modes are + + encouraged to open a small PR against this + file to add a new case + + to this SignMode enum describing their sign + mode so that different + + apps have a consistent version of this enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top + of the binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to + SIGN_MODE_DIRECT, this sign mode does not + + require signers signing over other signers' + `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: + https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is registered as + a SignMode enum variant, + + but is not implemented on the SDK by default. + To enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK may + decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the + multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of a + space efficient bit array. + + This is used to ensure that the encoded data + takes up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not intended + for concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of the + signers of the multisig + + which could include nested multisig public + keys + description: >- + ModeInfo describes the signing mode of a single or + nested multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which + describes the + + number of committed transactions signed by a given + address. It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing mode of a + single top-level + + signer. + description: >- + signer_infos defines the signing modes for the required + signers. The number + + and order of elements must match the required signers from + TxBody's + + messages. The first element is the primary signer and the + one which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. The first + signer is the + + primary signer and the one which pays the fee. The fee can + be calculated + + based on the cost of evaluating the body and doing signature + verification + + of the signers. This can be estimated via simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in + transaction processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for paying the + fees. If set, the + + specified account must pay the fees. the payer must be a + tx signer (and + + thus have signed this field in AuthInfo). setting this + field does *not* + + change the ordering of required signers for the + transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or the + value of the payer + + field) requests that a fee grant be used to pay fees + instead of the fee + + payer's own balance. If an appropriate fee grant does + not exist or the + + chain does not support fee grants, this will fail + tip: + description: >- + Tip is the optional tip used for transactions fees paid in + another denom. + + + This field is ignored if the chain didn't enable tips, i.e. + didn't add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: tipper is the address of the account paying for the tip + description: >- + AuthInfo describes the fee and signer modes that are used to + sign a + + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the length and + order of + + AuthInfo's signer_infos to allow connecting signature meta + information like + + public key and signing mode by position. + description: Tx is the standard type used for broadcasting transactions. + description: txs are the transactions in the block. + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + block: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block + in the blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing on the + order first. + + This means that block.AppHash does not include these txs. + title: Data contains the set of transactions included in the block + evidence: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if + they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if + they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a validator + signed two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules + for processing a block in the + blockchain, + + including all blockchain data structures + and the rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: >- + hashes from the app output from the prev + block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: >- + Header defines the structure of a block + header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included + in a Commit. + description: >- + Commit contains the evidence that a block + was committed by a set of validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use + with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a set of + validators attempting to mislead a light client. + last_commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: BlockIdFlag indicates which BlockID the signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: CommitSig is a part of the Vote included in a Commit. + description: >- + Commit contains the evidence that a block was committed by a set + of validators. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + GetBlockWithTxsResponse is the response type for the + Service.GetBlockWithTxs + + method. + cosmos.tx.v1beta1.GetTxResponse: + type: object + properties: + tx: + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The required + signers of + + those messages define the number and order of elements in + AuthInfo's + + signer_infos and Tx's signatures. Each required signer address + is added to + + the list only the first time it occurs. + + By convention, the first required signer (usually from the + first message) + + is referred to as the primary signer and pays the fee for the + whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to the + transaction. + + WARNING: in clients, any publicly exposed text should not be + called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this + transaction will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the transaction + signer(s) + + intend for the transaction to be evaluated and executed in an + un-ordered + + fashion. Specifically, the account's nonce will NOT be checked + or + + incremented, which allows for fire-and-forget as well as + concurrent + + transaction execution. + + + Note, when set to true, the existing 'timeout_timestamp' value + must + + be set and will be used to correspond to a timestamp in which + the transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any transaction + with unordered=true and a non-zero sequence value will + + be rejected. + + External services that make assumptions about sequence values + may need to be updated because of this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this + transaction will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the transaction is + deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these + are present + + and can't be handled, the transaction will be rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these + are present + + and can't be handled, they will be ignored + description: TxBody is the body of a transaction that all signers sign over. + auth_info: + title: |- + auth_info is the authorization related content of the transaction, + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the signer and + is a nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: mode is the signing mode of the single signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with its own + security guarantees. + + + This enum should be considered a registry of all + known sign modes + + in the Cosmos ecosystem. Apps are not expected + to support all known + + sign modes. Apps that would like to support + custom sign modes are + + encouraged to open a small PR against this file + to add a new case + + to this SignMode enum describing their sign mode + so that different + + apps have a consistent version of this enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top of + the binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to + SIGN_MODE_DIRECT, this sign mode does not + + require signers signing over other signers' + `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is registered as a + SignMode enum variant, + + but is not implemented on the SDK by default. To + enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK may + decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the + multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of a space + efficient bit array. + + This is used to ensure that the encoded data + takes up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not intended for + concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of the + signers of the multisig + + which could include nested multisig public keys + description: >- + ModeInfo describes the signing mode of a single or + nested multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which describes + the + + number of committed transactions signed by a given + address. It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing mode of a + single top-level + + signer. + description: >- + signer_infos defines the signing modes for the required + signers. The number + + and order of elements must match the required signers from + TxBody's + + messages. The first element is the primary signer and the one + which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. The first + signer is the + + primary signer and the one which pays the fee. The fee can be + calculated + + based on the cost of evaluating the body and doing signature + verification + + of the signers. This can be estimated via simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in + transaction processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for paying the + fees. If set, the + + specified account must pay the fees. the payer must be a + tx signer (and + + thus have signed this field in AuthInfo). setting this + field does *not* + + change the ordering of required signers for the + transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or the + value of the payer + + field) requests that a fee grant be used to pay fees + instead of the fee + + payer's own balance. If an appropriate fee grant does not + exist or the + + chain does not support fee grants, this will fail + tip: + description: >- + Tip is the optional tip used for transactions fees paid in + another denom. + + + This field is ignored if the chain didn't enable tips, i.e. + didn't add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: tipper is the address of the account paying for the tip + description: >- + AuthInfo describes the fee and signer modes that are used to sign + a + + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the length and + order of + + AuthInfo's signer_infos to allow connecting signature meta + information like + + public key and signing mode by position. + description: Tx is the standard type used for broadcasting transactions. + tx_response: + type: object + properties: + height: + type: string + format: int64 + title: The block height + txhash: + type: string + description: The transaction hash. + codespace: + type: string + title: Namespace for the Code + code: + type: integer + format: int64 + description: Response code. + data: + type: string + description: Result bytes, if any. + raw_log: + type: string + description: |- + The output of the application's logger (raw string). May be + non-deterministic. + logs: + type: array + items: + type: object + properties: + msg_index: + type: integer + format: int64 + log: + type: string + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + description: >- + Attribute defines an attribute wrapper where the key + and value are + + strings instead of raw bytes. + description: >- + StringEvent defines en Event object wrapper where all the + attributes + + contain key/value pairs that are strings instead of raw + bytes. + description: >- + Events contains a slice of Event objects that were emitted + during some + + execution. + description: >- + ABCIMessageLog defines a structure containing an indexed tx ABCI + message log. + description: >- + The output of the application's logger (typed). May be + non-deterministic. + info: + type: string + description: Additional information. May be non-deterministic. + gas_wanted: + type: string + format: int64 + description: Amount of gas requested for transaction. + gas_used: + type: string + format: int64 + description: Amount of gas consumed by transaction. + tx: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + timestamp: + type: string + description: >- + Time of the previous block. For heights > 1, it's the weighted + median of + + the timestamps of the valid votes in the block.LastCommit. For + height == 1, + + it's genesis time. + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + index: + type: boolean + description: >- + EventAttribute is a single key-value pair, associated with + an event. + description: >- + Event allows application developers to attach additional + information to + + ResponseFinalizeBlock and ResponseCheckTx. + + Later, transactions may be queried using these events. + description: >- + Events defines all the events emitted by processing a transaction. + Note, + + these events include those emitted by processing all the messages + and those + + emitted from the ante. Whereas Logs contains the events, with + + additional metadata, emitted only by processing the messages. + description: >- + TxResponse defines a structure containing relevant tx data and + metadata. The + + tags are stringified and the log is JSON decoded. + description: GetTxResponse is the response type for the Service.GetTx method. + cosmos.tx.v1beta1.GetTxsEventResponse: + type: object + properties: + txs: + type: array + items: + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The required + signers of + + those messages define the number and order of elements in + AuthInfo's + + signer_infos and Tx's signatures. Each required signer + address is added to + + the list only the first time it occurs. + + By convention, the first required signer (usually from the + first message) + + is referred to as the primary signer and pays the fee for + the whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to the + transaction. + + WARNING: in clients, any publicly exposed text should not be + called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this + transaction will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the transaction + signer(s) + + intend for the transaction to be evaluated and executed in + an un-ordered + + fashion. Specifically, the account's nonce will NOT be + checked or + + incremented, which allows for fire-and-forget as well as + concurrent + + transaction execution. + + + Note, when set to true, the existing 'timeout_timestamp' + value must + + be set and will be used to correspond to a timestamp in + which the transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any transaction + with unordered=true and a non-zero sequence value will + + be rejected. + + External services that make assumptions about sequence + values may need to be updated because of this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this + transaction will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the transaction + is deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these + are present + + and can't be handled, the transaction will be rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type + of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these + are present + + and can't be handled, they will be ignored + description: TxBody is the body of a transaction that all signers sign over. + auth_info: + title: >- + auth_info is the authorization related content of the + transaction, + + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain + at least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should + be in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, + for URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions + as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently + available in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods + of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL + and the unpack + + methods only use the fully qualified type name after + the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the signer and + is a nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: mode is the signing mode of the single signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with its + own security guarantees. + + + This enum should be considered a registry of + all known sign modes + + in the Cosmos ecosystem. Apps are not expected + to support all known + + sign modes. Apps that would like to support + custom sign modes are + + encouraged to open a small PR against this + file to add a new case + + to this SignMode enum describing their sign + mode so that different + + apps have a consistent version of this enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top + of the binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to + SIGN_MODE_DIRECT, this sign mode does not + + require signers signing over other signers' + `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: + https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is registered as + a SignMode enum variant, + + but is not implemented on the SDK by default. + To enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK may + decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the + multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of a + space efficient bit array. + + This is used to ensure that the encoded data + takes up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not intended + for concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of the + signers of the multisig + + which could include nested multisig public + keys + description: >- + ModeInfo describes the signing mode of a single or + nested multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which + describes the + + number of committed transactions signed by a given + address. It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing mode of a + single top-level + + signer. + description: >- + signer_infos defines the signing modes for the required + signers. The number + + and order of elements must match the required signers from + TxBody's + + messages. The first element is the primary signer and the + one which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. The first + signer is the + + primary signer and the one which pays the fee. The fee can + be calculated + + based on the cost of evaluating the body and doing signature + verification + + of the signers. This can be estimated via simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in + transaction processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for paying the + fees. If set, the + + specified account must pay the fees. the payer must be a + tx signer (and + + thus have signed this field in AuthInfo). setting this + field does *not* + + change the ordering of required signers for the + transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or the + value of the payer + + field) requests that a fee grant be used to pay fees + instead of the fee + + payer's own balance. If an appropriate fee grant does + not exist or the + + chain does not support fee grants, this will fail + tip: + description: >- + Tip is the optional tip used for transactions fees paid in + another denom. + + + This field is ignored if the chain didn't enable tips, i.e. + didn't add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an + amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: tipper is the address of the account paying for the tip + description: >- + AuthInfo describes the fee and signer modes that are used to + sign a + + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the length and + order of + + AuthInfo's signer_infos to allow connecting signature meta + information like + + public key and signing mode by position. + description: Tx is the standard type used for broadcasting transactions. + description: txs is the list of queried transactions. + tx_responses: + type: array + items: + type: object + properties: + height: + type: string + format: int64 + title: The block height + txhash: + type: string + description: The transaction hash. + codespace: + type: string + title: Namespace for the Code + code: + type: integer + format: int64 + description: Response code. + data: + type: string + description: Result bytes, if any. + raw_log: + type: string + description: |- + The output of the application's logger (raw string). May be + non-deterministic. + logs: + type: array + items: + type: object + properties: + msg_index: + type: integer + format: int64 + log: + type: string + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + description: >- + Attribute defines an attribute wrapper where the + key and value are + + strings instead of raw bytes. + description: >- + StringEvent defines en Event object wrapper where all + the attributes + + contain key/value pairs that are strings instead of raw + bytes. + description: >- + Events contains a slice of Event objects that were emitted + during some + + execution. + description: >- + ABCIMessageLog defines a structure containing an indexed tx + ABCI message log. + description: >- + The output of the application's logger (typed). May be + non-deterministic. + info: + type: string + description: Additional information. May be non-deterministic. + gas_wanted: + type: string + format: int64 + description: Amount of gas requested for transaction. + gas_used: + type: string + format: int64 + description: Amount of gas consumed by transaction. + tx: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + timestamp: + type: string + description: >- + Time of the previous block. For heights > 1, it's the weighted + median of + + the timestamps of the valid votes in the block.LastCommit. For + height == 1, + + it's genesis time. + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + index: + type: boolean + description: >- + EventAttribute is a single key-value pair, associated + with an event. + description: >- + Event allows application developers to attach additional + information to + + ResponseFinalizeBlock and ResponseCheckTx. + + Later, transactions may be queried using these events. + description: >- + Events defines all the events emitted by processing a + transaction. Note, + + these events include those emitted by processing all the + messages and those + + emitted from the ante. Whereas Logs contains the events, with + + additional metadata, emitted only by processing the messages. + description: >- + TxResponse defines a structure containing relevant tx data and + metadata. The + + tags are stringified and the log is JSON decoded. + description: tx_responses is the list of queried TxResponses. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + total: + type: string + format: uint64 + title: total is total number of results available + description: |- + GetTxsEventResponse is the response type for the Service.TxsByEvents + RPC method. + cosmos.tx.v1beta1.ModeInfo: + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: mode is the signing mode of the single signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with its own security + guarantees. + + + This enum should be considered a registry of all known sign modes + + in the Cosmos ecosystem. Apps are not expected to support all + known + + sign modes. Apps that would like to support custom sign modes are + + encouraged to open a small PR against this file to add a new case + + to this SignMode enum describing their sign mode so that different + + apps have a consistent version of this enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top of the binary + representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode + does not + + require signers signing over other signers' `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum + variant, + + but is not implemented on the SDK by default. To enable EIP-191, + you need + + to pass a custom `TxConfig` that has an implementation of + + `SignModeHandler` for EIP-191. The SDK may decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: bitarray specifies which keys within the multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of a space efficient bit + array. + + This is used to ensure that the encoded data takes up a minimal + amount of + + space after proto encoding. + + This is not thread safe, and is not intended for concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of the signers of the + multisig + + which could include nested multisig public keys + description: ModeInfo describes the signing mode of a single or nested multisig signer. + cosmos.tx.v1beta1.ModeInfo.Multi: + type: object + properties: + bitarray: + title: bitarray specifies which keys within the multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of a space efficient bit array. + + This is used to ensure that the encoded data takes up a minimal amount + of + + space after proto encoding. + + This is not thread safe, and is not intended for concurrent usage. + mode_infos: + type: array + items: {} + title: |- + mode_infos is the corresponding modes of the signers of the multisig + which could include nested multisig public keys + title: Multi is the mode info for a multisig public key + cosmos.tx.v1beta1.ModeInfo.Single: + type: object + properties: + mode: + title: mode is the signing mode of the single signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with its own security guarantees. + + + This enum should be considered a registry of all known sign modes + + in the Cosmos ecosystem. Apps are not expected to support all known + + sign modes. Apps that would like to support custom sign modes are + + encouraged to open a small PR against this file to add a new case + + to this SignMode enum describing their sign mode so that different + + apps have a consistent version of this enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top of the binary + representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does + not + + require signers signing over other signers' `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum variant, + + but is not implemented on the SDK by default. To enable EIP-191, you + need + + to pass a custom `TxConfig` that has an implementation of + + `SignModeHandler` for EIP-191. The SDK may decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + title: |- + Single is the mode info for a single signer. It is structured as a message + to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the + future + cosmos.tx.v1beta1.OrderBy: + type: string + enum: + - ORDER_BY_UNSPECIFIED + - ORDER_BY_ASC + - ORDER_BY_DESC + default: ORDER_BY_UNSPECIFIED + description: >- + - ORDER_BY_UNSPECIFIED: ORDER_BY_UNSPECIFIED specifies an unknown sorting + order. OrderBy defaults + + to ASC in this case. + - ORDER_BY_ASC: ORDER_BY_ASC defines ascending order + - ORDER_BY_DESC: ORDER_BY_DESC defines descending order + title: OrderBy defines the sorting order + cosmos.tx.v1beta1.SignerInfo: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: |- + mode_info describes the signing mode of the signer and is a nested + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: mode is the signing mode of the single signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with its own security + guarantees. + + + This enum should be considered a registry of all known sign + modes + + in the Cosmos ecosystem. Apps are not expected to support all + known + + sign modes. Apps that would like to support custom sign modes + are + + encouraged to open a small PR against this file to add a new + case + + to this SignMode enum describing their sign mode so that + different + + apps have a consistent version of this enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top of the binary + representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign + mode does not + + require signers signing over other signers' `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum + variant, + + but is not implemented on the SDK by default. To enable + EIP-191, you need + + to pass a custom `TxConfig` that has an implementation of + + `SignModeHandler` for EIP-191. The SDK may decide to fully + support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: bitarray specifies which keys within the multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of a space efficient bit + array. + + This is used to ensure that the encoded data takes up a + minimal amount of + + space after proto encoding. + + This is not thread safe, and is not intended for concurrent + usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of the signers of the + multisig + + which could include nested multisig public keys + description: >- + ModeInfo describes the signing mode of a single or nested multisig + signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which describes the + + number of committed transactions signed by a given address. It is used + to + + prevent replay attacks. + description: |- + SignerInfo describes the public key and signing mode of a single top-level + signer. + cosmos.tx.v1beta1.SimulateRequest: + type: object + properties: + tx: + description: |- + tx is the transaction to simulate. + Deprecated. Send raw tx bytes instead. + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The required + signers of + + those messages define the number and order of elements in + AuthInfo's + + signer_infos and Tx's signatures. Each required signer address + is added to + + the list only the first time it occurs. + + By convention, the first required signer (usually from the + first message) + + is referred to as the primary signer and pays the fee for the + whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to the + transaction. + + WARNING: in clients, any publicly exposed text should not be + called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this + transaction will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the transaction + signer(s) + + intend for the transaction to be evaluated and executed in an + un-ordered + + fashion. Specifically, the account's nonce will NOT be checked + or + + incremented, which allows for fire-and-forget as well as + concurrent + + transaction execution. + + + Note, when set to true, the existing 'timeout_timestamp' value + must + + be set and will be used to correspond to a timestamp in which + the transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any transaction + with unordered=true and a non-zero sequence value will + + be rejected. + + External services that make assumptions about sequence values + may need to be updated because of this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this + transaction will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the transaction is + deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these + are present + + and can't be handled, the transaction will be rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these + are present + + and can't be handled, they will be ignored + description: TxBody is the body of a transaction that all signers sign over. + auth_info: + title: |- + auth_info is the authorization related content of the transaction, + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the signer and + is a nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: mode is the signing mode of the single signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with its own + security guarantees. + + + This enum should be considered a registry of all + known sign modes + + in the Cosmos ecosystem. Apps are not expected + to support all known + + sign modes. Apps that would like to support + custom sign modes are + + encouraged to open a small PR against this file + to add a new case + + to this SignMode enum describing their sign mode + so that different + + apps have a consistent version of this enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top of + the binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to + SIGN_MODE_DIRECT, this sign mode does not + + require signers signing over other signers' + `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is registered as a + SignMode enum variant, + + but is not implemented on the SDK by default. To + enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK may + decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the + multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of a space + efficient bit array. + + This is used to ensure that the encoded data + takes up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not intended for + concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of the + signers of the multisig + + which could include nested multisig public keys + description: >- + ModeInfo describes the signing mode of a single or + nested multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which describes + the + + number of committed transactions signed by a given + address. It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing mode of a + single top-level + + signer. + description: >- + signer_infos defines the signing modes for the required + signers. The number + + and order of elements must match the required signers from + TxBody's + + messages. The first element is the primary signer and the one + which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. The first + signer is the + + primary signer and the one which pays the fee. The fee can be + calculated + + based on the cost of evaluating the body and doing signature + verification + + of the signers. This can be estimated via simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in + transaction processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for paying the + fees. If set, the + + specified account must pay the fees. the payer must be a + tx signer (and + + thus have signed this field in AuthInfo). setting this + field does *not* + + change the ordering of required signers for the + transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or the + value of the payer + + field) requests that a fee grant be used to pay fees + instead of the fee + + payer's own balance. If an appropriate fee grant does not + exist or the + + chain does not support fee grants, this will fail + tip: + description: >- + Tip is the optional tip used for transactions fees paid in + another denom. + + + This field is ignored if the chain didn't enable tips, i.e. + didn't add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: tipper is the address of the account paying for the tip + description: >- + AuthInfo describes the fee and signer modes that are used to sign + a + + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the length and + order of + + AuthInfo's signer_infos to allow connecting signature meta + information like + + public key and signing mode by position. + tx_bytes: + type: string + format: byte + description: tx_bytes is the raw transaction. + description: |- + SimulateRequest is the request type for the Service.Simulate + RPC method. + cosmos.tx.v1beta1.SimulateResponse: + type: object + properties: + gas_info: + description: gas_info is the information about gas used in the simulation. + type: object + properties: + gas_wanted: + type: string + format: uint64 + description: >- + GasWanted is the maximum units of work we allow this tx to + perform. + gas_used: + type: string + format: uint64 + description: GasUsed is the amount of gas actually consumed. + result: + description: result is the result of the simulation. + type: object + properties: + data: + type: string + format: byte + description: >- + Data is any data returned from message or handler execution. It + MUST be + + length prefixed in order to separate data from multiple message + executions. + + Deprecated. This field is still populated, but prefer msg_response + instead + + because it also contains the Msg response typeURL. + log: + type: string + description: >- + Log contains the log information from message or handler + execution. + events: + type: array + items: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + index: + type: boolean + description: >- + EventAttribute is a single key-value pair, associated with + an event. + description: >- + Event allows application developers to attach additional + information to + + ResponseFinalizeBlock and ResponseCheckTx. + + Later, transactions may be queried using these events. + description: >- + Events contains a slice of Event objects that were emitted during + message + + or handler execution. + msg_responses: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + msg_responses contains the Msg handler responses type packed in + Anys. + description: |- + SimulateResponse is the response type for the + Service.SimulateRPC method. + cosmos.tx.v1beta1.Tip: + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: tipper is the address of the account paying for the tip + description: Tip is the tip used for meta-transactions. + cosmos.tx.v1beta1.Tx: + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The required + signers of + + those messages define the number and order of elements in + AuthInfo's + + signer_infos and Tx's signatures. Each required signer address is + added to + + the list only the first time it occurs. + + By convention, the first required signer (usually from the first + message) + + is referred to as the primary signer and pays the fee for the + whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to the transaction. + + WARNING: in clients, any publicly exposed text should not be + called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this transaction + will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the transaction + signer(s) + + intend for the transaction to be evaluated and executed in an + un-ordered + + fashion. Specifically, the account's nonce will NOT be checked or + + incremented, which allows for fire-and-forget as well as + concurrent + + transaction execution. + + + Note, when set to true, the existing 'timeout_timestamp' value + must + + be set and will be used to correspond to a timestamp in which the + transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any transaction with + unordered=true and a non-zero sequence value will + + be rejected. + + External services that make assumptions about sequence values may + need to be updated because of this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this transaction + will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the transaction is + deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these are + present + + and can't be handled, the transaction will be rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these are + present + + and can't be handled, they will be ignored + description: TxBody is the body of a transaction that all signers sign over. + auth_info: + title: |- + auth_info is the authorization related content of the transaction, + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the signer and is a + nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: mode is the signing mode of the single signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with its own + security guarantees. + + + This enum should be considered a registry of all + known sign modes + + in the Cosmos ecosystem. Apps are not expected to + support all known + + sign modes. Apps that would like to support custom + sign modes are + + encouraged to open a small PR against this file to + add a new case + + to this SignMode enum describing their sign mode so + that different + + apps have a consistent version of this enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top of the + binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, + this sign mode does not + + require signers signing over other signers' + `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is registered as a + SignMode enum variant, + + but is not implemented on the SDK by default. To + enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK may decide to + fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the multisig + are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of a space + efficient bit array. + + This is used to ensure that the encoded data takes + up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not intended for + concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of the signers + of the multisig + + which could include nested multisig public keys + description: >- + ModeInfo describes the signing mode of a single or nested + multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which describes the + + number of committed transactions signed by a given address. + It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing mode of a single + top-level + + signer. + description: >- + signer_infos defines the signing modes for the required signers. + The number + + and order of elements must match the required signers from + TxBody's + + messages. The first element is the primary signer and the one + which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. The first signer + is the + + primary signer and the one which pays the fee. The fee can be + calculated + + based on the cost of evaluating the body and doing signature + verification + + of the signers. This can be estimated via simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in transaction + processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for paying the fees. + If set, the + + specified account must pay the fees. the payer must be a tx + signer (and + + thus have signed this field in AuthInfo). setting this field + does *not* + + change the ordering of required signers for the transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or the value of + the payer + + field) requests that a fee grant be used to pay fees instead + of the fee + + payer's own balance. If an appropriate fee grant does not + exist or the + + chain does not support fee grants, this will fail + tip: + description: >- + Tip is the optional tip used for transactions fees paid in another + denom. + + + This field is ignored if the chain didn't enable tips, i.e. didn't + add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: tipper is the address of the account paying for the tip + description: |- + AuthInfo describes the fee and signer modes that are used to sign a + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the length and order + of + + AuthInfo's signer_infos to allow connecting signature meta information + like + + public key and signing mode by position. + description: Tx is the standard type used for broadcasting transactions. + cosmos.tx.v1beta1.TxBody: + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up + a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The required signers of + + those messages define the number and order of elements in AuthInfo's + + signer_infos and Tx's signatures. Each required signer address is + added to + + the list only the first time it occurs. + + By convention, the first required signer (usually from the first + message) + + is referred to as the primary signer and pays the fee for the whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to the transaction. + + WARNING: in clients, any publicly exposed text should not be called + memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this transaction will + not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the transaction signer(s) + + intend for the transaction to be evaluated and executed in an + un-ordered + + fashion. Specifically, the account's nonce will NOT be checked or + + incremented, which allows for fire-and-forget as well as concurrent + + transaction execution. + + + Note, when set to true, the existing 'timeout_timestamp' value must + + be set and will be used to correspond to a timestamp in which the + transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any transaction with + unordered=true and a non-zero sequence value will + + be rejected. + + External services that make assumptions about sequence values may need + to be updated because of this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this transaction will + not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the transaction is deemed + valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up + a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by chains + + when the default options are not sufficient. If any of these are + present + + and can't be handled, the transaction will be rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up + a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by chains + + when the default options are not sufficient. If any of these are + present + + and can't be handled, they will be ignored + description: TxBody is the body of a transaction that all signers sign over. + cosmos.tx.v1beta1.TxDecodeAminoRequest: + type: object + properties: + amino_binary: + type: string + format: byte + description: |- + TxDecodeAminoRequest is the request type for the Service.TxDecodeAmino + RPC method. + cosmos.tx.v1beta1.TxDecodeAminoResponse: + type: object + properties: + amino_json: + type: string + description: |- + TxDecodeAminoResponse is the response type for the Service.TxDecodeAmino + RPC method. + cosmos.tx.v1beta1.TxDecodeRequest: + type: object + properties: + tx_bytes: + type: string + format: byte + description: tx_bytes is the raw transaction. + description: |- + TxDecodeRequest is the request type for the Service.TxDecode + RPC method. + cosmos.tx.v1beta1.TxDecodeResponse: + type: object + properties: + tx: + description: tx is the decoded transaction. + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The required + signers of + + those messages define the number and order of elements in + AuthInfo's + + signer_infos and Tx's signatures. Each required signer address + is added to + + the list only the first time it occurs. + + By convention, the first required signer (usually from the + first message) + + is referred to as the primary signer and pays the fee for the + whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to the + transaction. + + WARNING: in clients, any publicly exposed text should not be + called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this + transaction will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the transaction + signer(s) + + intend for the transaction to be evaluated and executed in an + un-ordered + + fashion. Specifically, the account's nonce will NOT be checked + or + + incremented, which allows for fire-and-forget as well as + concurrent + + transaction execution. + + + Note, when set to true, the existing 'timeout_timestamp' value + must + + be set and will be used to correspond to a timestamp in which + the transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any transaction + with unordered=true and a non-zero sequence value will + + be rejected. + + External services that make assumptions about sequence values + may need to be updated because of this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this + transaction will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the transaction is + deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these + are present + + and can't be handled, the transaction will be rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these + are present + + and can't be handled, they will be ignored + description: TxBody is the body of a transaction that all signers sign over. + auth_info: + title: |- + auth_info is the authorization related content of the transaction, + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the signer and + is a nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: mode is the signing mode of the single signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with its own + security guarantees. + + + This enum should be considered a registry of all + known sign modes + + in the Cosmos ecosystem. Apps are not expected + to support all known + + sign modes. Apps that would like to support + custom sign modes are + + encouraged to open a small PR against this file + to add a new case + + to this SignMode enum describing their sign mode + so that different + + apps have a consistent version of this enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top of + the binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to + SIGN_MODE_DIRECT, this sign mode does not + + require signers signing over other signers' + `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is registered as a + SignMode enum variant, + + but is not implemented on the SDK by default. To + enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK may + decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the + multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of a space + efficient bit array. + + This is used to ensure that the encoded data + takes up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not intended for + concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of the + signers of the multisig + + which could include nested multisig public keys + description: >- + ModeInfo describes the signing mode of a single or + nested multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which describes + the + + number of committed transactions signed by a given + address. It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing mode of a + single top-level + + signer. + description: >- + signer_infos defines the signing modes for the required + signers. The number + + and order of elements must match the required signers from + TxBody's + + messages. The first element is the primary signer and the one + which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. The first + signer is the + + primary signer and the one which pays the fee. The fee can be + calculated + + based on the cost of evaluating the body and doing signature + verification + + of the signers. This can be estimated via simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in + transaction processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for paying the + fees. If set, the + + specified account must pay the fees. the payer must be a + tx signer (and + + thus have signed this field in AuthInfo). setting this + field does *not* + + change the ordering of required signers for the + transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or the + value of the payer + + field) requests that a fee grant be used to pay fees + instead of the fee + + payer's own balance. If an appropriate fee grant does not + exist or the + + chain does not support fee grants, this will fail + tip: + description: >- + Tip is the optional tip used for transactions fees paid in + another denom. + + + This field is ignored if the chain didn't enable tips, i.e. + didn't add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: tipper is the address of the account paying for the tip + description: >- + AuthInfo describes the fee and signer modes that are used to sign + a + + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the length and + order of + + AuthInfo's signer_infos to allow connecting signature meta + information like + + public key and signing mode by position. + description: |- + TxDecodeResponse is the response type for the + Service.TxDecode method. + cosmos.tx.v1beta1.TxEncodeAminoRequest: + type: object + properties: + amino_json: + type: string + description: |- + TxEncodeAminoRequest is the request type for the Service.TxEncodeAmino + RPC method. + cosmos.tx.v1beta1.TxEncodeAminoResponse: + type: object + properties: + amino_binary: + type: string + format: byte + description: |- + TxEncodeAminoResponse is the response type for the Service.TxEncodeAmino + RPC method. + cosmos.tx.v1beta1.TxEncodeRequest: + type: object + properties: + tx: + description: tx is the transaction to encode. + type: object + properties: + body: + title: body is the processable content of the transaction + type: object + properties: + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of messages to be executed. The required + signers of + + those messages define the number and order of elements in + AuthInfo's + + signer_infos and Tx's signatures. Each required signer address + is added to + + the list only the first time it occurs. + + By convention, the first required signer (usually from the + first message) + + is referred to as the primary signer and pays the fee for the + whole + + transaction. + memo: + type: string + description: >- + memo is any arbitrary note/comment to be added to the + transaction. + + WARNING: in clients, any publicly exposed text should not be + called memo, + + but should be called `note` instead (see + + https://github.com/cosmos/cosmos-sdk/issues/9122). + timeout_height: + type: string + format: uint64 + description: >- + timeout_height is the block height after which this + transaction will not + + be processed by the chain. + unordered: + type: boolean + description: >- + unordered, when set to true, indicates that the transaction + signer(s) + + intend for the transaction to be evaluated and executed in an + un-ordered + + fashion. Specifically, the account's nonce will NOT be checked + or + + incremented, which allows for fire-and-forget as well as + concurrent + + transaction execution. + + + Note, when set to true, the existing 'timeout_timestamp' value + must + + be set and will be used to correspond to a timestamp in which + the transaction is deemed + + valid. + + + When true, the sequence value MUST be 0, and any transaction + with unordered=true and a non-zero sequence value will + + be rejected. + + External services that make assumptions about sequence values + may need to be updated because of this. + timeout_timestamp: + type: string + format: date-time + description: >- + timeout_timestamp is the block time after which this + transaction will not + + be processed by the chain. + + + Note, if unordered=true this value MUST be set + + and will act as a short-lived TTL in which the transaction is + deemed valid + + and kept in memory to prevent duplicates. + extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these + are present + + and can't be handled, the transaction will be rejected + non_critical_extension_options: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: >- + extension_options are arbitrary options that can be added by + chains + + when the default options are not sufficient. If any of these + are present + + and can't be handled, they will be ignored + description: TxBody is the body of a transaction that all signers sign over. + auth_info: + title: |- + auth_info is the authorization related content of the transaction, + specifically signers, signer modes and fee + type: object + properties: + signer_infos: + type: array + items: + type: object + properties: + public_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the + type of the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's + path must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be + in a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the + binary all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can + optionally set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results + based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available + in the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no + widely used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty + scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the + above specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any + values in the form + + of utility functions or additional generated methods of + the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and + the unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will + yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the + regular + + representation of the deserialized, embedded message, + with an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a + custom JSON + + representation, that representation will be embedded + adding a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message + [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + mode_info: + title: >- + mode_info describes the signing mode of the signer and + is a nested + + structure to support nested multisig pubkey's + type: object + properties: + single: + title: single represents a single signer + type: object + properties: + mode: + title: mode is the signing mode of the single signer + type: string + enum: + - SIGN_MODE_UNSPECIFIED + - SIGN_MODE_DIRECT + - SIGN_MODE_TEXTUAL + - SIGN_MODE_DIRECT_AUX + - SIGN_MODE_LEGACY_AMINO_JSON + - SIGN_MODE_EIP_191 + default: SIGN_MODE_UNSPECIFIED + description: >- + SignMode represents a signing mode with its own + security guarantees. + + + This enum should be considered a registry of all + known sign modes + + in the Cosmos ecosystem. Apps are not expected + to support all known + + sign modes. Apps that would like to support + custom sign modes are + + encouraged to open a small PR against this file + to add a new case + + to this SignMode enum describing their sign mode + so that different + + apps have a consistent version of this enum. + + - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. + - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. + - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top of + the binary representation + + from SIGN_MODE_DIRECT. + + + Since: cosmos-sdk 0.50 + - SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to + SIGN_MODE_DIRECT, this sign mode does not + + require signers signing over other signers' + `signer_info`. + + + Since: cosmos-sdk 0.46 + - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. + - SIGN_MODE_EIP_191: SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + + + Currently, SIGN_MODE_EIP_191 is registered as a + SignMode enum variant, + + but is not implemented on the SDK by default. To + enable EIP-191, you need + + to pass a custom `TxConfig` that has an + implementation of + + `SignModeHandler` for EIP-191. The SDK may + decide to fully support + + EIP-191 in the future. + + + Since: cosmos-sdk 0.45.2 + multi: + title: multi represents a nested multisig signer + type: object + properties: + bitarray: + title: >- + bitarray specifies which keys within the + multisig are signing + type: object + properties: + extra_bits_stored: + type: integer + format: int64 + elems: + type: string + format: byte + description: >- + CompactBitArray is an implementation of a space + efficient bit array. + + This is used to ensure that the encoded data + takes up a minimal amount of + + space after proto encoding. + + This is not thread safe, and is not intended for + concurrent usage. + mode_infos: + type: array + items: {} + title: >- + mode_infos is the corresponding modes of the + signers of the multisig + + which could include nested multisig public keys + description: >- + ModeInfo describes the signing mode of a single or + nested multisig signer. + sequence: + type: string + format: uint64 + description: >- + sequence is the sequence of the account, which describes + the + + number of committed transactions signed by a given + address. It is used to + + prevent replay attacks. + description: >- + SignerInfo describes the public key and signing mode of a + single top-level + + signer. + description: >- + signer_infos defines the signing modes for the required + signers. The number + + and order of elements must match the required signers from + TxBody's + + messages. The first element is the primary signer and the one + which pays + + the fee. + fee: + description: >- + Fee is the fee and gas limit for the transaction. The first + signer is the + + primary signer and the one which pays the fee. The fee can be + calculated + + based on the cost of evaluating the body and doing signature + verification + + of the signers. This can be estimated via simulation. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: amount is the amount of coins to be paid as a fee + gas_limit: + type: string + format: uint64 + title: >- + gas_limit is the maximum gas that can be used in + transaction processing + + before an out of gas error occurs + payer: + type: string + description: >- + if unset, the first signer is responsible for paying the + fees. If set, the + + specified account must pay the fees. the payer must be a + tx signer (and + + thus have signed this field in AuthInfo). setting this + field does *not* + + change the ordering of required signers for the + transaction. + granter: + type: string + title: >- + if set, the fee payer (either the first signer or the + value of the payer + + field) requests that a fee grant be used to pay fees + instead of the fee + + payer's own balance. If an appropriate fee grant does not + exist or the + + chain does not support fee grants, this will fail + tip: + description: >- + Tip is the optional tip used for transactions fees paid in + another denom. + + + This field is ignored if the chain didn't enable tips, i.e. + didn't add the + + `TipDecorator` in its posthandler. + type: object + properties: + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + title: amount is the amount of the tip + tipper: + type: string + title: tipper is the address of the account paying for the tip + description: >- + AuthInfo describes the fee and signer modes that are used to sign + a + + transaction. + signatures: + type: array + items: + type: string + format: byte + description: >- + signatures is a list of signatures that matches the length and + order of + + AuthInfo's signer_infos to allow connecting signature meta + information like + + public key and signing mode by position. + description: |- + TxEncodeRequest is the request type for the Service.TxEncode + RPC method. + cosmos.tx.v1beta1.TxEncodeResponse: + type: object + properties: + tx_bytes: + type: string + format: byte + description: tx_bytes is the encoded transaction bytes. + description: |- + TxEncodeResponse is the response type for the + Service.TxEncode method. + tendermint.abci.Event: + type: object + properties: + type: + type: string + attributes: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + index: + type: boolean + description: EventAttribute is a single key-value pair, associated with an event. + description: |- + Event allows application developers to attach additional information to + ResponseFinalizeBlock and ResponseCheckTx. + Later, transactions may be queried using these events. + tendermint.abci.EventAttribute: + type: object + properties: + key: + type: string + value: + type: string + index: + type: boolean + description: EventAttribute is a single key-value pair, associated with an event. + tendermint.crypto.PublicKey: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: PublicKey defines the keys available for use with Validators + tendermint.types.Block: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block in + the blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing on the + order first. + + This means that block.AppHash does not include these txs. + title: Data contains the set of transactions included in the block + evidence: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they participated + in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if they + participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they participated + in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if they + participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a validator + signed two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for + processing a block in the blockchain, + + including all blockchain data structures and + the rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: >- + hashes from the app output from the prev + block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included + in a Commit. + description: >- + Commit contains the evidence that a block was + committed by a set of validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use + with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use with + Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a set of + validators attempting to mislead a light client. + last_commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: BlockIdFlag indicates which BlockID the signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: CommitSig is a part of the Vote included in a Commit. + description: >- + Commit contains the evidence that a block was committed by a set of + validators. + tendermint.types.BlockID: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + tendermint.types.BlockIDFlag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: BlockIdFlag indicates which BlockID the signature is for + tendermint.types.Commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: BlockIdFlag indicates which BlockID the signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: CommitSig is a part of the Vote included in a Commit. + description: >- + Commit contains the evidence that a block was committed by a set of + validators. + tendermint.types.CommitSig: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: BlockIdFlag indicates which BlockID the signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: CommitSig is a part of the Vote included in a Commit. + tendermint.types.Data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing on the order + first. + + This means that block.AppHash does not include these txs. + title: Data contains the set of transactions included in the block + tendermint.types.DuplicateVoteEvidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: |- + SignedMsgType is a type of signed message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they participated in consensus + for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only valid for + precommit + + messages. + extension_signature: + type: string + format: byte + description: |- + Vote extension signature by the validator if they participated in + consensus for the associated block. + Only valid for precommit messages. + description: |- + Vote represents a prevote or precommit vote from validators for + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: |- + SignedMsgType is a type of signed message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they participated in consensus + for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only valid for + precommit + + messages. + extension_signature: + type: string + format: byte + description: |- + Vote extension signature by the validator if they participated in + consensus for the associated block. + Only valid for precommit messages. + description: |- + Vote represents a prevote or precommit vote from validators for + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a validator signed two + conflicting votes. + tendermint.types.Evidence: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: |- + SignedMsgType is a type of signed message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they participated in + consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only valid for + precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if they participated + in + + consensus for the associated block. + + Only valid for precommit messages. + description: |- + Vote represents a prevote or precommit vote from validators for + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: |- + SignedMsgType is a type of signed message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they participated in + consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only valid for + precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if they participated + in + + consensus for the associated block. + + Only valid for precommit messages. + description: |- + Vote represents a prevote or precommit vote from validators for + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a validator signed two + conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing + a block in the blockchain, + + including all blockchain data structures and the rules + of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included in a + Commit. + description: >- + Commit contains the evidence that a block was committed by + a set of validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use with + Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use with + Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: PublicKey defines the keys available for use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a set of validators + attempting to mislead a light client. + tendermint.types.EvidenceList: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they participated in + consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only valid + for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if they + participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from validators + for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they participated in + consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only valid + for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if they + participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from validators + for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a validator signed + two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for + processing a block in the blockchain, + + including all blockchain data structures and the + rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included in a + Commit. + description: >- + Commit contains the evidence that a block was + committed by a set of validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use + with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use + with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use with + Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a set of + validators attempting to mislead a light client. + tendermint.types.Header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block in the + blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + tendermint.types.LightBlock: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block + in the blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: BlockIdFlag indicates which BlockID the signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: CommitSig is a part of the Vote included in a Commit. + description: >- + Commit contains the evidence that a block was committed by a set + of validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: PublicKey defines the keys available for use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: PublicKey defines the keys available for use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + tendermint.types.LightClientAttackEvidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a + block in the blockchain, + + including all blockchain data structures and the rules of + the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the signature is + for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: CommitSig is a part of the Vote included in a Commit. + description: >- + Commit contains the evidence that a block was committed by a + set of validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use with + Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use with + Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: PublicKey defines the keys available for use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a set of validators + attempting to mislead a light client. + tendermint.types.PartSetHeader: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + tendermint.types.SignedHeader: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block in + the blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: BlockIdFlag indicates which BlockID the signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: CommitSig is a part of the Vote included in a Commit. + description: >- + Commit contains the evidence that a block was committed by a set of + validators. + tendermint.types.SignedMsgType: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: |- + SignedMsgType is a type of signed message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + tendermint.types.Validator: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: PublicKey defines the keys available for use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + tendermint.types.ValidatorSet: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: PublicKey defines the keys available for use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: PublicKey defines the keys available for use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + tendermint.types.Vote: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: |- + SignedMsgType is a type of signed message in the consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they participated in consensus for + the + + associated block. + extension: + type: string + format: byte + description: |- + Vote extension provided by the application. Only valid for precommit + messages. + extension_signature: + type: string + format: byte + description: |- + Vote extension signature by the validator if they participated in + consensus for the associated block. + Only valid for precommit messages. + description: |- + Vote represents a prevote or precommit vote from validators for + consensus. + tendermint.version.Consensus: + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block in the + blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + cosmos.epochs.v1beta1.EpochInfo: + type: object + properties: + identifier: + type: string + description: identifier is a unique reference to this particular timer. + start_time: + type: string + format: date-time + description: >- + start_time is the time at which the timer first ever ticks. + + If start_time is in the future, the epoch will not begin until the + start + + time. + duration: + type: string + description: |- + duration is the time in between epoch ticks. + In order for intended behavior to be met, duration should + be greater than the chains expected block time. + Duration must be non-zero. + current_epoch: + type: string + format: int64 + description: >- + current_epoch is the current epoch number, or in other words, + + how many times has the timer 'ticked'. + + The first tick (current_epoch=1) is defined as + + the first block whose blocktime is greater than the EpochInfo + start_time. + current_epoch_start_time: + type: string + format: date-time + description: >- + current_epoch_start_time describes the start time of the current timer + + interval. The interval is (current_epoch_start_time, + + current_epoch_start_time + duration] When the timer ticks, this is set + to + + current_epoch_start_time = last_epoch_start_time + duration only one + timer + + tick for a given identifier can occur per block. + + + NOTE! The current_epoch_start_time may diverge significantly from the + + wall-clock time the epoch began at. Wall-clock time of epoch start may + be + + >> current_epoch_start_time. Suppose current_epoch_start_time = 10, + + duration = 5. Suppose the chain goes offline at t=14, and comes back + online + + at t=30, and produces blocks at every successive time. (t=31, 32, + etc.) + + * The t=30 block will start the epoch for (10, 15] + + * The t=31 block will start the epoch for (15, 20] + + * The t=32 block will start the epoch for (20, 25] + + * The t=33 block will start the epoch for (25, 30] + + * The t=34 block will start the epoch for (30, 35] + + * The **t=36** block will start the epoch for (35, 40] + epoch_counting_started: + type: boolean + description: |- + epoch_counting_started is a boolean, that indicates whether this + epoch timer has began yet. + current_epoch_start_height: + type: string + format: int64 + title: >- + current_epoch_start_height is the block height at which the current + epoch + + started. (The block height at which the timer last ticked) + description: |- + EpochInfo is a struct that describes the data going into + a timer defined by the x/epochs module. + cosmos.epochs.v1beta1.QueryCurrentEpochResponse: + type: object + properties: + current_epoch: + type: string + format: int64 + description: |- + QueryCurrentEpochResponse defines the gRPC response structure for + querying an epoch by its identifier. + cosmos.epochs.v1beta1.QueryEpochInfosResponse: + type: object + properties: + epochs: + type: array + items: + type: object + properties: + identifier: + type: string + description: identifier is a unique reference to this particular timer. + start_time: + type: string + format: date-time + description: >- + start_time is the time at which the timer first ever ticks. + + If start_time is in the future, the epoch will not begin until + the start + + time. + duration: + type: string + description: |- + duration is the time in between epoch ticks. + In order for intended behavior to be met, duration should + be greater than the chains expected block time. + Duration must be non-zero. + current_epoch: + type: string + format: int64 + description: >- + current_epoch is the current epoch number, or in other words, + + how many times has the timer 'ticked'. + + The first tick (current_epoch=1) is defined as + + the first block whose blocktime is greater than the EpochInfo + start_time. + current_epoch_start_time: + type: string + format: date-time + description: >- + current_epoch_start_time describes the start time of the current + timer + + interval. The interval is (current_epoch_start_time, + + current_epoch_start_time + duration] When the timer ticks, this + is set to + + current_epoch_start_time = last_epoch_start_time + duration only + one timer + + tick for a given identifier can occur per block. + + + NOTE! The current_epoch_start_time may diverge significantly + from the + + wall-clock time the epoch began at. Wall-clock time of epoch + start may be + + >> current_epoch_start_time. Suppose current_epoch_start_time = + 10, + + duration = 5. Suppose the chain goes offline at t=14, and comes + back online + + at t=30, and produces blocks at every successive time. (t=31, + 32, etc.) + + * The t=30 block will start the epoch for (10, 15] + + * The t=31 block will start the epoch for (15, 20] + + * The t=32 block will start the epoch for (20, 25] + + * The t=33 block will start the epoch for (25, 30] + + * The t=34 block will start the epoch for (30, 35] + + * The **t=36** block will start the epoch for (35, 40] + epoch_counting_started: + type: boolean + description: |- + epoch_counting_started is a boolean, that indicates whether this + epoch timer has began yet. + current_epoch_start_height: + type: string + format: int64 + title: >- + current_epoch_start_height is the block height at which the + current epoch + + started. (The block height at which the timer last ticked) + description: |- + EpochInfo is a struct that describes the data going into + a timer defined by the x/epochs module. + description: |- + QueryEpochInfosRequest defines the gRPC response structure for + querying all epoch info. + cosmos.protocolpool.v1.ContinuousFund: + type: object + properties: + recipient: + type: string + description: Recipient is the address string of the account receiving funds. + percentage: + type: string + description: >- + Percentage is the percentage of funds to be allocated from Community + pool. + expiry: + type: string + format: date-time + description: Optional, if expiry is set, removes the state object when expired. + description: ContinuousFund defines the fields of continuous fund proposal. + cosmos.protocolpool.v1.Params: + type: object + properties: + enabled_distribution_denoms: + type: array + items: + type: string + description: >- + EnabledDistributionDenoms lists the denoms that are allowed to be + distributed. + + This is to avoid spending time distributing undesired tokens to + continuous funds and budgets. + distribution_frequency: + type: string + format: uint64 + description: >- + DistributionFrequency is the frequency (in terms of blocks) that funds + are distributed out from the + + x/protocolpool module. + description: Params defines the parameters for the protocolpool module. + cosmos.protocolpool.v1.QueryCommunityPoolResponse: + type: object + properties: + pool: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: pool defines community pool's coins. + description: >- + QueryCommunityPoolResponse is the response type for the + Query/CommunityPool + + RPC method. + cosmos.protocolpool.v1.QueryContinuousFundResponse: + type: object + properties: + continuous_fund: + type: object + properties: + recipient: + type: string + description: Recipient is the address string of the account receiving funds. + percentage: + type: string + description: >- + Percentage is the percentage of funds to be allocated from + Community pool. + expiry: + type: string + format: date-time + description: Optional, if expiry is set, removes the state object when expired. + description: ContinuousFund defines the fields of continuous fund proposal. + description: >- + QueryUnclaimedBudgetResponse is the response type for the + Query/ContinuousFund + + RPC method. + cosmos.protocolpool.v1.QueryContinuousFundsResponse: + type: object + properties: + continuous_funds: + type: array + items: + type: object + properties: + recipient: + type: string + description: Recipient is the address string of the account receiving funds. + percentage: + type: string + description: >- + Percentage is the percentage of funds to be allocated from + Community pool. + expiry: + type: string + format: date-time + description: >- + Optional, if expiry is set, removes the state object when + expired. + description: ContinuousFund defines the fields of continuous fund proposal. + description: ContinuousFunds defines all continuous funds in state. + description: >- + QueryUnclaimedBudgetResponse is the response type for the + Query/ContinuousFunds + + RPC method. + cosmos.protocolpool.v1.QueryParamsResponse: + type: object + properties: + params: + type: object + properties: + enabled_distribution_denoms: + type: array + items: + type: string + description: >- + EnabledDistributionDenoms lists the denoms that are allowed to be + distributed. + + This is to avoid spending time distributing undesired tokens to + continuous funds and budgets. + distribution_frequency: + type: string + format: uint64 + description: >- + DistributionFrequency is the frequency (in terms of blocks) that + funds are distributed out from the + + x/protocolpool module. + description: Params defines the parameters for the protocolpool module. + description: QueryParamsResponse is the response type for the Query/Params RPC method. + cosmos.staking.v1beta1.BondStatus: + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + description: |- + BondStatus is the status of a validator. + + - BOND_STATUS_UNSPECIFIED: UNSPECIFIED defines an invalid validator status. + - BOND_STATUS_UNBONDED: UNBONDED defines a validator that is not bonded. + - BOND_STATUS_UNBONDING: UNBONDING defines a validator that is unbonding. + - BOND_STATUS_BONDED: BONDED defines a validator that is bonded. + cosmos.staking.v1beta1.Commission: + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission rates to be used for + creating a validator. + type: object + properties: + rate: + type: string + description: rate is the commission rate charged to delegators, as a fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate which validator can + ever charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily increase of the + validator commission, as a fraction. + update_time: + type: string + format: date-time + description: update_time is the last time the commission rate was changed. + description: Commission defines commission parameters for a given validator. + cosmos.staking.v1beta1.CommissionRates: + type: object + properties: + rate: + type: string + description: rate is the commission rate charged to delegators, as a fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate which validator can ever + charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily increase of the validator + commission, as a fraction. + description: >- + CommissionRates defines the initial commission rates to be used for + creating + + a validator. + cosmos.staking.v1beta1.Delegation: + type: object + properties: + delegator_address: + type: string + description: delegator_address is the encoded address of the delegator. + validator_address: + type: string + description: validator_address is the encoded address of the validator. + shares: + type: string + description: shares define the delegation shares received. + description: |- + Delegation represents the bond with tokens held by an account. It is + owned by one delegator, and is associated with the voting power of one + validator. + cosmos.staking.v1beta1.DelegationResponse: + type: object + properties: + delegation: + type: object + properties: + delegator_address: + type: string + description: delegator_address is the encoded address of the delegator. + validator_address: + type: string + description: validator_address is the encoded address of the validator. + shares: + type: string + description: shares define the delegation shares received. + description: |- + Delegation represents the bond with tokens held by an account. It is + owned by one delegator, and is associated with the voting power of one + validator. + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: |- + DelegationResponse is equivalent to Delegation except that it contains a + balance in addition to shares which is more suitable for client responses. + cosmos.staking.v1beta1.Description: + type: object + properties: + moniker: + type: string + description: moniker defines a human-readable name for the validator. + identity: + type: string + description: >- + identity defines an optional identity signature (ex. UPort or + Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: security_contact defines an optional email for security contact. + details: + type: string + description: details define other optional details. + description: Description defines a validator description. + cosmos.staking.v1beta1.HistoricalInfo: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block in + the blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + valset: + type: array + items: + type: object + properties: + operator_address: + type: string + description: >- + operator_address defines the address of the validator's + operator; bech encoded in JSON. + consensus_pubkey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + jailed: + type: boolean + description: >- + jailed defined whether the validator has been jailed from bonded + status or not. + status: + description: status is the validator status (bonded/unbonding/unbonded). + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + tokens: + type: string + description: tokens define the delegated tokens (incl. self-delegation). + delegator_shares: + type: string + description: >- + delegator_shares defines total shares issued to a validator's + delegators. + description: + description: description defines the description terms for the validator. + type: object + properties: + moniker: + type: string + description: moniker defines a human-readable name for the validator. + identity: + type: string + description: >- + identity defines an optional identity signature (ex. UPort + or Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: >- + security_contact defines an optional email for security + contact. + details: + type: string + description: details define other optional details. + unbonding_height: + type: string + format: int64 + description: >- + unbonding_height defines, if unbonding, the height at which this + validator has begun unbonding. + unbonding_time: + type: string + format: date-time + description: >- + unbonding_time defines, if unbonding, the min time for the + validator to complete unbonding. + commission: + description: commission defines the commission parameters. + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission rates to be + used for creating a validator. + type: object + properties: + rate: + type: string + description: >- + rate is the commission rate charged to delegators, as a + fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate which + validator can ever charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily increase of + the validator commission, as a fraction. + update_time: + type: string + format: date-time + description: >- + update_time is the last time the commission rate was + changed. + min_self_delegation: + type: string + description: >- + min_self_delegation is the validator's self declared minimum + self delegation. + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + strictly positive if this validator's unbonding has been stopped + by external modules + unbonding_ids: + type: array + items: + type: string + format: uint64 + title: >- + list of unbonding ids, each uniquely identifing an unbonding of + this validator + description: >- + Validator defines a validator, together with the total amount of the + + Validator's bond shares and their exchange rate to coins. Slashing + results in + + a decrease in the exchange rate, allowing correct calculation of + future + + undelegations without iterating over delegators. When coins are + delegated to + + this validator, the validator is credited with a delegation whose + number of + + bond shares is based on the amount of coins delegated divided by the + current + + exchange rate. Voting power can be calculated as total bonded shares + + multiplied by exchange rate. + description: >- + HistoricalInfo contains header and validator information for a given + block. + + It is stored as part of staking module's state, which persists the `n` + most + + recent HistoricalInfo + + (`n` is set by the staking module's `historical_entries` parameter). + cosmos.staking.v1beta1.Params: + type: object + properties: + unbonding_time: + type: string + description: unbonding_time is the time duration of unbonding. + max_validators: + type: integer + format: int64 + description: max_validators is the maximum number of validators. + max_entries: + type: integer + format: int64 + description: >- + max_entries is the max entries for either unbonding delegation or + redelegation (per pair/trio). + historical_entries: + type: integer + format: int64 + description: historical_entries is the number of historical entries to persist. + bond_denom: + type: string + description: bond_denom defines the bondable coin denomination. + min_commission_rate: + type: string + title: >- + min_commission_rate is the chain-wide minimum commission rate that a + validator can charge their delegators + description: Params defines the parameters for the x/staking module. + cosmos.staking.v1beta1.Pool: + type: object + properties: + not_bonded_tokens: + type: string + bonded_tokens: + type: string + description: |- + Pool is used for tracking bonded and not-bonded token supply of the bond + denomination. + cosmos.staking.v1beta1.QueryDelegationResponse: + type: object + properties: + delegation_response: + type: object + properties: + delegation: + type: object + properties: + delegator_address: + type: string + description: delegator_address is the encoded address of the delegator. + validator_address: + type: string + description: validator_address is the encoded address of the validator. + shares: + type: string + description: shares define the delegation shares received. + description: >- + Delegation represents the bond with tokens held by an account. It + is + + owned by one delegator, and is associated with the voting power of + one + + validator. + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: >- + DelegationResponse is equivalent to Delegation except that it contains + a + + balance in addition to shares which is more suitable for client + responses. + description: >- + QueryDelegationResponse is response type for the Query/Delegation RPC + method. + cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse: + type: object + properties: + delegation_responses: + type: array + items: + type: object + properties: + delegation: + type: object + properties: + delegator_address: + type: string + description: delegator_address is the encoded address of the delegator. + validator_address: + type: string + description: validator_address is the encoded address of the validator. + shares: + type: string + description: shares define the delegation shares received. + description: >- + Delegation represents the bond with tokens held by an account. + It is + + owned by one delegator, and is associated with the voting power + of one + + validator. + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: >- + DelegationResponse is equivalent to Delegation except that it + contains a + + balance in addition to shares which is more suitable for client + responses. + description: delegation_responses defines all the delegations' info of a delegator. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: |- + QueryDelegatorDelegationsResponse is response type for the + Query/DelegatorDelegations RPC method. + cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse: + type: object + properties: + unbonding_responses: + type: array + items: + type: object + properties: + delegator_address: + type: string + description: delegator_address is the encoded address of the delegator. + validator_address: + type: string + description: validator_address is the encoded address of the validator. + entries: + type: array + items: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height is the height which the unbonding took + place. + completion_time: + type: string + format: date-time + description: completion_time is the unix time for unbonding completion. + initial_balance: + type: string + description: >- + initial_balance defines the tokens initially scheduled to + receive at completion. + balance: + type: string + description: balance defines the tokens to receive at completion. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been + stopped by external modules + description: >- + UnbondingDelegationEntry defines an unbonding object with + relevant metadata. + description: entries are the unbonding delegation entries. + description: >- + UnbondingDelegation stores all of a single delegator's unbonding + bonds + + for a single validator in an time-ordered list. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: |- + QueryUnbondingDelegatorDelegationsResponse is response type for the + Query/UnbondingDelegatorDelegations RPC method. + cosmos.staking.v1beta1.QueryDelegatorValidatorResponse: + type: object + properties: + validator: + type: object + properties: + operator_address: + type: string + description: >- + operator_address defines the address of the validator's operator; + bech encoded in JSON. + consensus_pubkey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + jailed: + type: boolean + description: >- + jailed defined whether the validator has been jailed from bonded + status or not. + status: + description: status is the validator status (bonded/unbonding/unbonded). + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + tokens: + type: string + description: tokens define the delegated tokens (incl. self-delegation). + delegator_shares: + type: string + description: >- + delegator_shares defines total shares issued to a validator's + delegators. + description: + description: description defines the description terms for the validator. + type: object + properties: + moniker: + type: string + description: moniker defines a human-readable name for the validator. + identity: + type: string + description: >- + identity defines an optional identity signature (ex. UPort or + Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: >- + security_contact defines an optional email for security + contact. + details: + type: string + description: details define other optional details. + unbonding_height: + type: string + format: int64 + description: >- + unbonding_height defines, if unbonding, the height at which this + validator has begun unbonding. + unbonding_time: + type: string + format: date-time + description: >- + unbonding_time defines, if unbonding, the min time for the + validator to complete unbonding. + commission: + description: commission defines the commission parameters. + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission rates to be + used for creating a validator. + type: object + properties: + rate: + type: string + description: >- + rate is the commission rate charged to delegators, as a + fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate which + validator can ever charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily increase of the + validator commission, as a fraction. + update_time: + type: string + format: date-time + description: update_time is the last time the commission rate was changed. + min_self_delegation: + type: string + description: >- + min_self_delegation is the validator's self declared minimum self + delegation. + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + strictly positive if this validator's unbonding has been stopped + by external modules + unbonding_ids: + type: array + items: + type: string + format: uint64 + title: >- + list of unbonding ids, each uniquely identifing an unbonding of + this validator + description: >- + Validator defines a validator, together with the total amount of the + + Validator's bond shares and their exchange rate to coins. Slashing + results in + + a decrease in the exchange rate, allowing correct calculation of + future + + undelegations without iterating over delegators. When coins are + delegated to + + this validator, the validator is credited with a delegation whose + number of + + bond shares is based on the amount of coins delegated divided by the + current + + exchange rate. Voting power can be calculated as total bonded shares + + multiplied by exchange rate. + description: |- + QueryDelegatorValidatorResponse response type for the + Query/DelegatorValidator RPC method. + cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse: + type: object + properties: + validators: + type: array + items: + type: object + properties: + operator_address: + type: string + description: >- + operator_address defines the address of the validator's + operator; bech encoded in JSON. + consensus_pubkey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + jailed: + type: boolean + description: >- + jailed defined whether the validator has been jailed from bonded + status or not. + status: + description: status is the validator status (bonded/unbonding/unbonded). + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + tokens: + type: string + description: tokens define the delegated tokens (incl. self-delegation). + delegator_shares: + type: string + description: >- + delegator_shares defines total shares issued to a validator's + delegators. + description: + description: description defines the description terms for the validator. + type: object + properties: + moniker: + type: string + description: moniker defines a human-readable name for the validator. + identity: + type: string + description: >- + identity defines an optional identity signature (ex. UPort + or Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: >- + security_contact defines an optional email for security + contact. + details: + type: string + description: details define other optional details. + unbonding_height: + type: string + format: int64 + description: >- + unbonding_height defines, if unbonding, the height at which this + validator has begun unbonding. + unbonding_time: + type: string + format: date-time + description: >- + unbonding_time defines, if unbonding, the min time for the + validator to complete unbonding. + commission: + description: commission defines the commission parameters. + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission rates to be + used for creating a validator. + type: object + properties: + rate: + type: string + description: >- + rate is the commission rate charged to delegators, as a + fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate which + validator can ever charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily increase of + the validator commission, as a fraction. + update_time: + type: string + format: date-time + description: >- + update_time is the last time the commission rate was + changed. + min_self_delegation: + type: string + description: >- + min_self_delegation is the validator's self declared minimum + self delegation. + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + strictly positive if this validator's unbonding has been stopped + by external modules + unbonding_ids: + type: array + items: + type: string + format: uint64 + title: >- + list of unbonding ids, each uniquely identifing an unbonding of + this validator + description: >- + Validator defines a validator, together with the total amount of the + + Validator's bond shares and their exchange rate to coins. Slashing + results in + + a decrease in the exchange rate, allowing correct calculation of + future + + undelegations without iterating over delegators. When coins are + delegated to + + this validator, the validator is credited with a delegation whose + number of + + bond shares is based on the amount of coins delegated divided by the + current + + exchange rate. Voting power can be calculated as total bonded shares + + multiplied by exchange rate. + description: validators defines the validators' info of a delegator. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: |- + QueryDelegatorValidatorsResponse is response type for the + Query/DelegatorValidators RPC method. + cosmos.staking.v1beta1.QueryHistoricalInfoResponse: + type: object + properties: + hist: + description: hist defines the historical info at the given height. + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block + in the blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + valset: + type: array + items: + type: object + properties: + operator_address: + type: string + description: >- + operator_address defines the address of the validator's + operator; bech encoded in JSON. + consensus_pubkey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + jailed: + type: boolean + description: >- + jailed defined whether the validator has been jailed from + bonded status or not. + status: + description: status is the validator status (bonded/unbonding/unbonded). + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + tokens: + type: string + description: tokens define the delegated tokens (incl. self-delegation). + delegator_shares: + type: string + description: >- + delegator_shares defines total shares issued to a + validator's delegators. + description: + description: description defines the description terms for the validator. + type: object + properties: + moniker: + type: string + description: moniker defines a human-readable name for the validator. + identity: + type: string + description: >- + identity defines an optional identity signature (ex. + UPort or Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: >- + security_contact defines an optional email for security + contact. + details: + type: string + description: details define other optional details. + unbonding_height: + type: string + format: int64 + description: >- + unbonding_height defines, if unbonding, the height at which + this validator has begun unbonding. + unbonding_time: + type: string + format: date-time + description: >- + unbonding_time defines, if unbonding, the min time for the + validator to complete unbonding. + commission: + description: commission defines the commission parameters. + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission rates to + be used for creating a validator. + type: object + properties: + rate: + type: string + description: >- + rate is the commission rate charged to delegators, + as a fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate which + validator can ever charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily increase + of the validator commission, as a fraction. + update_time: + type: string + format: date-time + description: >- + update_time is the last time the commission rate was + changed. + min_self_delegation: + type: string + description: >- + min_self_delegation is the validator's self declared minimum + self delegation. + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + strictly positive if this validator's unbonding has been + stopped by external modules + unbonding_ids: + type: array + items: + type: string + format: uint64 + title: >- + list of unbonding ids, each uniquely identifing an unbonding + of this validator + description: >- + Validator defines a validator, together with the total amount of + the + + Validator's bond shares and their exchange rate to coins. + Slashing results in + + a decrease in the exchange rate, allowing correct calculation of + future + + undelegations without iterating over delegators. When coins are + delegated to + + this validator, the validator is credited with a delegation + whose number of + + bond shares is based on the amount of coins delegated divided by + the current + + exchange rate. Voting power can be calculated as total bonded + shares + + multiplied by exchange rate. + description: >- + QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo + RPC + + method. + cosmos.staking.v1beta1.QueryParamsResponse: + type: object + properties: + params: + description: params holds all the parameters of this module. + type: object + properties: + unbonding_time: + type: string + description: unbonding_time is the time duration of unbonding. + max_validators: + type: integer + format: int64 + description: max_validators is the maximum number of validators. + max_entries: + type: integer + format: int64 + description: >- + max_entries is the max entries for either unbonding delegation or + redelegation (per pair/trio). + historical_entries: + type: integer + format: int64 + description: historical_entries is the number of historical entries to persist. + bond_denom: + type: string + description: bond_denom defines the bondable coin denomination. + min_commission_rate: + type: string + title: >- + min_commission_rate is the chain-wide minimum commission rate that + a validator can charge their delegators + description: QueryParamsResponse is response type for the Query/Params RPC method. + cosmos.staking.v1beta1.QueryPoolResponse: + type: object + properties: + pool: + description: pool defines the pool info. + type: object + properties: + not_bonded_tokens: + type: string + bonded_tokens: + type: string + description: QueryPoolResponse is response type for the Query/Pool RPC method. + cosmos.staking.v1beta1.QueryRedelegationsResponse: + type: object + properties: + redelegation_responses: + type: array + items: + type: object + properties: + redelegation: + type: object + properties: + delegator_address: + type: string + description: >- + delegator_address is the bech32-encoded address of the + delegator. + validator_src_address: + type: string + description: >- + validator_src_address is the validator redelegation source + operator address. + validator_dst_address: + type: string + description: >- + validator_dst_address is the validator redelegation + destination operator address. + entries: + type: array + items: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height defines the height which the + redelegation took place. + completion_time: + type: string + format: date-time + description: >- + completion_time defines the unix time for redelegation + completion. + initial_balance: + type: string + description: >- + initial_balance defines the initial balance when + redelegation started. + shares_dst: + type: string + description: >- + shares_dst is the amount of destination-validator + shares created by redelegation. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been + stopped by external modules + description: >- + RedelegationEntry defines a redelegation object with + relevant metadata. + description: entries are the redelegation entries. + description: >- + Redelegation contains the list of a particular delegator's + redelegating bonds + + from a particular source validator to a particular destination + validator. + entries: + type: array + items: + type: object + properties: + redelegation_entry: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height defines the height which the + redelegation took place. + completion_time: + type: string + format: date-time + description: >- + completion_time defines the unix time for redelegation + completion. + initial_balance: + type: string + description: >- + initial_balance defines the initial balance when + redelegation started. + shares_dst: + type: string + description: >- + shares_dst is the amount of destination-validator + shares created by redelegation. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been + stopped by external modules + description: >- + RedelegationEntry defines a redelegation object with + relevant metadata. + balance: + type: string + description: >- + RedelegationEntryResponse is equivalent to a RedelegationEntry + except that it + + contains a balance in addition to shares which is more + suitable for client + + responses. + description: >- + RedelegationResponse is equivalent to a Redelegation except that its + entries + + contain a balance in addition to shares which is more suitable for + client + + responses. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryRedelegationsResponse is response type for the Query/Redelegations + RPC + + method. + cosmos.staking.v1beta1.QueryUnbondingDelegationResponse: + type: object + properties: + unbond: + type: object + properties: + delegator_address: + type: string + description: delegator_address is the encoded address of the delegator. + validator_address: + type: string + description: validator_address is the encoded address of the validator. + entries: + type: array + items: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height is the height which the unbonding took + place. + completion_time: + type: string + format: date-time + description: completion_time is the unix time for unbonding completion. + initial_balance: + type: string + description: >- + initial_balance defines the tokens initially scheduled to + receive at completion. + balance: + type: string + description: balance defines the tokens to receive at completion. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been stopped + by external modules + description: >- + UnbondingDelegationEntry defines an unbonding object with + relevant metadata. + description: entries are the unbonding delegation entries. + description: |- + UnbondingDelegation stores all of a single delegator's unbonding bonds + for a single validator in an time-ordered list. + description: |- + QueryDelegationResponse is response type for the Query/UnbondingDelegation + RPC method. + cosmos.staking.v1beta1.QueryValidatorDelegationsResponse: + type: object + properties: + delegation_responses: + type: array + items: + type: object + properties: + delegation: + type: object + properties: + delegator_address: + type: string + description: delegator_address is the encoded address of the delegator. + validator_address: + type: string + description: validator_address is the encoded address of the validator. + shares: + type: string + description: shares define the delegation shares received. + description: >- + Delegation represents the bond with tokens held by an account. + It is + + owned by one delegator, and is associated with the voting power + of one + + validator. + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: >- + DelegationResponse is equivalent to Delegation except that it + contains a + + balance in addition to shares which is more suitable for client + responses. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: |- + QueryValidatorDelegationsResponse is response type for the + Query/ValidatorDelegations RPC method + cosmos.staking.v1beta1.QueryValidatorResponse: + type: object + properties: + validator: + type: object + properties: + operator_address: + type: string + description: >- + operator_address defines the address of the validator's operator; + bech encoded in JSON. + consensus_pubkey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + jailed: + type: boolean + description: >- + jailed defined whether the validator has been jailed from bonded + status or not. + status: + description: status is the validator status (bonded/unbonding/unbonded). + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + tokens: + type: string + description: tokens define the delegated tokens (incl. self-delegation). + delegator_shares: + type: string + description: >- + delegator_shares defines total shares issued to a validator's + delegators. + description: + description: description defines the description terms for the validator. + type: object + properties: + moniker: + type: string + description: moniker defines a human-readable name for the validator. + identity: + type: string + description: >- + identity defines an optional identity signature (ex. UPort or + Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: >- + security_contact defines an optional email for security + contact. + details: + type: string + description: details define other optional details. + unbonding_height: + type: string + format: int64 + description: >- + unbonding_height defines, if unbonding, the height at which this + validator has begun unbonding. + unbonding_time: + type: string + format: date-time + description: >- + unbonding_time defines, if unbonding, the min time for the + validator to complete unbonding. + commission: + description: commission defines the commission parameters. + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission rates to be + used for creating a validator. + type: object + properties: + rate: + type: string + description: >- + rate is the commission rate charged to delegators, as a + fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate which + validator can ever charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily increase of the + validator commission, as a fraction. + update_time: + type: string + format: date-time + description: update_time is the last time the commission rate was changed. + min_self_delegation: + type: string + description: >- + min_self_delegation is the validator's self declared minimum self + delegation. + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + strictly positive if this validator's unbonding has been stopped + by external modules + unbonding_ids: + type: array + items: + type: string + format: uint64 + title: >- + list of unbonding ids, each uniquely identifing an unbonding of + this validator + description: >- + Validator defines a validator, together with the total amount of the + + Validator's bond shares and their exchange rate to coins. Slashing + results in + + a decrease in the exchange rate, allowing correct calculation of + future + + undelegations without iterating over delegators. When coins are + delegated to + + this validator, the validator is credited with a delegation whose + number of + + bond shares is based on the amount of coins delegated divided by the + current + + exchange rate. Voting power can be calculated as total bonded shares + + multiplied by exchange rate. + title: QueryValidatorResponse is response type for the Query/Validator RPC method + cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse: + type: object + properties: + unbonding_responses: + type: array + items: + type: object + properties: + delegator_address: + type: string + description: delegator_address is the encoded address of the delegator. + validator_address: + type: string + description: validator_address is the encoded address of the validator. + entries: + type: array + items: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height is the height which the unbonding took + place. + completion_time: + type: string + format: date-time + description: completion_time is the unix time for unbonding completion. + initial_balance: + type: string + description: >- + initial_balance defines the tokens initially scheduled to + receive at completion. + balance: + type: string + description: balance defines the tokens to receive at completion. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been + stopped by external modules + description: >- + UnbondingDelegationEntry defines an unbonding object with + relevant metadata. + description: entries are the unbonding delegation entries. + description: >- + UnbondingDelegation stores all of a single delegator's unbonding + bonds + + for a single validator in an time-ordered list. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: |- + QueryValidatorUnbondingDelegationsResponse is response type for the + Query/ValidatorUnbondingDelegations RPC method. + cosmos.staking.v1beta1.QueryValidatorsResponse: + type: object + properties: + validators: + type: array + items: + type: object + properties: + operator_address: + type: string + description: >- + operator_address defines the address of the validator's + operator; bech encoded in JSON. + consensus_pubkey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + jailed: + type: boolean + description: >- + jailed defined whether the validator has been jailed from bonded + status or not. + status: + description: status is the validator status (bonded/unbonding/unbonded). + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + tokens: + type: string + description: tokens define the delegated tokens (incl. self-delegation). + delegator_shares: + type: string + description: >- + delegator_shares defines total shares issued to a validator's + delegators. + description: + description: description defines the description terms for the validator. + type: object + properties: + moniker: + type: string + description: moniker defines a human-readable name for the validator. + identity: + type: string + description: >- + identity defines an optional identity signature (ex. UPort + or Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: >- + security_contact defines an optional email for security + contact. + details: + type: string + description: details define other optional details. + unbonding_height: + type: string + format: int64 + description: >- + unbonding_height defines, if unbonding, the height at which this + validator has begun unbonding. + unbonding_time: + type: string + format: date-time + description: >- + unbonding_time defines, if unbonding, the min time for the + validator to complete unbonding. + commission: + description: commission defines the commission parameters. + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission rates to be + used for creating a validator. + type: object + properties: + rate: + type: string + description: >- + rate is the commission rate charged to delegators, as a + fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate which + validator can ever charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily increase of + the validator commission, as a fraction. + update_time: + type: string + format: date-time + description: >- + update_time is the last time the commission rate was + changed. + min_self_delegation: + type: string + description: >- + min_self_delegation is the validator's self declared minimum + self delegation. + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + strictly positive if this validator's unbonding has been stopped + by external modules + unbonding_ids: + type: array + items: + type: string + format: uint64 + title: >- + list of unbonding ids, each uniquely identifing an unbonding of + this validator + description: >- + Validator defines a validator, together with the total amount of the + + Validator's bond shares and their exchange rate to coins. Slashing + results in + + a decrease in the exchange rate, allowing correct calculation of + future + + undelegations without iterating over delegators. When coins are + delegated to + + this validator, the validator is credited with a delegation whose + number of + + bond shares is based on the amount of coins delegated divided by the + current + + exchange rate. Voting power can be calculated as total bonded shares + + multiplied by exchange rate. + description: validators contains all the queried validators. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: >- + QueryValidatorsResponse is response type for the Query/Validators RPC + method + cosmos.staking.v1beta1.Redelegation: + type: object + properties: + delegator_address: + type: string + description: delegator_address is the bech32-encoded address of the delegator. + validator_src_address: + type: string + description: >- + validator_src_address is the validator redelegation source operator + address. + validator_dst_address: + type: string + description: >- + validator_dst_address is the validator redelegation destination + operator address. + entries: + type: array + items: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height defines the height which the redelegation took + place. + completion_time: + type: string + format: date-time + description: >- + completion_time defines the unix time for redelegation + completion. + initial_balance: + type: string + description: >- + initial_balance defines the initial balance when redelegation + started. + shares_dst: + type: string + description: >- + shares_dst is the amount of destination-validator shares created + by redelegation. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been stopped by + external modules + description: >- + RedelegationEntry defines a redelegation object with relevant + metadata. + description: entries are the redelegation entries. + description: >- + Redelegation contains the list of a particular delegator's redelegating + bonds + + from a particular source validator to a particular destination validator. + cosmos.staking.v1beta1.RedelegationEntry: + type: object + properties: + creation_height: + type: string + format: int64 + description: creation_height defines the height which the redelegation took place. + completion_time: + type: string + format: date-time + description: completion_time defines the unix time for redelegation completion. + initial_balance: + type: string + description: initial_balance defines the initial balance when redelegation started. + shares_dst: + type: string + description: >- + shares_dst is the amount of destination-validator shares created by + redelegation. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been stopped by + external modules + description: RedelegationEntry defines a redelegation object with relevant metadata. + cosmos.staking.v1beta1.RedelegationEntryResponse: + type: object + properties: + redelegation_entry: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height defines the height which the redelegation took + place. + completion_time: + type: string + format: date-time + description: completion_time defines the unix time for redelegation completion. + initial_balance: + type: string + description: >- + initial_balance defines the initial balance when redelegation + started. + shares_dst: + type: string + description: >- + shares_dst is the amount of destination-validator shares created + by redelegation. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been stopped by + external modules + description: >- + RedelegationEntry defines a redelegation object with relevant + metadata. + balance: + type: string + description: >- + RedelegationEntryResponse is equivalent to a RedelegationEntry except that + it + + contains a balance in addition to shares which is more suitable for client + + responses. + cosmos.staking.v1beta1.RedelegationResponse: + type: object + properties: + redelegation: + type: object + properties: + delegator_address: + type: string + description: delegator_address is the bech32-encoded address of the delegator. + validator_src_address: + type: string + description: >- + validator_src_address is the validator redelegation source + operator address. + validator_dst_address: + type: string + description: >- + validator_dst_address is the validator redelegation destination + operator address. + entries: + type: array + items: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height defines the height which the redelegation + took place. + completion_time: + type: string + format: date-time + description: >- + completion_time defines the unix time for redelegation + completion. + initial_balance: + type: string + description: >- + initial_balance defines the initial balance when + redelegation started. + shares_dst: + type: string + description: >- + shares_dst is the amount of destination-validator shares + created by redelegation. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been stopped + by external modules + description: >- + RedelegationEntry defines a redelegation object with relevant + metadata. + description: entries are the redelegation entries. + description: >- + Redelegation contains the list of a particular delegator's + redelegating bonds + + from a particular source validator to a particular destination + validator. + entries: + type: array + items: + type: object + properties: + redelegation_entry: + type: object + properties: + creation_height: + type: string + format: int64 + description: >- + creation_height defines the height which the redelegation + took place. + completion_time: + type: string + format: date-time + description: >- + completion_time defines the unix time for redelegation + completion. + initial_balance: + type: string + description: >- + initial_balance defines the initial balance when + redelegation started. + shares_dst: + type: string + description: >- + shares_dst is the amount of destination-validator shares + created by redelegation. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been stopped + by external modules + description: >- + RedelegationEntry defines a redelegation object with relevant + metadata. + balance: + type: string + description: >- + RedelegationEntryResponse is equivalent to a RedelegationEntry + except that it + + contains a balance in addition to shares which is more suitable for + client + + responses. + description: >- + RedelegationResponse is equivalent to a Redelegation except that its + entries + + contain a balance in addition to shares which is more suitable for client + + responses. + cosmos.staking.v1beta1.UnbondingDelegation: + type: object + properties: + delegator_address: + type: string + description: delegator_address is the encoded address of the delegator. + validator_address: + type: string + description: validator_address is the encoded address of the validator. + entries: + type: array + items: + type: object + properties: + creation_height: + type: string + format: int64 + description: creation_height is the height which the unbonding took place. + completion_time: + type: string + format: date-time + description: completion_time is the unix time for unbonding completion. + initial_balance: + type: string + description: >- + initial_balance defines the tokens initially scheduled to + receive at completion. + balance: + type: string + description: balance defines the tokens to receive at completion. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been stopped by + external modules + description: >- + UnbondingDelegationEntry defines an unbonding object with relevant + metadata. + description: entries are the unbonding delegation entries. + description: |- + UnbondingDelegation stores all of a single delegator's unbonding bonds + for a single validator in an time-ordered list. + cosmos.staking.v1beta1.UnbondingDelegationEntry: + type: object + properties: + creation_height: + type: string + format: int64 + description: creation_height is the height which the unbonding took place. + completion_time: + type: string + format: date-time + description: completion_time is the unix time for unbonding completion. + initial_balance: + type: string + description: >- + initial_balance defines the tokens initially scheduled to receive at + completion. + balance: + type: string + description: balance defines the tokens to receive at completion. + unbonding_id: + type: string + format: uint64 + title: Incrementing id that uniquely identifies this entry + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + Strictly positive if this entry's unbonding has been stopped by + external modules + description: >- + UnbondingDelegationEntry defines an unbonding object with relevant + metadata. + cosmos.staking.v1beta1.Validator: + type: object + properties: + operator_address: + type: string + description: >- + operator_address defines the address of the validator's operator; bech + encoded in JSON. + consensus_pubkey: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + jailed: + type: boolean + description: >- + jailed defined whether the validator has been jailed from bonded + status or not. + status: + description: status is the validator status (bonded/unbonding/unbonded). + type: string + enum: + - BOND_STATUS_UNSPECIFIED + - BOND_STATUS_UNBONDED + - BOND_STATUS_UNBONDING + - BOND_STATUS_BONDED + default: BOND_STATUS_UNSPECIFIED + tokens: + type: string + description: tokens define the delegated tokens (incl. self-delegation). + delegator_shares: + type: string + description: >- + delegator_shares defines total shares issued to a validator's + delegators. + description: + description: description defines the description terms for the validator. + type: object + properties: + moniker: + type: string + description: moniker defines a human-readable name for the validator. + identity: + type: string + description: >- + identity defines an optional identity signature (ex. UPort or + Keybase). + website: + type: string + description: website defines an optional website link. + security_contact: + type: string + description: security_contact defines an optional email for security contact. + details: + type: string + description: details define other optional details. + unbonding_height: + type: string + format: int64 + description: >- + unbonding_height defines, if unbonding, the height at which this + validator has begun unbonding. + unbonding_time: + type: string + format: date-time + description: >- + unbonding_time defines, if unbonding, the min time for the validator + to complete unbonding. + commission: + description: commission defines the commission parameters. + type: object + properties: + commission_rates: + description: >- + commission_rates defines the initial commission rates to be used + for creating a validator. + type: object + properties: + rate: + type: string + description: >- + rate is the commission rate charged to delegators, as a + fraction. + max_rate: + type: string + description: >- + max_rate defines the maximum commission rate which validator + can ever charge, as a fraction. + max_change_rate: + type: string + description: >- + max_change_rate defines the maximum daily increase of the + validator commission, as a fraction. + update_time: + type: string + format: date-time + description: update_time is the last time the commission rate was changed. + min_self_delegation: + type: string + description: >- + min_self_delegation is the validator's self declared minimum self + delegation. + unbonding_on_hold_ref_count: + type: string + format: int64 + title: >- + strictly positive if this validator's unbonding has been stopped by + external modules + unbonding_ids: + type: array + items: + type: string + format: uint64 + title: >- + list of unbonding ids, each uniquely identifing an unbonding of this + validator + description: >- + Validator defines a validator, together with the total amount of the + + Validator's bond shares and their exchange rate to coins. Slashing results + in + + a decrease in the exchange rate, allowing correct calculation of future + + undelegations without iterating over delegators. When coins are delegated + to + + this validator, the validator is credited with a delegation whose number + of + + bond shares is based on the amount of coins delegated divided by the + current + + exchange rate. Voting power can be calculated as total bonded shares + + multiplied by exchange rate. + cosmos.params.v1beta1.ParamChange: + type: object + properties: + subspace: + type: string + key: + type: string + value: + type: string + description: |- + ParamChange defines an individual parameter change, for use in + ParameterChangeProposal. + cosmos.params.v1beta1.QueryParamsResponse: + type: object + properties: + param: + description: param defines the queried parameter. + type: object + properties: + subspace: + type: string + key: + type: string + value: + type: string + description: QueryParamsResponse is response type for the Query/Params RPC method. + cosmos.params.v1beta1.QuerySubspacesResponse: + type: object + properties: + subspaces: + type: array + items: + type: object + properties: + subspace: + type: string + keys: + type: array + items: + type: string + description: >- + Subspace defines a parameter subspace name and all the keys that + exist for + + the subspace. + description: |- + QuerySubspacesResponse defines the response types for querying for all + registered subspaces and all keys for a subspace. + cosmos.params.v1beta1.Subspace: + type: object + properties: + subspace: + type: string + keys: + type: array + items: + type: string + description: |- + Subspace defines a parameter subspace name and all the keys that exist for + the subspace. + cosmos.authz.v1beta1.Grant: + type: object + properties: + authorization: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + expiration: + type: string + format: date-time + title: >- + time when the grant will expire and will be pruned. If null, then the + grant + + doesn't have a time expiration (other conditions in `authorization` + + may apply to invalidate the grant) + description: |- + Grant gives permissions to execute + the provide method with expiration time. + cosmos.authz.v1beta1.GrantAuthorization: + type: object + properties: + granter: + type: string + grantee: + type: string + authorization: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + expiration: + type: string + format: date-time + title: >- + GrantAuthorization extends a grant with both the addresses of the grantee + and granter. + + It is used in genesis.proto and query.proto + cosmos.authz.v1beta1.QueryGranteeGrantsResponse: + type: object + properties: + grants: + type: array + items: + type: object + properties: + granter: + type: string + grantee: + type: string + authorization: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + expiration: + type: string + format: date-time + title: >- + GrantAuthorization extends a grant with both the addresses of the + grantee and granter. + + It is used in genesis.proto and query.proto + description: grants is a list of grants granted to the grantee. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGranteeGrantsResponse is the response type for the + Query/GranteeGrants RPC method. + cosmos.authz.v1beta1.QueryGranterGrantsResponse: + type: object + properties: + grants: + type: array + items: + type: object + properties: + granter: + type: string + grantee: + type: string + authorization: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + expiration: + type: string + format: date-time + title: >- + GrantAuthorization extends a grant with both the addresses of the + grantee and granter. + + It is used in genesis.proto and query.proto + description: grants is a list of grants granted by the granter. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGranterGrantsResponse is the response type for the + Query/GranterGrants RPC method. + cosmos.authz.v1beta1.QueryGrantsResponse: + type: object + properties: + grants: + type: array + items: + type: object + properties: + authorization: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + expiration: + type: string + format: date-time + title: >- + time when the grant will expire and will be pruned. If null, + then the grant + + doesn't have a time expiration (other conditions in + `authorization` + + may apply to invalidate the grant) + description: |- + Grant gives permissions to execute + the provide method with expiration time. + description: authorizations is a list of grants granted for grantee by granter. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGrantsResponse is the response type for the Query/Authorizations RPC + method. + cosmos.counter.v1.QueryGetCountResponse: + type: object + properties: + total_count: + type: string + format: int64 + description: QueryGetCountResponse defines the response type for querying x/mock count. + cosmos.upgrade.v1beta1.ModuleVersion: + type: object + properties: + name: + type: string + title: name of the app module + version: + type: string + format: uint64 + title: consensus version of the app module + description: ModuleVersion specifies a module and its consensus version. + cosmos.upgrade.v1beta1.Plan: + type: object + properties: + name: + type: string + description: >- + Sets the name for the upgrade. This name will be used by the upgraded + + version of the software to apply any special "on-upgrade" commands + during + + the first BeginBlock method after the upgrade is applied. It is also + used + + to detect whether a software version can handle a given upgrade. If no + + upgrade handler with this name has been set in the software, it will + be + + assumed that the software is out-of-date when the upgrade Time or + Height is + + reached and the software will exit. + time: + type: string + format: date-time + description: >- + Deprecated: Time based upgrades have been deprecated. Time based + upgrade logic + + has been removed from the SDK. + + If this field is not empty, an error will be thrown. + height: + type: string + format: int64 + description: The height at which the upgrade must be performed. + info: + type: string + title: |- + Any application specific upgrade info to be included on-chain + such as a git commit that validators could automatically upgrade to + upgraded_client_state: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + Plan specifies information about a planned upgrade and when it should + occur. + cosmos.upgrade.v1beta1.QueryAppliedPlanResponse: + type: object + properties: + height: + type: string + format: int64 + description: height is the block height at which the plan was applied. + description: >- + QueryAppliedPlanResponse is the response type for the Query/AppliedPlan + RPC + + method. + cosmos.upgrade.v1beta1.QueryAuthorityResponse: + type: object + properties: + address: + type: string + title: QueryAuthorityResponse is the response type for Query/Authority + cosmos.upgrade.v1beta1.QueryCurrentPlanResponse: + type: object + properties: + plan: + description: plan is the current upgrade plan. + type: object + properties: + name: + type: string + description: >- + Sets the name for the upgrade. This name will be used by the + upgraded + + version of the software to apply any special "on-upgrade" commands + during + + the first BeginBlock method after the upgrade is applied. It is + also used + + to detect whether a software version can handle a given upgrade. + If no + + upgrade handler with this name has been set in the software, it + will be + + assumed that the software is out-of-date when the upgrade Time or + Height is + + reached and the software will exit. + time: + type: string + format: date-time + description: >- + Deprecated: Time based upgrades have been deprecated. Time based + upgrade logic + + has been removed from the SDK. + + If this field is not empty, an error will be thrown. + height: + type: string + format: int64 + description: The height at which the upgrade must be performed. + info: + type: string + title: >- + Any application specific upgrade info to be included on-chain + + such as a git commit that validators could automatically upgrade + to + upgraded_client_state: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + QueryCurrentPlanResponse is the response type for the Query/CurrentPlan + RPC + + method. + cosmos.upgrade.v1beta1.QueryModuleVersionsResponse: + type: object + properties: + module_versions: + type: array + items: + type: object + properties: + name: + type: string + title: name of the app module + version: + type: string + format: uint64 + title: consensus version of the app module + description: ModuleVersion specifies a module and its consensus version. + description: >- + module_versions is a list of module names with their consensus + versions. + description: >- + QueryModuleVersionsResponse is the response type for the + Query/ModuleVersions + + RPC method. + cosmos.upgrade.v1beta1.QueryUpgradedConsensusStateResponse: + type: object + properties: + upgraded_consensus_state: + type: string + format: byte + description: >- + QueryUpgradedConsensusStateResponse is the response type for the + Query/UpgradedConsensusState + + RPC method. + cosmos.slashing.v1beta1.Params: + type: object + properties: + signed_blocks_window: + type: string + format: int64 + min_signed_per_window: + type: string + format: byte + downtime_jail_duration: + type: string + slash_fraction_double_sign: + type: string + format: byte + slash_fraction_downtime: + type: string + format: byte + description: Params represents the parameters used for by the slashing module. + cosmos.slashing.v1beta1.QueryParamsResponse: + type: object + properties: + params: + type: object + properties: + signed_blocks_window: + type: string + format: int64 + min_signed_per_window: + type: string + format: byte + downtime_jail_duration: + type: string + slash_fraction_double_sign: + type: string + format: byte + slash_fraction_downtime: + type: string + format: byte + description: Params represents the parameters used for by the slashing module. + title: QueryParamsResponse is the response type for the Query/Params RPC method + cosmos.slashing.v1beta1.QuerySigningInfoResponse: + type: object + properties: + val_signing_info: + type: object + properties: + address: + type: string + start_height: + type: string + format: int64 + title: Height at which validator was first a candidate OR was un-jailed + index_offset: + type: string + format: int64 + description: >- + Index which is incremented every time a validator is bonded in a + block and + + _may_ have signed a pre-commit or not. This in conjunction with + the + + signed_blocks_window param determines the index in the missed + block bitmap. + jailed_until: + type: string + format: date-time + description: >- + Timestamp until which the validator is jailed due to liveness + downtime. + tombstoned: + type: boolean + description: >- + Whether or not a validator has been tombstoned (killed out of + validator + + set). It is set once the validator commits an equivocation or for + any other + + configured misbehavior. + missed_blocks_counter: + type: string + format: int64 + description: >- + A counter of missed (unsigned) blocks. It is used to avoid + unnecessary + + reads in the missed block bitmap. + description: >- + ValidatorSigningInfo defines a validator's signing info for monitoring + their + + liveness activity. + title: val_signing_info is the signing info of requested val cons address + title: >- + QuerySigningInfoResponse is the response type for the Query/SigningInfo + RPC + + method + cosmos.slashing.v1beta1.QuerySigningInfosResponse: + type: object + properties: + info: + type: array + items: + type: object + properties: + address: + type: string + start_height: + type: string + format: int64 + title: Height at which validator was first a candidate OR was un-jailed + index_offset: + type: string + format: int64 + description: >- + Index which is incremented every time a validator is bonded in a + block and + + _may_ have signed a pre-commit or not. This in conjunction with + the + + signed_blocks_window param determines the index in the missed + block bitmap. + jailed_until: + type: string + format: date-time + description: >- + Timestamp until which the validator is jailed due to liveness + downtime. + tombstoned: + type: boolean + description: >- + Whether or not a validator has been tombstoned (killed out of + validator + + set). It is set once the validator commits an equivocation or + for any other + + configured misbehavior. + missed_blocks_counter: + type: string + format: int64 + description: >- + A counter of missed (unsigned) blocks. It is used to avoid + unnecessary + + reads in the missed block bitmap. + description: >- + ValidatorSigningInfo defines a validator's signing info for + monitoring their + + liveness activity. + title: info is the signing info of all validators + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: >- + QuerySigningInfosResponse is the response type for the Query/SigningInfos + RPC + + method + cosmos.slashing.v1beta1.ValidatorSigningInfo: + type: object + properties: + address: + type: string + start_height: + type: string + format: int64 + title: Height at which validator was first a candidate OR was un-jailed + index_offset: + type: string + format: int64 + description: >- + Index which is incremented every time a validator is bonded in a block + and + + _may_ have signed a pre-commit or not. This in conjunction with the + + signed_blocks_window param determines the index in the missed block + bitmap. + jailed_until: + type: string + format: date-time + description: >- + Timestamp until which the validator is jailed due to liveness + downtime. + tombstoned: + type: boolean + description: >- + Whether or not a validator has been tombstoned (killed out of + validator + + set). It is set once the validator commits an equivocation or for any + other + + configured misbehavior. + missed_blocks_counter: + type: string + format: int64 + description: |- + A counter of missed (unsigned) blocks. It is used to avoid unnecessary + reads in the missed block bitmap. + description: >- + ValidatorSigningInfo defines a validator's signing info for monitoring + their + + liveness activity. + cosmos.autocli.v1.AppOptionsResponse: + type: object + properties: + module_options: + type: object + additionalProperties: + type: object + properties: + tx: + description: tx describes the tx commands for the module. + type: object + properties: + service: + type: string + description: >- + service is the fully qualified name of the protobuf service + to build + + the command from. It can be left empty if sub_commands are + used instead + + which may be the case if a module provides multiple tx + and/or query services. + rpc_command_options: + type: array + items: + type: object + properties: + rpc_method: + type: string + description: >- + rpc_method is short name of the protobuf rpc method + that this command is + + generated from. + use: + type: string + description: >- + use is the one-line usage method. It also allows + specifying an alternate + + name for the command as the first word of the usage + text. + + + By default the name of an rpc command is the + kebab-case short name of the + + rpc method. + long: + type: string + description: >- + long is the long message shown in the 'help + ' output. + short: + type: string + description: >- + short is the short description shown in the 'help' + output. + example: + type: string + description: example is examples of how to use the command. + alias: + type: array + items: + type: string + description: >- + alias is an array of aliases that can be used instead + of the first word in Use. + suggest_for: + type: array + items: + type: string + description: >- + suggest_for is an array of command names for which + this command will be suggested - + + similar to aliases but only suggests. + deprecated: + type: string + description: >- + deprecated defines, if this command is deprecated and + should print this string when used. + version: + type: string + description: >- + version defines the version for this command. If this + value is non-empty and the command does not + + define a "version" flag, a "version" boolean flag will + be added to the command and, if specified, + + will print content of the "Version" variable. A + shorthand "v" flag will also be added if the + + command does not define one. + flag_options: + type: object + additionalProperties: + type: object + properties: + name: + type: string + description: >- + name is an alternate name to use for the field + flag. + shorthand: + type: string + description: shorthand is a one-letter abbreviated flag. + usage: + type: string + description: usage is the help message. + default_value: + type: string + description: default_value is the default value as text. + deprecated: + type: string + description: >- + deprecated is the usage text to show if this + flag is deprecated. + shorthand_deprecated: + type: string + description: >- + shorthand_deprecated is the usage text to show + if the shorthand of this flag is deprecated. + hidden: + type: boolean + title: hidden hides the flag from help/usage text + description: >- + FlagOptions are options for flags generated from rpc + request fields. + + By default, all request fields are configured as + flags based on the + + kebab-case name of the field. Fields can be turned + into positional arguments + + instead by using RpcCommandOptions.positional_args. + description: >- + flag_options are options for flags generated from rpc + request fields. + + By default all request fields are configured as flags. + They can + + also be configured as positional args instead using + positional_args. + positional_args: + type: array + items: + type: object + properties: + proto_field: + type: string + description: >- + proto_field specifies the proto field to use as + the positional arg. Any + + fields used as positional args will not have a + flag generated. + varargs: + type: boolean + description: >- + varargs makes a positional parameter a varargs + parameter. This can only be + + applied to last positional parameter and the + proto_field must a repeated + + field. Note: It is mutually exclusive with + optional. + optional: + type: boolean + description: >- + optional makes the last positional parameter + optional. + + Note: It is mutually exclusive with varargs. + description: >- + PositionalArgDescriptor describes a positional + argument. + description: >- + positional_args specifies positional arguments for the + command. + skip: + type: boolean + description: >- + skip specifies whether to skip this rpc method when + generating commands. + gov_proposal: + type: boolean + description: >- + gov_proposal specifies whether autocli should generate + a gov proposal transaction for this rpc method. + + Normally autocli generates a transaction containing + the message and broadcast it. + + However, when true, autocli generates a proposal + transaction containing the message and broadcast it. + + This option is ineffective for query commands. + description: >- + RpcCommandOptions specifies options for commands generated + from protobuf + + rpc methods. + description: >- + rpc_command_options are options for commands generated from + rpc methods. + + If no options are specified for a given rpc method on the + service, a + + command will be generated for that method with the default + options. + enhance_custom_command: + type: boolean + description: >- + enhance_custom_commands specifies whether to skip the + service when generating commands, if a custom command + already + + exists, or enhance the existing command. If set to true, the + custom command will be enhanced with the services from + + gRPC. otherwise when a custom command exists, no commands + will be generated for the service. + short: + type: string + description: >- + short is an optional parameter used to override the short + description of the auto generated command. + query: + description: query describes the queries commands for the module. + type: object + properties: + service: + type: string + description: >- + service is the fully qualified name of the protobuf service + to build + + the command from. It can be left empty if sub_commands are + used instead + + which may be the case if a module provides multiple tx + and/or query services. + rpc_command_options: + type: array + items: + type: object + properties: + rpc_method: + type: string + description: >- + rpc_method is short name of the protobuf rpc method + that this command is + + generated from. + use: + type: string + description: >- + use is the one-line usage method. It also allows + specifying an alternate + + name for the command as the first word of the usage + text. + + + By default the name of an rpc command is the + kebab-case short name of the + + rpc method. + long: + type: string + description: >- + long is the long message shown in the 'help + ' output. + short: + type: string + description: >- + short is the short description shown in the 'help' + output. + example: + type: string + description: example is examples of how to use the command. + alias: + type: array + items: + type: string + description: >- + alias is an array of aliases that can be used instead + of the first word in Use. + suggest_for: + type: array + items: + type: string + description: >- + suggest_for is an array of command names for which + this command will be suggested - + + similar to aliases but only suggests. + deprecated: + type: string + description: >- + deprecated defines, if this command is deprecated and + should print this string when used. + version: + type: string + description: >- + version defines the version for this command. If this + value is non-empty and the command does not + + define a "version" flag, a "version" boolean flag will + be added to the command and, if specified, + + will print content of the "Version" variable. A + shorthand "v" flag will also be added if the + + command does not define one. + flag_options: + type: object + additionalProperties: + type: object + properties: + name: + type: string + description: >- + name is an alternate name to use for the field + flag. + shorthand: + type: string + description: shorthand is a one-letter abbreviated flag. + usage: + type: string + description: usage is the help message. + default_value: + type: string + description: default_value is the default value as text. + deprecated: + type: string + description: >- + deprecated is the usage text to show if this + flag is deprecated. + shorthand_deprecated: + type: string + description: >- + shorthand_deprecated is the usage text to show + if the shorthand of this flag is deprecated. + hidden: + type: boolean + title: hidden hides the flag from help/usage text + description: >- + FlagOptions are options for flags generated from rpc + request fields. + + By default, all request fields are configured as + flags based on the + + kebab-case name of the field. Fields can be turned + into positional arguments + + instead by using RpcCommandOptions.positional_args. + description: >- + flag_options are options for flags generated from rpc + request fields. + + By default all request fields are configured as flags. + They can + + also be configured as positional args instead using + positional_args. + positional_args: + type: array + items: + type: object + properties: + proto_field: + type: string + description: >- + proto_field specifies the proto field to use as + the positional arg. Any + + fields used as positional args will not have a + flag generated. + varargs: + type: boolean + description: >- + varargs makes a positional parameter a varargs + parameter. This can only be + + applied to last positional parameter and the + proto_field must a repeated + + field. Note: It is mutually exclusive with + optional. + optional: + type: boolean + description: >- + optional makes the last positional parameter + optional. + + Note: It is mutually exclusive with varargs. + description: >- + PositionalArgDescriptor describes a positional + argument. + description: >- + positional_args specifies positional arguments for the + command. + skip: + type: boolean + description: >- + skip specifies whether to skip this rpc method when + generating commands. + gov_proposal: + type: boolean + description: >- + gov_proposal specifies whether autocli should generate + a gov proposal transaction for this rpc method. + + Normally autocli generates a transaction containing + the message and broadcast it. + + However, when true, autocli generates a proposal + transaction containing the message and broadcast it. + + This option is ineffective for query commands. + description: >- + RpcCommandOptions specifies options for commands generated + from protobuf + + rpc methods. + description: >- + rpc_command_options are options for commands generated from + rpc methods. + + If no options are specified for a given rpc method on the + service, a + + command will be generated for that method with the default + options. + enhance_custom_command: + type: boolean + description: >- + enhance_custom_commands specifies whether to skip the + service when generating commands, if a custom command + already + + exists, or enhance the existing command. If set to true, the + custom command will be enhanced with the services from + + gRPC. otherwise when a custom command exists, no commands + will be generated for the service. + short: + type: string + description: >- + short is an optional parameter used to override the short + description of the auto generated command. + description: ModuleOptions describes the CLI options for a Cosmos SDK module. + description: module_options is a map of module name to autocli module options. + description: AppOptionsResponse is the RemoteInfoService/AppOptions response type. + cosmos.autocli.v1.FlagOptions: + type: object + properties: + name: + type: string + description: name is an alternate name to use for the field flag. + shorthand: + type: string + description: shorthand is a one-letter abbreviated flag. + usage: + type: string + description: usage is the help message. + default_value: + type: string + description: default_value is the default value as text. + deprecated: + type: string + description: deprecated is the usage text to show if this flag is deprecated. + shorthand_deprecated: + type: string + description: >- + shorthand_deprecated is the usage text to show if the shorthand of + this flag is deprecated. + hidden: + type: boolean + title: hidden hides the flag from help/usage text + description: >- + FlagOptions are options for flags generated from rpc request fields. + + By default, all request fields are configured as flags based on the + + kebab-case name of the field. Fields can be turned into positional + arguments + + instead by using RpcCommandOptions.positional_args. + cosmos.autocli.v1.ModuleOptions: + type: object + properties: + tx: + description: tx describes the tx commands for the module. + type: object + properties: + service: + type: string + description: >- + service is the fully qualified name of the protobuf service to + build + + the command from. It can be left empty if sub_commands are used + instead + + which may be the case if a module provides multiple tx and/or + query services. + rpc_command_options: + type: array + items: + type: object + properties: + rpc_method: + type: string + description: >- + rpc_method is short name of the protobuf rpc method that + this command is + + generated from. + use: + type: string + description: >- + use is the one-line usage method. It also allows specifying + an alternate + + name for the command as the first word of the usage text. + + + By default the name of an rpc command is the kebab-case + short name of the + + rpc method. + long: + type: string + description: >- + long is the long message shown in the 'help ' + output. + short: + type: string + description: short is the short description shown in the 'help' output. + example: + type: string + description: example is examples of how to use the command. + alias: + type: array + items: + type: string + description: >- + alias is an array of aliases that can be used instead of the + first word in Use. + suggest_for: + type: array + items: + type: string + description: >- + suggest_for is an array of command names for which this + command will be suggested - + + similar to aliases but only suggests. + deprecated: + type: string + description: >- + deprecated defines, if this command is deprecated and should + print this string when used. + version: + type: string + description: >- + version defines the version for this command. If this value + is non-empty and the command does not + + define a "version" flag, a "version" boolean flag will be + added to the command and, if specified, + + will print content of the "Version" variable. A shorthand + "v" flag will also be added if the + + command does not define one. + flag_options: + type: object + additionalProperties: + type: object + properties: + name: + type: string + description: name is an alternate name to use for the field flag. + shorthand: + type: string + description: shorthand is a one-letter abbreviated flag. + usage: + type: string + description: usage is the help message. + default_value: + type: string + description: default_value is the default value as text. + deprecated: + type: string + description: >- + deprecated is the usage text to show if this flag is + deprecated. + shorthand_deprecated: + type: string + description: >- + shorthand_deprecated is the usage text to show if the + shorthand of this flag is deprecated. + hidden: + type: boolean + title: hidden hides the flag from help/usage text + description: >- + FlagOptions are options for flags generated from rpc + request fields. + + By default, all request fields are configured as flags + based on the + + kebab-case name of the field. Fields can be turned into + positional arguments + + instead by using RpcCommandOptions.positional_args. + description: >- + flag_options are options for flags generated from rpc + request fields. + + By default all request fields are configured as flags. They + can + + also be configured as positional args instead using + positional_args. + positional_args: + type: array + items: + type: object + properties: + proto_field: + type: string + description: >- + proto_field specifies the proto field to use as the + positional arg. Any + + fields used as positional args will not have a flag + generated. + varargs: + type: boolean + description: >- + varargs makes a positional parameter a varargs + parameter. This can only be + + applied to last positional parameter and the + proto_field must a repeated + + field. Note: It is mutually exclusive with optional. + optional: + type: boolean + description: |- + optional makes the last positional parameter optional. + Note: It is mutually exclusive with varargs. + description: PositionalArgDescriptor describes a positional argument. + description: >- + positional_args specifies positional arguments for the + command. + skip: + type: boolean + description: >- + skip specifies whether to skip this rpc method when + generating commands. + gov_proposal: + type: boolean + description: >- + gov_proposal specifies whether autocli should generate a gov + proposal transaction for this rpc method. + + Normally autocli generates a transaction containing the + message and broadcast it. + + However, when true, autocli generates a proposal transaction + containing the message and broadcast it. + + This option is ineffective for query commands. + description: >- + RpcCommandOptions specifies options for commands generated from + protobuf + + rpc methods. + description: >- + rpc_command_options are options for commands generated from rpc + methods. + + If no options are specified for a given rpc method on the service, + a + + command will be generated for that method with the default + options. + enhance_custom_command: + type: boolean + description: >- + enhance_custom_commands specifies whether to skip the service when + generating commands, if a custom command already + + exists, or enhance the existing command. If set to true, the + custom command will be enhanced with the services from + + gRPC. otherwise when a custom command exists, no commands will be + generated for the service. + short: + type: string + description: >- + short is an optional parameter used to override the short + description of the auto generated command. + query: + description: query describes the queries commands for the module. + type: object + properties: + service: + type: string + description: >- + service is the fully qualified name of the protobuf service to + build + + the command from. It can be left empty if sub_commands are used + instead + + which may be the case if a module provides multiple tx and/or + query services. + rpc_command_options: + type: array + items: + type: object + properties: + rpc_method: + type: string + description: >- + rpc_method is short name of the protobuf rpc method that + this command is + + generated from. + use: + type: string + description: >- + use is the one-line usage method. It also allows specifying + an alternate + + name for the command as the first word of the usage text. + + + By default the name of an rpc command is the kebab-case + short name of the + + rpc method. + long: + type: string + description: >- + long is the long message shown in the 'help ' + output. + short: + type: string + description: short is the short description shown in the 'help' output. + example: + type: string + description: example is examples of how to use the command. + alias: + type: array + items: + type: string + description: >- + alias is an array of aliases that can be used instead of the + first word in Use. + suggest_for: + type: array + items: + type: string + description: >- + suggest_for is an array of command names for which this + command will be suggested - + + similar to aliases but only suggests. + deprecated: + type: string + description: >- + deprecated defines, if this command is deprecated and should + print this string when used. + version: + type: string + description: >- + version defines the version for this command. If this value + is non-empty and the command does not + + define a "version" flag, a "version" boolean flag will be + added to the command and, if specified, + + will print content of the "Version" variable. A shorthand + "v" flag will also be added if the + + command does not define one. + flag_options: + type: object + additionalProperties: + type: object + properties: + name: + type: string + description: name is an alternate name to use for the field flag. + shorthand: + type: string + description: shorthand is a one-letter abbreviated flag. + usage: + type: string + description: usage is the help message. + default_value: + type: string + description: default_value is the default value as text. + deprecated: + type: string + description: >- + deprecated is the usage text to show if this flag is + deprecated. + shorthand_deprecated: + type: string + description: >- + shorthand_deprecated is the usage text to show if the + shorthand of this flag is deprecated. + hidden: + type: boolean + title: hidden hides the flag from help/usage text + description: >- + FlagOptions are options for flags generated from rpc + request fields. + + By default, all request fields are configured as flags + based on the + + kebab-case name of the field. Fields can be turned into + positional arguments + + instead by using RpcCommandOptions.positional_args. + description: >- + flag_options are options for flags generated from rpc + request fields. + + By default all request fields are configured as flags. They + can + + also be configured as positional args instead using + positional_args. + positional_args: + type: array + items: + type: object + properties: + proto_field: + type: string + description: >- + proto_field specifies the proto field to use as the + positional arg. Any + + fields used as positional args will not have a flag + generated. + varargs: + type: boolean + description: >- + varargs makes a positional parameter a varargs + parameter. This can only be + + applied to last positional parameter and the + proto_field must a repeated + + field. Note: It is mutually exclusive with optional. + optional: + type: boolean + description: |- + optional makes the last positional parameter optional. + Note: It is mutually exclusive with varargs. + description: PositionalArgDescriptor describes a positional argument. + description: >- + positional_args specifies positional arguments for the + command. + skip: + type: boolean + description: >- + skip specifies whether to skip this rpc method when + generating commands. + gov_proposal: + type: boolean + description: >- + gov_proposal specifies whether autocli should generate a gov + proposal transaction for this rpc method. + + Normally autocli generates a transaction containing the + message and broadcast it. + + However, when true, autocli generates a proposal transaction + containing the message and broadcast it. + + This option is ineffective for query commands. + description: >- + RpcCommandOptions specifies options for commands generated from + protobuf + + rpc methods. + description: >- + rpc_command_options are options for commands generated from rpc + methods. + + If no options are specified for a given rpc method on the service, + a + + command will be generated for that method with the default + options. + enhance_custom_command: + type: boolean + description: >- + enhance_custom_commands specifies whether to skip the service when + generating commands, if a custom command already + + exists, or enhance the existing command. If set to true, the + custom command will be enhanced with the services from + + gRPC. otherwise when a custom command exists, no commands will be + generated for the service. + short: + type: string + description: >- + short is an optional parameter used to override the short + description of the auto generated command. + description: ModuleOptions describes the CLI options for a Cosmos SDK module. + cosmos.autocli.v1.PositionalArgDescriptor: + type: object + properties: + proto_field: + type: string + description: >- + proto_field specifies the proto field to use as the positional arg. + Any + + fields used as positional args will not have a flag generated. + varargs: + type: boolean + description: >- + varargs makes a positional parameter a varargs parameter. This can + only be + + applied to last positional parameter and the proto_field must a + repeated + + field. Note: It is mutually exclusive with optional. + optional: + type: boolean + description: |- + optional makes the last positional parameter optional. + Note: It is mutually exclusive with varargs. + description: PositionalArgDescriptor describes a positional argument. + cosmos.autocli.v1.RpcCommandOptions: + type: object + properties: + rpc_method: + type: string + description: >- + rpc_method is short name of the protobuf rpc method that this command + is + + generated from. + use: + type: string + description: >- + use is the one-line usage method. It also allows specifying an + alternate + + name for the command as the first word of the usage text. + + + By default the name of an rpc command is the kebab-case short name of + the + + rpc method. + long: + type: string + description: long is the long message shown in the 'help ' output. + short: + type: string + description: short is the short description shown in the 'help' output. + example: + type: string + description: example is examples of how to use the command. + alias: + type: array + items: + type: string + description: >- + alias is an array of aliases that can be used instead of the first + word in Use. + suggest_for: + type: array + items: + type: string + description: >- + suggest_for is an array of command names for which this command will + be suggested - + + similar to aliases but only suggests. + deprecated: + type: string + description: >- + deprecated defines, if this command is deprecated and should print + this string when used. + version: + type: string + description: >- + version defines the version for this command. If this value is + non-empty and the command does not + + define a "version" flag, a "version" boolean flag will be added to the + command and, if specified, + + will print content of the "Version" variable. A shorthand "v" flag + will also be added if the + + command does not define one. + flag_options: + type: object + additionalProperties: + type: object + properties: + name: + type: string + description: name is an alternate name to use for the field flag. + shorthand: + type: string + description: shorthand is a one-letter abbreviated flag. + usage: + type: string + description: usage is the help message. + default_value: + type: string + description: default_value is the default value as text. + deprecated: + type: string + description: deprecated is the usage text to show if this flag is deprecated. + shorthand_deprecated: + type: string + description: >- + shorthand_deprecated is the usage text to show if the shorthand + of this flag is deprecated. + hidden: + type: boolean + title: hidden hides the flag from help/usage text + description: >- + FlagOptions are options for flags generated from rpc request fields. + + By default, all request fields are configured as flags based on the + + kebab-case name of the field. Fields can be turned into positional + arguments + + instead by using RpcCommandOptions.positional_args. + description: |- + flag_options are options for flags generated from rpc request fields. + By default all request fields are configured as flags. They can + also be configured as positional args instead using positional_args. + positional_args: + type: array + items: + type: object + properties: + proto_field: + type: string + description: >- + proto_field specifies the proto field to use as the positional + arg. Any + + fields used as positional args will not have a flag generated. + varargs: + type: boolean + description: >- + varargs makes a positional parameter a varargs parameter. This + can only be + + applied to last positional parameter and the proto_field must a + repeated + + field. Note: It is mutually exclusive with optional. + optional: + type: boolean + description: |- + optional makes the last positional parameter optional. + Note: It is mutually exclusive with varargs. + description: PositionalArgDescriptor describes a positional argument. + description: positional_args specifies positional arguments for the command. + skip: + type: boolean + description: >- + skip specifies whether to skip this rpc method when generating + commands. + gov_proposal: + type: boolean + description: >- + gov_proposal specifies whether autocli should generate a gov proposal + transaction for this rpc method. + + Normally autocli generates a transaction containing the message and + broadcast it. + + However, when true, autocli generates a proposal transaction + containing the message and broadcast it. + + This option is ineffective for query commands. + description: |- + RpcCommandOptions specifies options for commands generated from protobuf + rpc methods. + cosmos.autocli.v1.ServiceCommandDescriptor: + type: object + properties: + service: + type: string + description: >- + service is the fully qualified name of the protobuf service to build + + the command from. It can be left empty if sub_commands are used + instead + + which may be the case if a module provides multiple tx and/or query + services. + rpc_command_options: + type: array + items: + type: object + properties: + rpc_method: + type: string + description: >- + rpc_method is short name of the protobuf rpc method that this + command is + + generated from. + use: + type: string + description: >- + use is the one-line usage method. It also allows specifying an + alternate + + name for the command as the first word of the usage text. + + + By default the name of an rpc command is the kebab-case short + name of the + + rpc method. + long: + type: string + description: >- + long is the long message shown in the 'help ' + output. + short: + type: string + description: short is the short description shown in the 'help' output. + example: + type: string + description: example is examples of how to use the command. + alias: + type: array + items: + type: string + description: >- + alias is an array of aliases that can be used instead of the + first word in Use. + suggest_for: + type: array + items: + type: string + description: >- + suggest_for is an array of command names for which this command + will be suggested - + + similar to aliases but only suggests. + deprecated: + type: string + description: >- + deprecated defines, if this command is deprecated and should + print this string when used. + version: + type: string + description: >- + version defines the version for this command. If this value is + non-empty and the command does not + + define a "version" flag, a "version" boolean flag will be added + to the command and, if specified, + + will print content of the "Version" variable. A shorthand "v" + flag will also be added if the + + command does not define one. + flag_options: + type: object + additionalProperties: + type: object + properties: + name: + type: string + description: name is an alternate name to use for the field flag. + shorthand: + type: string + description: shorthand is a one-letter abbreviated flag. + usage: + type: string + description: usage is the help message. + default_value: + type: string + description: default_value is the default value as text. + deprecated: + type: string + description: >- + deprecated is the usage text to show if this flag is + deprecated. + shorthand_deprecated: + type: string + description: >- + shorthand_deprecated is the usage text to show if the + shorthand of this flag is deprecated. + hidden: + type: boolean + title: hidden hides the flag from help/usage text + description: >- + FlagOptions are options for flags generated from rpc request + fields. + + By default, all request fields are configured as flags based + on the + + kebab-case name of the field. Fields can be turned into + positional arguments + + instead by using RpcCommandOptions.positional_args. + description: >- + flag_options are options for flags generated from rpc request + fields. + + By default all request fields are configured as flags. They can + + also be configured as positional args instead using + positional_args. + positional_args: + type: array + items: + type: object + properties: + proto_field: + type: string + description: >- + proto_field specifies the proto field to use as the + positional arg. Any + + fields used as positional args will not have a flag + generated. + varargs: + type: boolean + description: >- + varargs makes a positional parameter a varargs parameter. + This can only be + + applied to last positional parameter and the proto_field + must a repeated + + field. Note: It is mutually exclusive with optional. + optional: + type: boolean + description: |- + optional makes the last positional parameter optional. + Note: It is mutually exclusive with varargs. + description: PositionalArgDescriptor describes a positional argument. + description: positional_args specifies positional arguments for the command. + skip: + type: boolean + description: >- + skip specifies whether to skip this rpc method when generating + commands. + gov_proposal: + type: boolean + description: >- + gov_proposal specifies whether autocli should generate a gov + proposal transaction for this rpc method. + + Normally autocli generates a transaction containing the message + and broadcast it. + + However, when true, autocli generates a proposal transaction + containing the message and broadcast it. + + This option is ineffective for query commands. + description: >- + RpcCommandOptions specifies options for commands generated from + protobuf + + rpc methods. + description: >- + rpc_command_options are options for commands generated from rpc + methods. + + If no options are specified for a given rpc method on the service, a + + command will be generated for that method with the default options. + enhance_custom_command: + type: boolean + description: >- + enhance_custom_commands specifies whether to skip the service when + generating commands, if a custom command already + + exists, or enhance the existing command. If set to true, the custom + command will be enhanced with the services from + + gRPC. otherwise when a custom command exists, no commands will be + generated for the service. + short: + type: string + description: >- + short is an optional parameter used to override the short description + of the auto generated command. + description: >- + ServiceCommandDescriptor describes a CLI command based on a protobuf + service. + cosmos.base.tendermint.v1beta1.ABCIQueryResponse: + type: object + properties: + code: + type: integer + format: int64 + log: + type: string + info: + type: string + index: + type: string + format: int64 + key: + type: string + format: byte + value: + type: string + format: byte + proof_ops: + type: object + properties: + ops: + type: array + items: + type: object + properties: + type: + type: string + key: + type: string + format: byte + data: + type: string + format: byte + description: >- + ProofOp defines an operation used for calculating Merkle root. + The data could + + be arbitrary format, providing necessary data for example + neighbouring node + + hash. + + + Note: This type is a duplicate of the ProofOp proto type defined + in Tendermint. + description: >- + ProofOps is Merkle proof defined by the list of ProofOps. + + + Note: This type is a duplicate of the ProofOps proto type defined in + Tendermint. + height: + type: string + format: int64 + codespace: + type: string + description: >- + ABCIQueryResponse defines the response structure for the ABCIQuery gRPC + query. + + + Note: This type is a duplicate of the ResponseQuery proto type defined in + + Tendermint. + cosmos.base.tendermint.v1beta1.Block: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block in + the blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + description: >- + proposer_address is the original block proposer address, formatted + as a Bech32 string. + + In Tendermint, this type is `bytes`, but in the SDK, we convert it + to a Bech32 string + + for better UX. + description: Header defines the structure of a Tendermint block header. + data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing on the + order first. + + This means that block.AppHash does not include these txs. + title: Data contains the set of transactions included in the block + evidence: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they participated + in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if they + participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they participated + in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if they + participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a validator + signed two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for + processing a block in the blockchain, + + including all blockchain data structures and + the rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: >- + hashes from the app output from the prev + block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included + in a Commit. + description: >- + Commit contains the evidence that a block was + committed by a set of validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use + with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use with + Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a set of + validators attempting to mislead a light client. + last_commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: BlockIdFlag indicates which BlockID the signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: CommitSig is a part of the Vote included in a Commit. + description: >- + Commit contains the evidence that a block was committed by a set of + validators. + description: |- + Block is tendermint type Block, with the Header proposer address + field converted to bech32 string. + cosmos.base.tendermint.v1beta1.GetBlockByHeightResponse: + type: object + properties: + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + block: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block + in the blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing on the + order first. + + This means that block.AppHash does not include these txs. + title: Data contains the set of transactions included in the block + evidence: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if + they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if + they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a validator + signed two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules + for processing a block in the + blockchain, + + including all blockchain data structures + and the rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: >- + hashes from the app output from the prev + block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: >- + Header defines the structure of a block + header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included + in a Commit. + description: >- + Commit contains the evidence that a block + was committed by a set of validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use + with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a set of + validators attempting to mislead a light client. + last_commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: BlockIdFlag indicates which BlockID the signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: CommitSig is a part of the Vote included in a Commit. + description: >- + Commit contains the evidence that a block was committed by a set + of validators. + title: 'Deprecated: please use `sdk_block` instead' + sdk_block: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block + in the blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + description: >- + proposer_address is the original block proposer address, + formatted as a Bech32 string. + + In Tendermint, this type is `bytes`, but in the SDK, we + convert it to a Bech32 string + + for better UX. + description: Header defines the structure of a Tendermint block header. + data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing on the + order first. + + This means that block.AppHash does not include these txs. + title: Data contains the set of transactions included in the block + evidence: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if + they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if + they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a validator + signed two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules + for processing a block in the + blockchain, + + including all blockchain data structures + and the rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: >- + hashes from the app output from the prev + block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: >- + Header defines the structure of a block + header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included + in a Commit. + description: >- + Commit contains the evidence that a block + was committed by a set of validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use + with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a set of + validators attempting to mislead a light client. + last_commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: BlockIdFlag indicates which BlockID the signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: CommitSig is a part of the Vote included in a Commit. + description: >- + Commit contains the evidence that a block was committed by a set + of validators. + description: |- + Block is tendermint type Block, with the Header proposer address + field converted to bech32 string. + description: >- + GetBlockByHeightResponse is the response type for the + Query/GetBlockByHeight RPC method. + cosmos.base.tendermint.v1beta1.GetLatestBlockResponse: + type: object + properties: + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + block: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block + in the blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: Header defines the structure of a block header. + data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing on the + order first. + + This means that block.AppHash does not include these txs. + title: Data contains the set of transactions included in the block + evidence: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if + they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if + they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a validator + signed two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules + for processing a block in the + blockchain, + + including all blockchain data structures + and the rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: >- + hashes from the app output from the prev + block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: >- + Header defines the structure of a block + header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included + in a Commit. + description: >- + Commit contains the evidence that a block + was committed by a set of validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use + with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a set of + validators attempting to mislead a light client. + last_commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: BlockIdFlag indicates which BlockID the signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: CommitSig is a part of the Vote included in a Commit. + description: >- + Commit contains the evidence that a block was committed by a set + of validators. + title: 'Deprecated: please use `sdk_block` instead' + sdk_block: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block + in the blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + description: >- + proposer_address is the original block proposer address, + formatted as a Bech32 string. + + In Tendermint, this type is `bytes`, but in the SDK, we + convert it to a Bech32 string + + for better UX. + description: Header defines the structure of a Tendermint block header. + data: + type: object + properties: + txs: + type: array + items: + type: string + format: byte + description: >- + Txs that will be applied by state @ block.Height+1. + + NOTE: not all txs here are valid. We're just agreeing on the + order first. + + This means that block.AppHash does not include these txs. + title: Data contains the set of transactions included in the block + evidence: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + duplicate_vote_evidence: + type: object + properties: + vote_a: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if + they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + vote_b: + type: object + properties: + type: + type: string + enum: + - SIGNED_MSG_TYPE_UNKNOWN + - SIGNED_MSG_TYPE_PREVOTE + - SIGNED_MSG_TYPE_PRECOMMIT + - SIGNED_MSG_TYPE_PROPOSAL + default: SIGNED_MSG_TYPE_UNKNOWN + description: >- + SignedMsgType is a type of signed message in the + consensus. + + - SIGNED_MSG_TYPE_PREVOTE: Votes + - SIGNED_MSG_TYPE_PROPOSAL: Proposals + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + timestamp: + type: string + format: date-time + validator_address: + type: string + format: byte + validator_index: + type: integer + format: int32 + signature: + type: string + format: byte + description: >- + Vote signature by the validator if they + participated in consensus for the + + associated block. + extension: + type: string + format: byte + description: >- + Vote extension provided by the application. Only + valid for precommit + + messages. + extension_signature: + type: string + format: byte + description: >- + Vote extension signature by the validator if + they participated in + + consensus for the associated block. + + Only valid for precommit messages. + description: >- + Vote represents a prevote or precommit vote from + validators for + + consensus. + total_voting_power: + type: string + format: int64 + validator_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + DuplicateVoteEvidence contains evidence of a validator + signed two conflicting votes. + light_client_attack_evidence: + type: object + properties: + conflicting_block: + type: object + properties: + signed_header: + type: object + properties: + header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules + for processing a block in the + blockchain, + + including all blockchain data structures + and the rules of the application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: >- + hashes from the app output from the prev + block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + format: byte + description: >- + Header defines the structure of a block + header. + commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: >- + BlockIdFlag indicates which BlockID the + signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: >- + CommitSig is a part of the Vote included + in a Commit. + description: >- + Commit contains the evidence that a block + was committed by a set of validators. + validator_set: + type: object + properties: + validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + proposer: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for + use with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + common_height: + type: string + format: int64 + byzantine_validators: + type: array + items: + type: object + properties: + address: + type: string + format: byte + pub_key: + type: object + properties: + ed25519: + type: string + format: byte + secp256k1: + type: string + format: byte + title: >- + PublicKey defines the keys available for use + with Validators + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + total_voting_power: + type: string + format: int64 + timestamp: + type: string + format: date-time + description: >- + LightClientAttackEvidence contains evidence of a set of + validators attempting to mislead a light client. + last_commit: + type: object + properties: + height: + type: string + format: int64 + round: + type: integer + format: int32 + block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + signatures: + type: array + items: + type: object + properties: + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + title: BlockIdFlag indicates which BlockID the signature is for + validator_address: + type: string + format: byte + timestamp: + type: string + format: date-time + signature: + type: string + format: byte + description: CommitSig is a part of the Vote included in a Commit. + description: >- + Commit contains the evidence that a block was committed by a set + of validators. + description: |- + Block is tendermint type Block, with the Header proposer address + field converted to bech32 string. + description: >- + GetLatestBlockResponse is the response type for the Query/GetLatestBlock + RPC method. + cosmos.base.tendermint.v1beta1.GetLatestValidatorSetResponse: + type: object + properties: + block_height: + type: string + format: int64 + validators: + type: array + items: + type: object + properties: + address: + type: string + pub_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + description: Validator is the type for the validator-set. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + GetLatestValidatorSetResponse is the response type for the + Query/GetValidatorSetByHeight RPC method. + cosmos.base.tendermint.v1beta1.GetNodeInfoResponse: + type: object + properties: + default_node_info: + type: object + properties: + protocol_version: + type: object + properties: + p2p: + type: string + format: uint64 + block: + type: string + format: uint64 + app: + type: string + format: uint64 + default_node_id: + type: string + listen_addr: + type: string + network: + type: string + version: + type: string + channels: + type: string + format: byte + moniker: + type: string + other: + type: object + properties: + tx_index: + type: string + rpc_address: + type: string + application_version: + type: object + properties: + name: + type: string + app_name: + type: string + version: + type: string + git_commit: + type: string + build_tags: + type: string + go_version: + type: string + build_deps: + type: array + items: + type: object + properties: + path: + type: string + title: module path + version: + type: string + title: module version + sum: + type: string + title: checksum + title: Module is the type for VersionInfo + cosmos_sdk_version: + type: string + description: VersionInfo is the type for the GetNodeInfoResponse message. + description: >- + GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC + method. + cosmos.base.tendermint.v1beta1.GetSyncingResponse: + type: object + properties: + syncing: + type: boolean + description: >- + GetSyncingResponse is the response type for the Query/GetSyncing RPC + method. + cosmos.base.tendermint.v1beta1.GetValidatorSetByHeightResponse: + type: object + properties: + block_height: + type: string + format: int64 + validators: + type: array + items: + type: object + properties: + address: + type: string + pub_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + description: Validator is the type for the validator-set. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + GetValidatorSetByHeightResponse is the response type for the + Query/GetValidatorSetByHeight RPC method. + cosmos.base.tendermint.v1beta1.Header: + type: object + properties: + version: + title: basic block info + type: object + properties: + block: + type: string + format: uint64 + app: + type: string + format: uint64 + description: >- + Consensus captures the consensus rules for processing a block in the + blockchain, + + including all blockchain data structures and the rules of the + application's + + state transition machine. + chain_id: + type: string + height: + type: string + format: int64 + time: + type: string + format: date-time + last_block_id: + type: object + properties: + hash: + type: string + format: byte + part_set_header: + type: object + properties: + total: + type: integer + format: int64 + hash: + type: string + format: byte + title: PartsetHeader + title: BlockID + last_commit_hash: + type: string + format: byte + title: hashes of block data + data_hash: + type: string + format: byte + validators_hash: + type: string + format: byte + title: hashes from the app output from the prev block + next_validators_hash: + type: string + format: byte + consensus_hash: + type: string + format: byte + app_hash: + type: string + format: byte + last_results_hash: + type: string + format: byte + evidence_hash: + type: string + format: byte + title: consensus info + proposer_address: + type: string + description: >- + proposer_address is the original block proposer address, formatted as + a Bech32 string. + + In Tendermint, this type is `bytes`, but in the SDK, we convert it to + a Bech32 string + + for better UX. + description: Header defines the structure of a Tendermint block header. + cosmos.base.tendermint.v1beta1.Module: + type: object + properties: + path: + type: string + title: module path + version: + type: string + title: module version + sum: + type: string + title: checksum + title: Module is the type for VersionInfo + cosmos.base.tendermint.v1beta1.ProofOp: + type: object + properties: + type: + type: string + key: + type: string + format: byte + data: + type: string + format: byte + description: >- + ProofOp defines an operation used for calculating Merkle root. The data + could + + be arbitrary format, providing necessary data for example neighbouring + node + + hash. + + + Note: This type is a duplicate of the ProofOp proto type defined in + Tendermint. + cosmos.base.tendermint.v1beta1.ProofOps: + type: object + properties: + ops: + type: array + items: + type: object + properties: + type: + type: string + key: + type: string + format: byte + data: + type: string + format: byte + description: >- + ProofOp defines an operation used for calculating Merkle root. The + data could + + be arbitrary format, providing necessary data for example + neighbouring node + + hash. + + + Note: This type is a duplicate of the ProofOp proto type defined in + Tendermint. + description: >- + ProofOps is Merkle proof defined by the list of ProofOps. + + + Note: This type is a duplicate of the ProofOps proto type defined in + Tendermint. + cosmos.base.tendermint.v1beta1.Validator: + type: object + properties: + address: + type: string + pub_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + voting_power: + type: string + format: int64 + proposer_priority: + type: string + format: int64 + description: Validator is the type for the validator-set. + cosmos.base.tendermint.v1beta1.VersionInfo: + type: object + properties: + name: + type: string + app_name: + type: string + version: + type: string + git_commit: + type: string + build_tags: + type: string + go_version: + type: string + build_deps: + type: array + items: + type: object + properties: + path: + type: string + title: module path + version: + type: string + title: module version + sum: + type: string + title: checksum + title: Module is the type for VersionInfo + cosmos_sdk_version: + type: string + description: VersionInfo is the type for the GetNodeInfoResponse message. + tendermint.p2p.DefaultNodeInfo: + type: object + properties: + protocol_version: + type: object + properties: + p2p: + type: string + format: uint64 + block: + type: string + format: uint64 + app: + type: string + format: uint64 + default_node_id: + type: string + listen_addr: + type: string + network: + type: string + version: + type: string + channels: + type: string + format: byte + moniker: + type: string + other: + type: object + properties: + tx_index: + type: string + rpc_address: + type: string + tendermint.p2p.DefaultNodeInfoOther: + type: object + properties: + tx_index: + type: string + rpc_address: + type: string + tendermint.p2p.ProtocolVersion: + type: object + properties: + p2p: + type: string + format: uint64 + block: + type: string + format: uint64 + app: + type: string + format: uint64 + cosmos.base.node.v1beta1.ConfigResponse: + type: object + properties: + minimum_gas_price: + type: string + pruning_keep_recent: + type: string + pruning_interval: + type: string + halt_height: + type: string + format: uint64 + description: ConfigResponse defines the response structure for the Config gRPC query. + cosmos.base.node.v1beta1.StatusResponse: + type: object + properties: + earliest_store_height: + type: string + format: uint64 + height: + type: string + format: uint64 + timestamp: + type: string + format: date-time + app_hash: + type: string + format: byte + validator_hash: + type: string + format: byte + description: StateResponse defines the response structure for the status of a node. + cosmos.gov.v1.Deposit: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + depositor: + type: string + description: depositor defines the deposit addresses from the proposals. + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: amount to be deposited by depositor. + description: |- + Deposit defines an amount deposited by an account address to an active + proposal. + cosmos.gov.v1.DepositParams: + type: object + properties: + min_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: Minimum deposit for a proposal to enter voting period. + max_deposit_period: + type: string + description: >- + Maximum period for Atom holders to deposit on a proposal. Initial + value: 2 + + months. + description: DepositParams defines the params for deposits on governance proposals. + cosmos.gov.v1.Params: + type: object + properties: + min_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: Minimum deposit for a proposal to enter voting period. + max_deposit_period: + type: string + description: >- + Maximum period for Atom holders to deposit on a proposal. Initial + value: 2 + + months. + voting_period: + type: string + description: Duration of the voting period. + quorum: + type: string + description: |- + Minimum percentage of total stake needed to vote for a result to be + considered valid. + threshold: + type: string + description: >- + Minimum proportion of Yes votes for proposal to pass. Default value: + 0.5. + veto_threshold: + type: string + description: |- + Minimum value of Veto votes to Total votes ratio for proposal to be + vetoed. Default value: 1/3. + min_initial_deposit_ratio: + type: string + description: >- + The ratio representing the proportion of the deposit value that must + be paid at proposal submission. + proposal_cancel_ratio: + type: string + description: >- + The cancel ratio which will not be returned back to the depositors + when a proposal is cancelled. + proposal_cancel_dest: + type: string + description: >- + The address which will receive (proposal_cancel_ratio * deposit) + proposal deposits. + + If empty, the (proposal_cancel_ratio * deposit) proposal deposits will + be burned. + expedited_voting_period: + type: string + description: Duration of the voting period of an expedited proposal. + expedited_threshold: + type: string + description: >- + Minimum proportion of Yes votes for proposal to pass. Default value: + 0.67. + expedited_min_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: Minimum expedited deposit for a proposal to enter voting period. + burn_vote_quorum: + type: boolean + title: burn deposits if a proposal does not meet quorum + burn_proposal_deposit_prevote: + type: boolean + title: burn deposits if the proposal does not enter voting period + burn_vote_veto: + type: boolean + title: burn deposits if quorum with vote type no_veto is met + min_deposit_ratio: + type: string + description: >- + The ratio representing the proportion of the deposit value minimum + that must be met when making a deposit. + + Default value: 0.01. Meaning that for a chain with a min_deposit of + 100stake, a deposit of 1stake would be + + required. + description: Params defines the parameters for the x/gov module. + cosmos.gov.v1.Proposal: + type: object + properties: + id: + type: string + format: uint64 + description: id defines the unique id of the proposal. + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up + a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages are the arbitrary messages to be executed if the proposal + passes. + status: + description: status defines the proposal status. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: |- + final_tally_result is the final tally result of the proposal. When + querying a proposal via gRPC, this field is not populated until the + proposal's voting period has ended. + type: object + properties: + yes_count: + type: string + description: yes_count is the number of yes votes on a proposal. + abstain_count: + type: string + description: abstain_count is the number of abstain votes on a proposal. + no_count: + type: string + description: no_count is the number of no votes on a proposal. + no_with_veto_count: + type: string + description: >- + no_with_veto_count is the number of no with veto votes on a + proposal. + submit_time: + type: string + format: date-time + description: submit_time is the time of proposal submission. + deposit_end_time: + type: string + format: date-time + description: deposit_end_time is the end time for deposition. + total_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: total_deposit is the total deposit on the proposal. + voting_start_time: + type: string + format: date-time + description: voting_start_time is the starting time to vote on a proposal. + voting_end_time: + type: string + format: date-time + description: voting_end_time is the end time of voting on a proposal. + metadata: + type: string + title: |- + metadata is any arbitrary metadata attached to the proposal. + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/gov#proposal-3 + title: + type: string + title: title is the title of the proposal + summary: + type: string + title: summary is a short summary of the proposal + proposer: + type: string + title: proposer is the address of the proposal sumbitter + expedited: + type: boolean + title: expedited defines if the proposal is expedited + failed_reason: + type: string + title: failed_reason defines the reason why the proposal failed + description: Proposal defines the core field members of a governance proposal. + cosmos.gov.v1.ProposalStatus: + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + description: |- + ProposalStatus enumerates the valid statuses of a proposal. + + - PROPOSAL_STATUS_UNSPECIFIED: PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. + - PROPOSAL_STATUS_DEPOSIT_PERIOD: PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit + period. + - PROPOSAL_STATUS_VOTING_PERIOD: PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting + period. + - PROPOSAL_STATUS_PASSED: PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has + passed. + - PROPOSAL_STATUS_REJECTED: PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has + been rejected. + - PROPOSAL_STATUS_FAILED: PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has + failed. + cosmos.gov.v1.QueryConstitutionResponse: + type: object + properties: + constitution: + type: string + title: >- + QueryConstitutionResponse is the response type for the Query/Constitution + RPC method + cosmos.gov.v1.QueryDepositResponse: + type: object + properties: + deposit: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + depositor: + type: string + description: depositor defines the deposit addresses from the proposals. + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: amount to be deposited by depositor. + description: |- + Deposit defines an amount deposited by an account address to an active + proposal. + description: >- + QueryDepositResponse is the response type for the Query/Deposit RPC + method. + cosmos.gov.v1.QueryDepositsResponse: + type: object + properties: + deposits: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + depositor: + type: string + description: depositor defines the deposit addresses from the proposals. + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: amount to be deposited by depositor. + description: >- + Deposit defines an amount deposited by an account address to an + active + + proposal. + description: deposits defines the requested deposits. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryDepositsResponse is the response type for the Query/Deposits RPC + method. + cosmos.gov.v1.QueryParamsResponse: + type: object + properties: + voting_params: + description: |- + Deprecated: Prefer to use `params` instead. + voting_params defines the parameters related to voting. + type: object + properties: + voting_period: + type: string + description: Duration of the voting period. + deposit_params: + description: |- + Deprecated: Prefer to use `params` instead. + deposit_params defines the parameters related to deposit. + type: object + properties: + min_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: Minimum deposit for a proposal to enter voting period. + max_deposit_period: + type: string + description: >- + Maximum period for Atom holders to deposit on a proposal. Initial + value: 2 + + months. + tally_params: + description: |- + Deprecated: Prefer to use `params` instead. + tally_params defines the parameters related to tally. + type: object + properties: + quorum: + type: string + description: >- + Minimum percentage of total stake needed to vote for a result to + be + + considered valid. + threshold: + type: string + description: >- + Minimum proportion of Yes votes for proposal to pass. Default + value: 0.5. + veto_threshold: + type: string + description: >- + Minimum value of Veto votes to Total votes ratio for proposal to + be + + vetoed. Default value: 1/3. + params: + description: params defines all the paramaters of x/gov module. + type: object + properties: + min_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: Minimum deposit for a proposal to enter voting period. + max_deposit_period: + type: string + description: >- + Maximum period for Atom holders to deposit on a proposal. Initial + value: 2 + + months. + voting_period: + type: string + description: Duration of the voting period. + quorum: + type: string + description: >- + Minimum percentage of total stake needed to vote for a result to + be + considered valid. + threshold: + type: string + description: >- + Minimum proportion of Yes votes for proposal to pass. Default + value: 0.5. + veto_threshold: + type: string + description: >- + Minimum value of Veto votes to Total votes ratio for proposal to + be + vetoed. Default value: 1/3. + min_initial_deposit_ratio: + type: string + description: >- + The ratio representing the proportion of the deposit value that + must be paid at proposal submission. + proposal_cancel_ratio: + type: string + description: >- + The cancel ratio which will not be returned back to the depositors + when a proposal is cancelled. + proposal_cancel_dest: + type: string + description: >- + The address which will receive (proposal_cancel_ratio * deposit) + proposal deposits. + + If empty, the (proposal_cancel_ratio * deposit) proposal deposits + will be burned. + expedited_voting_period: + type: string + description: Duration of the voting period of an expedited proposal. + expedited_threshold: + type: string + description: >- + Minimum proportion of Yes votes for proposal to pass. Default + value: 0.67. + expedited_min_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: Minimum expedited deposit for a proposal to enter voting period. + burn_vote_quorum: + type: boolean + title: burn deposits if a proposal does not meet quorum + burn_proposal_deposit_prevote: + type: boolean + title: burn deposits if the proposal does not enter voting period + burn_vote_veto: + type: boolean + title: burn deposits if quorum with vote type no_veto is met + min_deposit_ratio: + type: string + description: >- + The ratio representing the proportion of the deposit value minimum + that must be met when making a deposit. + + Default value: 0.01. Meaning that for a chain with a min_deposit + of 100stake, a deposit of 1stake would be + + required. + description: QueryParamsResponse is the response type for the Query/Params RPC method. + cosmos.gov.v1.QueryProposalResponse: + type: object + properties: + proposal: + type: object + properties: + id: + type: string + format: uint64 + description: id defines the unique id of the proposal. + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages are the arbitrary messages to be executed if the proposal + passes. + status: + description: status defines the proposal status. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result is the final tally result of the proposal. When + + querying a proposal via gRPC, this field is not populated until + the + + proposal's voting period has ended. + type: object + properties: + yes_count: + type: string + description: yes_count is the number of yes votes on a proposal. + abstain_count: + type: string + description: abstain_count is the number of abstain votes on a proposal. + no_count: + type: string + description: no_count is the number of no votes on a proposal. + no_with_veto_count: + type: string + description: >- + no_with_veto_count is the number of no with veto votes on a + proposal. + submit_time: + type: string + format: date-time + description: submit_time is the time of proposal submission. + deposit_end_time: + type: string + format: date-time + description: deposit_end_time is the end time for deposition. + total_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: total_deposit is the total deposit on the proposal. + voting_start_time: + type: string + format: date-time + description: voting_start_time is the starting time to vote on a proposal. + voting_end_time: + type: string + format: date-time + description: voting_end_time is the end time of voting on a proposal. + metadata: + type: string + title: |- + metadata is any arbitrary metadata attached to the proposal. + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/gov#proposal-3 + title: + type: string + title: title is the title of the proposal + summary: + type: string + title: summary is a short summary of the proposal + proposer: + type: string + title: proposer is the address of the proposal sumbitter + expedited: + type: boolean + title: expedited defines if the proposal is expedited + failed_reason: + type: string + title: failed_reason defines the reason why the proposal failed + description: Proposal defines the core field members of a governance proposal. + description: >- + QueryProposalResponse is the response type for the Query/Proposal RPC + method. + cosmos.gov.v1.QueryProposalsResponse: + type: object + properties: + proposals: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + description: id defines the unique id of the proposal. + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages are the arbitrary messages to be executed if the + proposal passes. + status: + description: status defines the proposal status. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result is the final tally result of the proposal. + When + + querying a proposal via gRPC, this field is not populated until + the + + proposal's voting period has ended. + type: object + properties: + yes_count: + type: string + description: yes_count is the number of yes votes on a proposal. + abstain_count: + type: string + description: abstain_count is the number of abstain votes on a proposal. + no_count: + type: string + description: no_count is the number of no votes on a proposal. + no_with_veto_count: + type: string + description: >- + no_with_veto_count is the number of no with veto votes on a + proposal. + submit_time: + type: string + format: date-time + description: submit_time is the time of proposal submission. + deposit_end_time: + type: string + format: date-time + description: deposit_end_time is the end time for deposition. + total_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: total_deposit is the total deposit on the proposal. + voting_start_time: + type: string + format: date-time + description: voting_start_time is the starting time to vote on a proposal. + voting_end_time: + type: string + format: date-time + description: voting_end_time is the end time of voting on a proposal. + metadata: + type: string + title: |- + metadata is any arbitrary metadata attached to the proposal. + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/gov#proposal-3 + title: + type: string + title: title is the title of the proposal + summary: + type: string + title: summary is a short summary of the proposal + proposer: + type: string + title: proposer is the address of the proposal sumbitter + expedited: + type: boolean + title: expedited defines if the proposal is expedited + failed_reason: + type: string + title: failed_reason defines the reason why the proposal failed + description: Proposal defines the core field members of a governance proposal. + description: proposals defines all the requested governance proposals. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: |- + QueryProposalsResponse is the response type for the Query/Proposals RPC + method. + cosmos.gov.v1.QueryTallyResultResponse: + type: object + properties: + tally: + description: tally defines the requested tally. + type: object + properties: + yes_count: + type: string + description: yes_count is the number of yes votes on a proposal. + abstain_count: + type: string + description: abstain_count is the number of abstain votes on a proposal. + no_count: + type: string + description: no_count is the number of no votes on a proposal. + no_with_veto_count: + type: string + description: >- + no_with_veto_count is the number of no with veto votes on a + proposal. + description: >- + QueryTallyResultResponse is the response type for the Query/Tally RPC + method. + cosmos.gov.v1.QueryVoteResponse: + type: object + properties: + vote: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + voter: + type: string + description: voter is the voter address of the proposal. + options: + type: array + items: + type: object + properties: + option: + description: >- + option defines the valid vote options, it must not contain + duplicate vote options. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + weight: + type: string + description: weight is the vote weight associated with the vote option. + description: WeightedVoteOption defines a unit of vote for vote split. + description: options is the weighted vote options. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the vote. + + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/gov#vote-5 + description: |- + Vote defines a vote on a governance proposal. + A Vote consists of a proposal ID, the voter, and the vote option. + description: QueryVoteResponse is the response type for the Query/Vote RPC method. + cosmos.gov.v1.QueryVotesResponse: + type: object + properties: + votes: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + voter: + type: string + description: voter is the voter address of the proposal. + options: + type: array + items: + type: object + properties: + option: + description: >- + option defines the valid vote options, it must not contain + duplicate vote options. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + weight: + type: string + description: weight is the vote weight associated with the vote option. + description: WeightedVoteOption defines a unit of vote for vote split. + description: options is the weighted vote options. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the vote. + + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/gov#vote-5 + description: |- + Vote defines a vote on a governance proposal. + A Vote consists of a proposal ID, the voter, and the vote option. + description: votes defines the queried votes. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: QueryVotesResponse is the response type for the Query/Votes RPC method. + cosmos.gov.v1.TallyParams: + type: object + properties: + quorum: + type: string + description: |- + Minimum percentage of total stake needed to vote for a result to be + considered valid. + threshold: + type: string + description: >- + Minimum proportion of Yes votes for proposal to pass. Default value: + 0.5. + veto_threshold: + type: string + description: |- + Minimum value of Veto votes to Total votes ratio for proposal to be + vetoed. Default value: 1/3. + description: TallyParams defines the params for tallying votes on governance proposals. + cosmos.gov.v1.TallyResult: + type: object + properties: + yes_count: + type: string + description: yes_count is the number of yes votes on a proposal. + abstain_count: + type: string + description: abstain_count is the number of abstain votes on a proposal. + no_count: + type: string + description: no_count is the number of no votes on a proposal. + no_with_veto_count: + type: string + description: no_with_veto_count is the number of no with veto votes on a proposal. + description: TallyResult defines a standard tally for a governance proposal. + cosmos.gov.v1.Vote: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + voter: + type: string + description: voter is the voter address of the proposal. + options: + type: array + items: + type: object + properties: + option: + description: >- + option defines the valid vote options, it must not contain + duplicate vote options. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + weight: + type: string + description: weight is the vote weight associated with the vote option. + description: WeightedVoteOption defines a unit of vote for vote split. + description: options is the weighted vote options. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the vote. + + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/gov#vote-5 + description: |- + Vote defines a vote on a governance proposal. + A Vote consists of a proposal ID, the voter, and the vote option. + cosmos.gov.v1.VoteOption: + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + description: >- + VoteOption enumerates the valid vote options for a given governance + proposal. + + - VOTE_OPTION_UNSPECIFIED: VOTE_OPTION_UNSPECIFIED defines a no-op vote option. + - VOTE_OPTION_YES: VOTE_OPTION_YES defines a yes vote option. + - VOTE_OPTION_ABSTAIN: VOTE_OPTION_ABSTAIN defines an abstain vote option. + - VOTE_OPTION_NO: VOTE_OPTION_NO defines a no vote option. + - VOTE_OPTION_NO_WITH_VETO: VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. + cosmos.gov.v1.VotingParams: + type: object + properties: + voting_period: + type: string + description: Duration of the voting period. + description: VotingParams defines the params for voting on governance proposals. + cosmos.gov.v1.WeightedVoteOption: + type: object + properties: + option: + description: >- + option defines the valid vote options, it must not contain duplicate + vote options. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + weight: + type: string + description: weight is the vote weight associated with the vote option. + description: WeightedVoteOption defines a unit of vote for vote split. + cosmos.gov.v1beta1.Deposit: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + depositor: + type: string + description: depositor defines the deposit addresses from the proposals. + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: amount to be deposited by depositor. + description: |- + Deposit defines an amount deposited by an account address to an active + proposal. + cosmos.gov.v1beta1.DepositParams: + type: object + properties: + min_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: Minimum deposit for a proposal to enter voting period. + max_deposit_period: + type: string + description: >- + Maximum period for Atom holders to deposit on a proposal. Initial + value: 2 + + months. + description: DepositParams defines the params for deposits on governance proposals. + cosmos.gov.v1beta1.Proposal: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + content: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + status: + description: status defines the proposal status. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: |- + final_tally_result is the final tally result of the proposal. When + querying a proposal via gRPC, this field is not populated until the + proposal's voting period has ended. + type: object + properties: + 'yes': + type: string + description: yes is the number of yes votes on a proposal. + abstain: + type: string + description: abstain is the number of abstain votes on a proposal. + 'no': + type: string + description: no is the number of no votes on a proposal. + no_with_veto: + type: string + description: no_with_veto is the number of no with veto votes on a proposal. + submit_time: + type: string + format: date-time + description: submit_time is the time of proposal submission. + deposit_end_time: + type: string + format: date-time + description: deposit_end_time is the end time for deposition. + total_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: total_deposit is the total deposit on the proposal. + voting_start_time: + type: string + format: date-time + description: voting_start_time is the starting time to vote on a proposal. + voting_end_time: + type: string + format: date-time + description: voting_end_time is the end time of voting on a proposal. + description: Proposal defines the core field members of a governance proposal. + cosmos.gov.v1beta1.ProposalStatus: + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + description: |- + ProposalStatus enumerates the valid statuses of a proposal. + + - PROPOSAL_STATUS_UNSPECIFIED: PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. + - PROPOSAL_STATUS_DEPOSIT_PERIOD: PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit + period. + - PROPOSAL_STATUS_VOTING_PERIOD: PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting + period. + - PROPOSAL_STATUS_PASSED: PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has + passed. + - PROPOSAL_STATUS_REJECTED: PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has + been rejected. + - PROPOSAL_STATUS_FAILED: PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has + failed. + cosmos.gov.v1beta1.QueryDepositResponse: + type: object + properties: + deposit: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + depositor: + type: string + description: depositor defines the deposit addresses from the proposals. + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: amount to be deposited by depositor. + description: |- + Deposit defines an amount deposited by an account address to an active + proposal. + description: >- + QueryDepositResponse is the response type for the Query/Deposit RPC + method. + cosmos.gov.v1beta1.QueryDepositsResponse: + type: object + properties: + deposits: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + depositor: + type: string + description: depositor defines the deposit addresses from the proposals. + amount: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: amount to be deposited by depositor. + description: >- + Deposit defines an amount deposited by an account address to an + active + + proposal. + description: deposits defines the requested deposits. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryDepositsResponse is the response type for the Query/Deposits RPC + method. + cosmos.gov.v1beta1.QueryParamsResponse: + type: object + properties: + voting_params: + description: voting_params defines the parameters related to voting. + type: object + properties: + voting_period: + type: string + description: Duration of the voting period. + deposit_params: + description: deposit_params defines the parameters related to deposit. + type: object + properties: + min_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: Minimum deposit for a proposal to enter voting period. + max_deposit_period: + type: string + description: >- + Maximum period for Atom holders to deposit on a proposal. Initial + value: 2 + + months. + tally_params: + description: tally_params defines the parameters related to tally. + type: object + properties: + quorum: + type: string + format: byte + description: >- + Minimum percentage of total stake needed to vote for a result to + be + + considered valid. + threshold: + type: string + format: byte + description: >- + Minimum proportion of Yes votes for proposal to pass. Default + value: 0.5. + veto_threshold: + type: string + format: byte + description: >- + Minimum value of Veto votes to Total votes ratio for proposal to + be + + vetoed. Default value: 1/3. + description: QueryParamsResponse is the response type for the Query/Params RPC method. + cosmos.gov.v1beta1.QueryProposalResponse: + type: object + properties: + proposal: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + content: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + status: + description: status defines the proposal status. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result is the final tally result of the proposal. When + + querying a proposal via gRPC, this field is not populated until + the + + proposal's voting period has ended. + type: object + properties: + 'yes': + type: string + description: yes is the number of yes votes on a proposal. + abstain: + type: string + description: abstain is the number of abstain votes on a proposal. + 'no': + type: string + description: no is the number of no votes on a proposal. + no_with_veto: + type: string + description: >- + no_with_veto is the number of no with veto votes on a + proposal. + submit_time: + type: string + format: date-time + description: submit_time is the time of proposal submission. + deposit_end_time: + type: string + format: date-time + description: deposit_end_time is the end time for deposition. + total_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: total_deposit is the total deposit on the proposal. + voting_start_time: + type: string + format: date-time + description: voting_start_time is the starting time to vote on a proposal. + voting_end_time: + type: string + format: date-time + description: voting_end_time is the end time of voting on a proposal. + description: Proposal defines the core field members of a governance proposal. + description: >- + QueryProposalResponse is the response type for the Query/Proposal RPC + method. + cosmos.gov.v1beta1.QueryProposalsResponse: + type: object + properties: + proposals: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + content: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + status: + description: status defines the proposal status. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_DEPOSIT_PERIOD + - PROPOSAL_STATUS_VOTING_PERIOD + - PROPOSAL_STATUS_PASSED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_FAILED + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result is the final tally result of the proposal. + When + + querying a proposal via gRPC, this field is not populated until + the + + proposal's voting period has ended. + type: object + properties: + 'yes': + type: string + description: yes is the number of yes votes on a proposal. + abstain: + type: string + description: abstain is the number of abstain votes on a proposal. + 'no': + type: string + description: no is the number of no votes on a proposal. + no_with_veto: + type: string + description: >- + no_with_veto is the number of no with veto votes on a + proposal. + submit_time: + type: string + format: date-time + description: submit_time is the time of proposal submission. + deposit_end_time: + type: string + format: date-time + description: deposit_end_time is the end time for deposition. + total_deposit: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: total_deposit is the total deposit on the proposal. + voting_start_time: + type: string + format: date-time + description: voting_start_time is the starting time to vote on a proposal. + voting_end_time: + type: string + format: date-time + description: voting_end_time is the end time of voting on a proposal. + description: Proposal defines the core field members of a governance proposal. + description: proposals defines all the requested governance proposals. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: |- + QueryProposalsResponse is the response type for the Query/Proposals RPC + method. + cosmos.gov.v1beta1.QueryTallyResultResponse: + type: object + properties: + tally: + description: tally defines the requested tally. + type: object + properties: + 'yes': + type: string + description: yes is the number of yes votes on a proposal. + abstain: + type: string + description: abstain is the number of abstain votes on a proposal. + 'no': + type: string + description: no is the number of no votes on a proposal. + no_with_veto: + type: string + description: no_with_veto is the number of no with veto votes on a proposal. + description: >- + QueryTallyResultResponse is the response type for the Query/Tally RPC + method. + cosmos.gov.v1beta1.QueryVoteResponse: + type: object + properties: + vote: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + voter: + type: string + description: voter is the voter address of the proposal. + option: + description: >- + Deprecated: Prefer to use `options` instead. This field is set in + queries + + if and only if `len(options) == 1` and that option has weight 1. + In all + + other cases, this field will default to VOTE_OPTION_UNSPECIFIED. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + options: + type: array + items: + type: object + properties: + option: + description: >- + option defines the valid vote options, it must not contain + duplicate vote options. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + weight: + type: string + description: weight is the vote weight associated with the vote option. + description: WeightedVoteOption defines a unit of vote for vote split. + description: options is the weighted vote options. + description: |- + Vote defines a vote on a governance proposal. + A Vote consists of a proposal ID, the voter, and the vote option. + description: QueryVoteResponse is the response type for the Query/Vote RPC method. + cosmos.gov.v1beta1.QueryVotesResponse: + type: object + properties: + votes: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + voter: + type: string + description: voter is the voter address of the proposal. + option: + description: >- + Deprecated: Prefer to use `options` instead. This field is set + in queries + + if and only if `len(options) == 1` and that option has weight 1. + In all + + other cases, this field will default to VOTE_OPTION_UNSPECIFIED. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + options: + type: array + items: + type: object + properties: + option: + description: >- + option defines the valid vote options, it must not contain + duplicate vote options. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + weight: + type: string + description: weight is the vote weight associated with the vote option. + description: WeightedVoteOption defines a unit of vote for vote split. + description: options is the weighted vote options. + description: |- + Vote defines a vote on a governance proposal. + A Vote consists of a proposal ID, the voter, and the vote option. + description: votes defines the queried votes. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: QueryVotesResponse is the response type for the Query/Votes RPC method. + cosmos.gov.v1beta1.TallyParams: + type: object + properties: + quorum: + type: string + format: byte + description: |- + Minimum percentage of total stake needed to vote for a result to be + considered valid. + threshold: + type: string + format: byte + description: >- + Minimum proportion of Yes votes for proposal to pass. Default value: + 0.5. + veto_threshold: + type: string + format: byte + description: |- + Minimum value of Veto votes to Total votes ratio for proposal to be + vetoed. Default value: 1/3. + description: TallyParams defines the params for tallying votes on governance proposals. + cosmos.gov.v1beta1.TallyResult: + type: object + properties: + 'yes': + type: string + description: yes is the number of yes votes on a proposal. + abstain: + type: string + description: abstain is the number of abstain votes on a proposal. + 'no': + type: string + description: no is the number of no votes on a proposal. + no_with_veto: + type: string + description: no_with_veto is the number of no with veto votes on a proposal. + description: TallyResult defines a standard tally for a governance proposal. + cosmos.gov.v1beta1.Vote: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal_id defines the unique id of the proposal. + voter: + type: string + description: voter is the voter address of the proposal. + option: + description: >- + Deprecated: Prefer to use `options` instead. This field is set in + queries + + if and only if `len(options) == 1` and that option has weight 1. In + all + + other cases, this field will default to VOTE_OPTION_UNSPECIFIED. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + options: + type: array + items: + type: object + properties: + option: + description: >- + option defines the valid vote options, it must not contain + duplicate vote options. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + weight: + type: string + description: weight is the vote weight associated with the vote option. + description: WeightedVoteOption defines a unit of vote for vote split. + description: options is the weighted vote options. + description: |- + Vote defines a vote on a governance proposal. + A Vote consists of a proposal ID, the voter, and the vote option. + cosmos.gov.v1beta1.VoteOption: + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + description: >- + VoteOption enumerates the valid vote options for a given governance + proposal. + + - VOTE_OPTION_UNSPECIFIED: VOTE_OPTION_UNSPECIFIED defines a no-op vote option. + - VOTE_OPTION_YES: VOTE_OPTION_YES defines a yes vote option. + - VOTE_OPTION_ABSTAIN: VOTE_OPTION_ABSTAIN defines an abstain vote option. + - VOTE_OPTION_NO: VOTE_OPTION_NO defines a no vote option. + - VOTE_OPTION_NO_WITH_VETO: VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. + cosmos.gov.v1beta1.VotingParams: + type: object + properties: + voting_period: + type: string + description: Duration of the voting period. + description: VotingParams defines the params for voting on governance proposals. + cosmos.gov.v1beta1.WeightedVoteOption: + type: object + properties: + option: + description: >- + option defines the valid vote options, it must not contain duplicate + vote options. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + weight: + type: string + description: weight is the vote weight associated with the vote option. + description: WeightedVoteOption defines a unit of vote for vote split. + cosmos.feegrant.v1beta1.Grant: + type: object + properties: + granter: + type: string + description: >- + granter is the address of the user granting an allowance of their + funds. + grantee: + type: string + description: >- + grantee is the address of the user being granted an allowance of + another user's funds. + allowance: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: Grant is stored in the KVStore to record a grant with full context + cosmos.feegrant.v1beta1.QueryAllowanceResponse: + type: object + properties: + allowance: + description: allowance is a allowance granted for grantee by granter. + type: object + properties: + granter: + type: string + description: >- + granter is the address of the user granting an allowance of their + funds. + grantee: + type: string + description: >- + grantee is the address of the user being granted an allowance of + another user's funds. + allowance: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: Grant is stored in the KVStore to record a grant with full context + description: >- + QueryAllowanceResponse is the response type for the Query/Allowance RPC + method. + cosmos.feegrant.v1beta1.QueryAllowancesByGranterResponse: + type: object + properties: + allowances: + type: array + items: + type: object + properties: + granter: + type: string + description: >- + granter is the address of the user granting an allowance of + their funds. + grantee: + type: string + description: >- + grantee is the address of the user being granted an allowance of + another user's funds. + allowance: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: Grant is stored in the KVStore to record a grant with full context + description: allowances that have been issued by the granter. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryAllowancesByGranterResponse is the response type for the + Query/AllowancesByGranter RPC method. + cosmos.feegrant.v1beta1.QueryAllowancesResponse: + type: object + properties: + allowances: + type: array + items: + type: object + properties: + granter: + type: string + description: >- + granter is the address of the user granting an allowance of + their funds. + grantee: + type: string + description: >- + grantee is the address of the user being granted an allowance of + another user's funds. + allowance: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: Grant is stored in the KVStore to record a grant with full context + description: allowances are allowance's granted for grantee by granter. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryAllowancesResponse is the response type for the Query/Allowances RPC + method. + cosmos.app.v1alpha1.Config: + type: object + properties: + modules: + type: array + items: + type: object + properties: + name: + type: string + description: >- + name is the unique name of the module within the app. It should + be a name + + that persists between different versions of a module so that + modules + + can be smoothly upgraded to new versions. + + + For example, for the module cosmos.bank.module.v1.Module, we may + chose + + to simply name the module "bank" in the app. When we upgrade to + + cosmos.bank.module.v2.Module, the app-specific name "bank" stays + the same + + and the framework knows that the v2 module should receive all + the same state + + that the v1 module had. Note: modules should provide info on + which versions + + they can migrate from in the ModuleDescriptor.can_migration_from + field. + config: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + golang_bindings: + type: array + items: + type: object + properties: + interface_type: + type: string + title: >- + interface_type is the interface type which will be bound + to a specific implementation type + implementation: + type: string + title: >- + implementation is the implementing type which will be + supplied when an input of type interface is requested + description: >- + GolangBinding is an explicit interface type to implementing + type binding for dependency injection. + description: >- + golang_bindings specifies explicit interface to implementation + type bindings which + + depinject uses to resolve interface inputs to provider + functions. The scope of this + + field's configuration is module specific. + description: ModuleConfig is a module configuration for an app. + description: modules are the module configurations for the app. + golang_bindings: + type: array + items: + type: object + properties: + interface_type: + type: string + title: >- + interface_type is the interface type which will be bound to a + specific implementation type + implementation: + type: string + title: >- + implementation is the implementing type which will be supplied + when an input of type interface is requested + description: >- + GolangBinding is an explicit interface type to implementing type + binding for dependency injection. + description: >- + golang_bindings specifies explicit interface to implementation type + bindings which + + depinject uses to resolve interface inputs to provider functions. The + scope of this + + field's configuration is global (not module specific). + description: >- + Config represents the configuration for a Cosmos SDK ABCI app. + + It is intended that all state machine logic including the version of + + baseapp and tx handlers (and possibly even Tendermint) that an app needs + + can be described in a config object. For compatibility, the framework + should + + allow a mixture of declarative and imperative app wiring, however, apps + + that strive for the maximum ease of maintainability should be able to + describe + + their state machine with a config object alone. + cosmos.app.v1alpha1.GolangBinding: + type: object + properties: + interface_type: + type: string + title: >- + interface_type is the interface type which will be bound to a specific + implementation type + implementation: + type: string + title: >- + implementation is the implementing type which will be supplied when an + input of type interface is requested + description: >- + GolangBinding is an explicit interface type to implementing type binding + for dependency injection. + cosmos.app.v1alpha1.ModuleConfig: + type: object + properties: + name: + type: string + description: >- + name is the unique name of the module within the app. It should be a + name + + that persists between different versions of a module so that modules + + can be smoothly upgraded to new versions. + + + For example, for the module cosmos.bank.module.v1.Module, we may chose + + to simply name the module "bank" in the app. When we upgrade to + + cosmos.bank.module.v2.Module, the app-specific name "bank" stays the + same + + and the framework knows that the v2 module should receive all the same + state + + that the v1 module had. Note: modules should provide info on which + versions + + they can migrate from in the ModuleDescriptor.can_migration_from + field. + config: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + golang_bindings: + type: array + items: + type: object + properties: + interface_type: + type: string + title: >- + interface_type is the interface type which will be bound to a + specific implementation type + implementation: + type: string + title: >- + implementation is the implementing type which will be supplied + when an input of type interface is requested + description: >- + GolangBinding is an explicit interface type to implementing type + binding for dependency injection. + description: >- + golang_bindings specifies explicit interface to implementation type + bindings which + + depinject uses to resolve interface inputs to provider functions. The + scope of this + + field's configuration is module specific. + description: ModuleConfig is a module configuration for an app. + cosmos.app.v1alpha1.QueryConfigResponse: + type: object + properties: + config: + description: config is the current app config. + type: object + properties: + modules: + type: array + items: + type: object + properties: + name: + type: string + description: >- + name is the unique name of the module within the app. It + should be a name + + that persists between different versions of a module so that + modules + + can be smoothly upgraded to new versions. + + + For example, for the module cosmos.bank.module.v1.Module, we + may chose + + to simply name the module "bank" in the app. When we upgrade + to + + cosmos.bank.module.v2.Module, the app-specific name "bank" + stays the same + + and the framework knows that the v2 module should receive + all the same state + + that the v1 module had. Note: modules should provide info on + which versions + + they can migrate from in the + ModuleDescriptor.can_migration_from field. + config: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + golang_bindings: + type: array + items: + type: object + properties: + interface_type: + type: string + title: >- + interface_type is the interface type which will be + bound to a specific implementation type + implementation: + type: string + title: >- + implementation is the implementing type which will be + supplied when an input of type interface is requested + description: >- + GolangBinding is an explicit interface type to + implementing type binding for dependency injection. + description: >- + golang_bindings specifies explicit interface to + implementation type bindings which + + depinject uses to resolve interface inputs to provider + functions. The scope of this + + field's configuration is module specific. + description: ModuleConfig is a module configuration for an app. + description: modules are the module configurations for the app. + golang_bindings: + type: array + items: + type: object + properties: + interface_type: + type: string + title: >- + interface_type is the interface type which will be bound to + a specific implementation type + implementation: + type: string + title: >- + implementation is the implementing type which will be + supplied when an input of type interface is requested + description: >- + GolangBinding is an explicit interface type to implementing type + binding for dependency injection. + description: >- + golang_bindings specifies explicit interface to implementation + type bindings which + + depinject uses to resolve interface inputs to provider functions. + The scope of this + + field's configuration is global (not module specific). + description: QueryConfigResponse is the Query/Config response type. + cosmos.evidence.v1beta1.QueryAllEvidenceResponse: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up + a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: evidence returns all evidences. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryAllEvidenceResponse is the response type for the Query/AllEvidence + RPC + + method. + cosmos.evidence.v1beta1.QueryEvidenceResponse: + type: object + properties: + evidence: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + QueryEvidenceResponse is the response type for the Query/Evidence RPC + method. + cosmos.nft.v1beta1.Class: + type: object + properties: + id: + type: string + title: >- + id defines the unique identifier of the NFT classification, similar to + the contract address of ERC721 + name: + type: string + title: >- + name defines the human-readable name of the NFT classification. + Optional + symbol: + type: string + title: symbol is an abbreviated name for nft classification. Optional + description: + type: string + title: description is a brief description of nft classification. Optional + uri: + type: string + title: >- + uri for the class metadata stored off chain. It can define schema for + Class and NFT `Data` attributes. Optional + uri_hash: + type: string + title: uri_hash is a hash of the document pointed by uri. Optional + data: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: data is the app specific metadata of the NFT class. Optional + description: Class defines the class of the nft type. + cosmos.nft.v1beta1.NFT: + type: object + properties: + class_id: + type: string + title: >- + class_id associated with the NFT, similar to the contract address of + ERC721 + id: + type: string + title: id is a unique identifier of the NFT + uri: + type: string + title: uri for the NFT metadata stored off chain + uri_hash: + type: string + title: uri_hash is a hash of the document pointed by uri + data: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: data is an app specific data of the NFT. Optional + description: NFT defines the NFT. + cosmos.nft.v1beta1.QueryBalanceResponse: + type: object + properties: + amount: + type: string + format: uint64 + title: amount is the number of all NFTs of a given class owned by the owner + title: QueryBalanceResponse is the response type for the Query/Balance RPC method + cosmos.nft.v1beta1.QueryClassResponse: + type: object + properties: + class: + type: object + properties: + id: + type: string + title: >- + id defines the unique identifier of the NFT classification, + similar to the contract address of ERC721 + name: + type: string + title: >- + name defines the human-readable name of the NFT classification. + Optional + symbol: + type: string + title: symbol is an abbreviated name for nft classification. Optional + description: + type: string + title: description is a brief description of nft classification. Optional + uri: + type: string + title: >- + uri for the class metadata stored off chain. It can define schema + for Class and NFT `Data` attributes. Optional + uri_hash: + type: string + title: uri_hash is a hash of the document pointed by uri. Optional + data: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: data is the app specific metadata of the NFT class. Optional + description: Class defines the class of the nft type. + title: QueryClassResponse is the response type for the Query/Class RPC method + cosmos.nft.v1beta1.QueryClassesResponse: + type: object + properties: + classes: + type: array + items: + type: object + properties: + id: + type: string + title: >- + id defines the unique identifier of the NFT classification, + similar to the contract address of ERC721 + name: + type: string + title: >- + name defines the human-readable name of the NFT classification. + Optional + symbol: + type: string + title: symbol is an abbreviated name for nft classification. Optional + description: + type: string + title: >- + description is a brief description of nft classification. + Optional + uri: + type: string + title: >- + uri for the class metadata stored off chain. It can define + schema for Class and NFT `Data` attributes. Optional + uri_hash: + type: string + title: uri_hash is a hash of the document pointed by uri. Optional + data: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: data is the app specific metadata of the NFT class. Optional + description: Class defines the class of the nft type. + description: class defines the class of the nft type. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: QueryClassesResponse is the response type for the Query/Classes RPC method + cosmos.nft.v1beta1.QueryNFTResponse: + type: object + properties: + nft: + type: object + properties: + class_id: + type: string + title: >- + class_id associated with the NFT, similar to the contract address + of ERC721 + id: + type: string + title: id is a unique identifier of the NFT + uri: + type: string + title: uri for the NFT metadata stored off chain + uri_hash: + type: string + title: uri_hash is a hash of the document pointed by uri + data: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: data is an app specific data of the NFT. Optional + description: NFT defines the NFT. + title: owner is the owner address of the nft + title: QueryNFTResponse is the response type for the Query/NFT RPC method + cosmos.nft.v1beta1.QueryNFTsResponse: + type: object + properties: + nfts: + type: array + items: + type: object + properties: + class_id: + type: string + title: >- + class_id associated with the NFT, similar to the contract + address of ERC721 + id: + type: string + title: id is a unique identifier of the NFT + uri: + type: string + title: uri for the NFT metadata stored off chain + uri_hash: + type: string + title: uri_hash is a hash of the document pointed by uri + data: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: data is an app specific data of the NFT. Optional + description: NFT defines the NFT. + title: NFT defines the NFT + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: QueryNFTsResponse is the response type for the Query/NFTs RPC methods + cosmos.nft.v1beta1.QueryOwnerResponse: + type: object + properties: + owner: + type: string + title: owner is the owner address of the nft + title: QueryOwnerResponse is the response type for the Query/Owner RPC method + cosmos.nft.v1beta1.QuerySupplyResponse: + type: object + properties: + amount: + type: string + format: uint64 + title: amount is the number of all NFTs from the given class + title: QuerySupplyResponse is the response type for the Query/Supply RPC method + cosmos.auth.v1beta1.AddressBytesToStringResponse: + type: object + properties: + address_string: + type: string + description: >- + AddressBytesToStringResponse is the response type for AddressString rpc + method. + cosmos.auth.v1beta1.AddressStringToBytesResponse: + type: object + properties: + address_bytes: + type: string + format: byte + description: >- + AddressStringToBytesResponse is the response type for AddressBytes rpc + method. + cosmos.auth.v1beta1.BaseAccount: + type: object + properties: + address: + type: string + pub_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + account_number: + type: string + format: uint64 + sequence: + type: string + format: uint64 + description: >- + BaseAccount defines a base account type. It contains all the necessary + fields + + for basic account functionality. Any custom account type should extend + this + + type for additional functionality (e.g. vesting). + cosmos.auth.v1beta1.Bech32PrefixResponse: + type: object + properties: + bech32_prefix: + type: string + description: Bech32PrefixResponse is the response type for Bech32Prefix rpc method. + cosmos.auth.v1beta1.Params: + type: object + properties: + max_memo_characters: + type: string + format: uint64 + tx_sig_limit: + type: string + format: uint64 + tx_size_cost_per_byte: + type: string + format: uint64 + sig_verify_cost_ed25519: + type: string + format: uint64 + sig_verify_cost_secp256k1: + type: string + format: uint64 + description: Params defines the parameters for the auth module. + cosmos.auth.v1beta1.QueryAccountAddressByIDResponse: + type: object + properties: + account_address: + type: string + title: >- + QueryAccountAddressByIDResponse is the response type for + AccountAddressByID rpc method + cosmos.auth.v1beta1.QueryAccountInfoResponse: + type: object + properties: + info: + description: info is the account info which is represented by BaseAccount. + type: object + properties: + address: + type: string + pub_key: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + account_number: + type: string + format: uint64 + sequence: + type: string + format: uint64 + description: QueryAccountInfoResponse is the Query/AccountInfo response type. + cosmos.auth.v1beta1.QueryAccountResponse: + type: object + properties: + account: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + QueryAccountResponse is the response type for the Query/Account RPC + method. + cosmos.auth.v1beta1.QueryAccountsResponse: + type: object + properties: + accounts: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up + a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: accounts are the existing accounts + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryAccountsResponse is the response type for the Query/Accounts RPC + method. + cosmos.auth.v1beta1.QueryModuleAccountByNameResponse: + type: object + properties: + account: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + QueryModuleAccountByNameResponse is the response type for the + Query/ModuleAccountByName RPC method. + cosmos.auth.v1beta1.QueryModuleAccountsResponse: + type: object + properties: + accounts: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up + a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + QueryModuleAccountsResponse is the response type for the + Query/ModuleAccounts RPC method. + cosmos.auth.v1beta1.QueryParamsResponse: + type: object + properties: + params: + description: params defines the parameters of the module. + type: object + properties: + max_memo_characters: + type: string + format: uint64 + tx_sig_limit: + type: string + format: uint64 + tx_size_cost_per_byte: + type: string + format: uint64 + sig_verify_cost_ed25519: + type: string + format: uint64 + sig_verify_cost_secp256k1: + type: string + format: uint64 + description: QueryParamsResponse is the response type for the Query/Params RPC method. + cosmos.group.v1.GroupInfo: + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group's admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata to attached to the group. + + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#group-1 + version: + type: string + format: uint64 + title: >- + version is used to track changes to a group's membership structure + that + + would break existing proposals. Whenever any members weight is + changed, + + or any member is added or removed this version is incremented and will + + cause proposals based on older versions of this group to fail + total_weight: + type: string + description: total_weight is the sum of the group members' weights. + created_at: + type: string + format: date-time + description: created_at is a timestamp specifying when a group was created. + description: GroupInfo represents the high-level on-chain information for a group. + cosmos.group.v1.GroupMember: + type: object + properties: + group_id: + type: string + format: uint64 + description: group_id is the unique ID of the group. + member: + description: member is the member data. + type: object + properties: + address: + type: string + description: address is the member's account address. + weight: + type: string + description: >- + weight is the member's voting weight that should be greater than + 0. + metadata: + type: string + description: metadata is any arbitrary metadata attached to the member. + added_at: + type: string + format: date-time + description: added_at is a timestamp specifying when a member was added. + description: GroupMember represents the relationship between a group and a member. + cosmos.group.v1.GroupPolicyInfo: + type: object + properties: + address: + type: string + description: address is the account address of group policy. + group_id: + type: string + format: uint64 + description: group_id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group admin. + metadata: + type: string + title: |- + metadata is any arbitrary metadata attached to the group policy. + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#decision-policy-1 + version: + type: string + format: uint64 + description: >- + version is used to track changes to a group's GroupPolicyInfo + structure that + + would create a different result on a running proposal. + decision_policy: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + created_at: + type: string + format: date-time + description: created_at is a timestamp specifying when a group policy was created. + description: >- + GroupPolicyInfo represents the high-level on-chain information for a group + policy. + cosmos.group.v1.Member: + type: object + properties: + address: + type: string + description: address is the member's account address. + weight: + type: string + description: weight is the member's voting weight that should be greater than 0. + metadata: + type: string + description: metadata is any arbitrary metadata attached to the member. + added_at: + type: string + format: date-time + description: added_at is a timestamp specifying when a member was added. + description: |- + Member represents a group member with an account address, + non-zero weight, metadata and added_at timestamp. + cosmos.group.v1.Proposal: + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique id of the proposal. + group_policy_address: + type: string + description: group_policy_address is the account address of group policy. + metadata: + type: string + title: |- + metadata is any arbitrary metadata attached to the proposal. + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#proposal-4 + proposers: + type: array + items: + type: string + description: proposers are the account addresses of the proposers. + submit_time: + type: string + format: date-time + description: submit_time is a timestamp specifying when a proposal was submitted. + group_version: + type: string + format: uint64 + description: |- + group_version tracks the version of the group at proposal submission. + This field is here for informational purposes only. + group_policy_version: + type: string + format: uint64 + description: >- + group_policy_version tracks the version of the group policy at + proposal submission. + + When a decision policy is changed, existing proposals from previous + policy + + versions will become invalid with the `ABORTED` status. + + This field is here for informational purposes only. + status: + description: >- + status represents the high level position in the life cycle of the + proposal. Initial value is Submitted. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_SUBMITTED + - PROPOSAL_STATUS_ACCEPTED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_ABORTED + - PROPOSAL_STATUS_WITHDRAWN + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result contains the sums of all weighted votes for this + + proposal for each vote option. It is empty at submission, and only + + populated after tallying, at voting period end or at proposal + execution, + + whichever happens first. + type: object + properties: + yes_count: + type: string + description: yes_count is the weighted sum of yes votes. + abstain_count: + type: string + description: abstain_count is the weighted sum of abstainers. + no_count: + type: string + description: no_count is the weighted sum of no votes. + no_with_veto_count: + type: string + description: no_with_veto_count is the weighted sum of veto. + voting_period_end: + type: string + format: date-time + description: >- + voting_period_end is the timestamp before which voting must be done. + + Unless a successful MsgExec is called before (to execute a proposal + whose + + tally is successful before the voting period ends), tallying will be + done + + at this point, and the `final_tally_result`and `status` fields will be + + accordingly updated. + executor_result: + description: >- + executor_result is the final result of the proposal execution. Initial + value is NotRun. + type: string + enum: + - PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED + - PROPOSAL_EXECUTOR_RESULT_NOT_RUN + - PROPOSAL_EXECUTOR_RESULT_SUCCESS + - PROPOSAL_EXECUTOR_RESULT_FAILURE + default: PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up + a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of `sdk.Msg`s that will be executed if the proposal + passes. + title: + type: string + title: title is the title of the proposal + summary: + type: string + title: summary is a short summary of the proposal + description: >- + Proposal defines a group proposal. Any member of a group can submit a + proposal + + for a group policy to decide upon. + + A proposal consists of a set of `sdk.Msg`s that will be executed if the + proposal + + passes as well as some optional metadata associated with the proposal. + cosmos.group.v1.ProposalExecutorResult: + type: string + enum: + - PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED + - PROPOSAL_EXECUTOR_RESULT_NOT_RUN + - PROPOSAL_EXECUTOR_RESULT_SUCCESS + - PROPOSAL_EXECUTOR_RESULT_FAILURE + default: PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED + description: |- + ProposalExecutorResult defines types of proposal executor results. + + - PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED: An empty value is not allowed. + - PROPOSAL_EXECUTOR_RESULT_NOT_RUN: We have not yet run the executor. + - PROPOSAL_EXECUTOR_RESULT_SUCCESS: The executor was successful and proposed action updated state. + - PROPOSAL_EXECUTOR_RESULT_FAILURE: The executor returned an error and proposed action didn't update state. + cosmos.group.v1.ProposalStatus: + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_SUBMITTED + - PROPOSAL_STATUS_ACCEPTED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_ABORTED + - PROPOSAL_STATUS_WITHDRAWN + default: PROPOSAL_STATUS_UNSPECIFIED + description: |- + ProposalStatus defines proposal statuses. + + - PROPOSAL_STATUS_UNSPECIFIED: An empty value is invalid and not allowed. + - PROPOSAL_STATUS_SUBMITTED: Initial status of a proposal when submitted. + - PROPOSAL_STATUS_ACCEPTED: Final status of a proposal when the final tally is done and the outcome + passes the group policy's decision policy. + - PROPOSAL_STATUS_REJECTED: Final status of a proposal when the final tally is done and the outcome + is rejected by the group policy's decision policy. + - PROPOSAL_STATUS_ABORTED: Final status of a proposal when the group policy is modified before the + final tally. + - PROPOSAL_STATUS_WITHDRAWN: A proposal can be withdrawn before the voting start time by the owner. + When this happens the final status is Withdrawn. + cosmos.group.v1.QueryGroupInfoResponse: + type: object + properties: + info: + description: info is the GroupInfo of the group. + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group's admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata to attached to the group. + + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#group-1 + version: + type: string + format: uint64 + title: >- + version is used to track changes to a group's membership structure + that + + would break existing proposals. Whenever any members weight is + changed, + + or any member is added or removed this version is incremented and + will + + cause proposals based on older versions of this group to fail + total_weight: + type: string + description: total_weight is the sum of the group members' weights. + created_at: + type: string + format: date-time + description: created_at is a timestamp specifying when a group was created. + description: QueryGroupInfoResponse is the Query/GroupInfo response type. + cosmos.group.v1.QueryGroupMembersResponse: + type: object + properties: + members: + type: array + items: + type: object + properties: + group_id: + type: string + format: uint64 + description: group_id is the unique ID of the group. + member: + description: member is the member data. + type: object + properties: + address: + type: string + description: address is the member's account address. + weight: + type: string + description: >- + weight is the member's voting weight that should be greater + than 0. + metadata: + type: string + description: metadata is any arbitrary metadata attached to the member. + added_at: + type: string + format: date-time + description: added_at is a timestamp specifying when a member was added. + description: >- + GroupMember represents the relationship between a group and a + member. + description: members are the members of the group with given group_id. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: QueryGroupMembersResponse is the Query/GroupMembersResponse response type. + cosmos.group.v1.QueryGroupPoliciesByAdminResponse: + type: object + properties: + group_policies: + type: array + items: + type: object + properties: + address: + type: string + description: address is the account address of group policy. + group_id: + type: string + format: uint64 + description: group_id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the group policy. + + the recommended format of the metadata is to be found here: + + https://docs.cosmos.network/v0.47/modules/group#decision-policy-1 + version: + type: string + format: uint64 + description: >- + version is used to track changes to a group's GroupPolicyInfo + structure that + + would create a different result on a running proposal. + decision_policy: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + created_at: + type: string + format: date-time + description: >- + created_at is a timestamp specifying when a group policy was + created. + description: >- + GroupPolicyInfo represents the high-level on-chain information for a + group policy. + description: group_policies are the group policies info with provided admin. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGroupPoliciesByAdminResponse is the Query/GroupPoliciesByAdmin + response type. + cosmos.group.v1.QueryGroupPoliciesByGroupResponse: + type: object + properties: + group_policies: + type: array + items: + type: object + properties: + address: + type: string + description: address is the account address of group policy. + group_id: + type: string + format: uint64 + description: group_id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the group policy. + + the recommended format of the metadata is to be found here: + + https://docs.cosmos.network/v0.47/modules/group#decision-policy-1 + version: + type: string + format: uint64 + description: >- + version is used to track changes to a group's GroupPolicyInfo + structure that + + would create a different result on a running proposal. + decision_policy: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + created_at: + type: string + format: date-time + description: >- + created_at is a timestamp specifying when a group policy was + created. + description: >- + GroupPolicyInfo represents the high-level on-chain information for a + group policy. + description: >- + group_policies are the group policies info associated with the + provided group. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGroupPoliciesByGroupResponse is the Query/GroupPoliciesByGroup + response type. + cosmos.group.v1.QueryGroupPolicyInfoResponse: + type: object + properties: + info: + type: object + properties: + address: + type: string + description: address is the account address of group policy. + group_id: + type: string + format: uint64 + description: group_id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group admin. + metadata: + type: string + title: |- + metadata is any arbitrary metadata attached to the group policy. + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#decision-policy-1 + version: + type: string + format: uint64 + description: >- + version is used to track changes to a group's GroupPolicyInfo + structure that + + would create a different result on a running proposal. + decision_policy: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + created_at: + type: string + format: date-time + description: >- + created_at is a timestamp specifying when a group policy was + created. + description: >- + GroupPolicyInfo represents the high-level on-chain information for a + group policy. + description: QueryGroupPolicyInfoResponse is the Query/GroupPolicyInfo response type. + cosmos.group.v1.QueryGroupsByAdminResponse: + type: object + properties: + groups: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group's admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata to attached to the group. + + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#group-1 + version: + type: string + format: uint64 + title: >- + version is used to track changes to a group's membership + structure that + + would break existing proposals. Whenever any members weight is + changed, + + or any member is added or removed this version is incremented + and will + + cause proposals based on older versions of this group to fail + total_weight: + type: string + description: total_weight is the sum of the group members' weights. + created_at: + type: string + format: date-time + description: created_at is a timestamp specifying when a group was created. + description: >- + GroupInfo represents the high-level on-chain information for a + group. + description: groups are the groups info with the provided admin. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryGroupsByAdminResponse is the Query/GroupsByAdminResponse response + type. + cosmos.group.v1.QueryGroupsByMemberResponse: + type: object + properties: + groups: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group's admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata to attached to the group. + + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#group-1 + version: + type: string + format: uint64 + title: >- + version is used to track changes to a group's membership + structure that + + would break existing proposals. Whenever any members weight is + changed, + + or any member is added or removed this version is incremented + and will + + cause proposals based on older versions of this group to fail + total_weight: + type: string + description: total_weight is the sum of the group members' weights. + created_at: + type: string + format: date-time + description: created_at is a timestamp specifying when a group was created. + description: >- + GroupInfo represents the high-level on-chain information for a + group. + description: groups are the groups info with the provided group member. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: QueryGroupsByMemberResponse is the Query/GroupsByMember response type. + cosmos.group.v1.QueryGroupsResponse: + type: object + properties: + groups: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique ID of the group. + admin: + type: string + description: admin is the account address of the group's admin. + metadata: + type: string + title: >- + metadata is any arbitrary metadata to attached to the group. + + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#group-1 + version: + type: string + format: uint64 + title: >- + version is used to track changes to a group's membership + structure that + + would break existing proposals. Whenever any members weight is + changed, + + or any member is added or removed this version is incremented + and will + + cause proposals based on older versions of this group to fail + total_weight: + type: string + description: total_weight is the sum of the group members' weights. + created_at: + type: string + format: date-time + description: created_at is a timestamp specifying when a group was created. + description: >- + GroupInfo represents the high-level on-chain information for a + group. + description: '`groups` is all the groups present in state.' + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: QueryGroupsResponse is the Query/Groups response type. + cosmos.group.v1.QueryProposalResponse: + type: object + properties: + proposal: + description: proposal is the proposal info. + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique id of the proposal. + group_policy_address: + type: string + description: group_policy_address is the account address of group policy. + metadata: + type: string + title: |- + metadata is any arbitrary metadata attached to the proposal. + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#proposal-4 + proposers: + type: array + items: + type: string + description: proposers are the account addresses of the proposers. + submit_time: + type: string + format: date-time + description: >- + submit_time is a timestamp specifying when a proposal was + submitted. + group_version: + type: string + format: uint64 + description: >- + group_version tracks the version of the group at proposal + submission. + + This field is here for informational purposes only. + group_policy_version: + type: string + format: uint64 + description: >- + group_policy_version tracks the version of the group policy at + proposal submission. + + When a decision policy is changed, existing proposals from + previous policy + + versions will become invalid with the `ABORTED` status. + + This field is here for informational purposes only. + status: + description: >- + status represents the high level position in the life cycle of the + proposal. Initial value is Submitted. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_SUBMITTED + - PROPOSAL_STATUS_ACCEPTED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_ABORTED + - PROPOSAL_STATUS_WITHDRAWN + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result contains the sums of all weighted votes for + this + + proposal for each vote option. It is empty at submission, and only + + populated after tallying, at voting period end or at proposal + execution, + + whichever happens first. + type: object + properties: + yes_count: + type: string + description: yes_count is the weighted sum of yes votes. + abstain_count: + type: string + description: abstain_count is the weighted sum of abstainers. + no_count: + type: string + description: no_count is the weighted sum of no votes. + no_with_veto_count: + type: string + description: no_with_veto_count is the weighted sum of veto. + voting_period_end: + type: string + format: date-time + description: >- + voting_period_end is the timestamp before which voting must be + done. + + Unless a successful MsgExec is called before (to execute a + proposal whose + + tally is successful before the voting period ends), tallying will + be done + + at this point, and the `final_tally_result`and `status` fields + will be + + accordingly updated. + executor_result: + description: >- + executor_result is the final result of the proposal execution. + Initial value is NotRun. + type: string + enum: + - PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED + - PROPOSAL_EXECUTOR_RESULT_NOT_RUN + - PROPOSAL_EXECUTOR_RESULT_SUCCESS + - PROPOSAL_EXECUTOR_RESULT_FAILURE + default: PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of `sdk.Msg`s that will be executed if the + proposal passes. + title: + type: string + title: title is the title of the proposal + summary: + type: string + title: summary is a short summary of the proposal + description: QueryProposalResponse is the Query/Proposal response type. + cosmos.group.v1.QueryProposalsByGroupPolicyResponse: + type: object + properties: + proposals: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + description: id is the unique id of the proposal. + group_policy_address: + type: string + description: group_policy_address is the account address of group policy. + metadata: + type: string + title: |- + metadata is any arbitrary metadata attached to the proposal. + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#proposal-4 + proposers: + type: array + items: + type: string + description: proposers are the account addresses of the proposers. + submit_time: + type: string + format: date-time + description: >- + submit_time is a timestamp specifying when a proposal was + submitted. + group_version: + type: string + format: uint64 + description: >- + group_version tracks the version of the group at proposal + submission. + + This field is here for informational purposes only. + group_policy_version: + type: string + format: uint64 + description: >- + group_policy_version tracks the version of the group policy at + proposal submission. + + When a decision policy is changed, existing proposals from + previous policy + + versions will become invalid with the `ABORTED` status. + + This field is here for informational purposes only. + status: + description: >- + status represents the high level position in the life cycle of + the proposal. Initial value is Submitted. + type: string + enum: + - PROPOSAL_STATUS_UNSPECIFIED + - PROPOSAL_STATUS_SUBMITTED + - PROPOSAL_STATUS_ACCEPTED + - PROPOSAL_STATUS_REJECTED + - PROPOSAL_STATUS_ABORTED + - PROPOSAL_STATUS_WITHDRAWN + default: PROPOSAL_STATUS_UNSPECIFIED + final_tally_result: + description: >- + final_tally_result contains the sums of all weighted votes for + this + + proposal for each vote option. It is empty at submission, and + only + + populated after tallying, at voting period end or at proposal + execution, + + whichever happens first. + type: object + properties: + yes_count: + type: string + description: yes_count is the weighted sum of yes votes. + abstain_count: + type: string + description: abstain_count is the weighted sum of abstainers. + no_count: + type: string + description: no_count is the weighted sum of no votes. + no_with_veto_count: + type: string + description: no_with_veto_count is the weighted sum of veto. + voting_period_end: + type: string + format: date-time + description: >- + voting_period_end is the timestamp before which voting must be + done. + + Unless a successful MsgExec is called before (to execute a + proposal whose + + tally is successful before the voting period ends), tallying + will be done + + at this point, and the `final_tally_result`and `status` fields + will be + + accordingly updated. + executor_result: + description: >- + executor_result is the final result of the proposal execution. + Initial value is NotRun. + type: string + enum: + - PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED + - PROPOSAL_EXECUTOR_RESULT_NOT_RUN + - PROPOSAL_EXECUTOR_RESULT_SUCCESS + - PROPOSAL_EXECUTOR_RESULT_FAILURE + default: PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED + messages: + type: array + items: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. As of May 2023, there are no widely + used type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in + the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default + use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last + '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + description: >- + messages is a list of `sdk.Msg`s that will be executed if the + proposal passes. + title: + type: string + title: title is the title of the proposal + summary: + type: string + title: summary is a short summary of the proposal + description: >- + Proposal defines a group proposal. Any member of a group can submit + a proposal + + for a group policy to decide upon. + + A proposal consists of a set of `sdk.Msg`s that will be executed if + the proposal + + passes as well as some optional metadata associated with the + proposal. + description: proposals are the proposals with given group policy. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryProposalsByGroupPolicyResponse is the Query/ProposalByGroupPolicy + response type. + cosmos.group.v1.QueryTallyResultResponse: + type: object + properties: + tally: + description: tally defines the requested tally. + type: object + properties: + yes_count: + type: string + description: yes_count is the weighted sum of yes votes. + abstain_count: + type: string + description: abstain_count is the weighted sum of abstainers. + no_count: + type: string + description: no_count is the weighted sum of no votes. + no_with_veto_count: + type: string + description: no_with_veto_count is the weighted sum of veto. + description: QueryTallyResultResponse is the Query/TallyResult response type. + cosmos.group.v1.QueryVoteByProposalVoterResponse: + type: object + properties: + vote: + description: vote is the vote with given proposal_id and voter. + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal is the unique ID of the proposal. + voter: + type: string + description: voter is the account address of the voter. + option: + description: option is the voter's choice on the proposal. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the vote. + + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#vote-2 + submit_time: + type: string + format: date-time + description: submit_time is the timestamp when the vote was submitted. + title: Vote represents a vote for a proposal.string metadata + description: >- + QueryVoteByProposalVoterResponse is the Query/VoteByProposalVoter response + type. + cosmos.group.v1.QueryVotesByProposalResponse: + type: object + properties: + votes: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal is the unique ID of the proposal. + voter: + type: string + description: voter is the account address of the voter. + option: + description: option is the voter's choice on the proposal. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the vote. + + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#vote-2 + submit_time: + type: string + format: date-time + description: submit_time is the timestamp when the vote was submitted. + title: Vote represents a vote for a proposal.string metadata + description: votes are the list of votes for given proposal_id. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: QueryVotesByProposalResponse is the Query/VotesByProposal response type. + cosmos.group.v1.QueryVotesByVoterResponse: + type: object + properties: + votes: + type: array + items: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal is the unique ID of the proposal. + voter: + type: string + description: voter is the account address of the voter. + option: + description: option is the voter's choice on the proposal. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the vote. + + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#vote-2 + submit_time: + type: string + format: date-time + description: submit_time is the timestamp when the vote was submitted. + title: Vote represents a vote for a proposal.string metadata + description: votes are the list of votes by given voter. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: QueryVotesByVoterResponse is the Query/VotesByVoter response type. + cosmos.group.v1.TallyResult: + type: object + properties: + yes_count: + type: string + description: yes_count is the weighted sum of yes votes. + abstain_count: + type: string + description: abstain_count is the weighted sum of abstainers. + no_count: + type: string + description: no_count is the weighted sum of no votes. + no_with_veto_count: + type: string + description: no_with_veto_count is the weighted sum of veto. + description: TallyResult represents the sum of weighted votes for each vote option. + cosmos.group.v1.Vote: + type: object + properties: + proposal_id: + type: string + format: uint64 + description: proposal is the unique ID of the proposal. + voter: + type: string + description: voter is the account address of the voter. + option: + description: option is the voter's choice on the proposal. + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + metadata: + type: string + title: >- + metadata is any arbitrary metadata attached to the vote. + + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#vote-2 + submit_time: + type: string + format: date-time + description: submit_time is the timestamp when the vote was submitted. + title: Vote represents a vote for a proposal.string metadata + cosmos.group.v1.VoteOption: + type: string + enum: + - VOTE_OPTION_UNSPECIFIED + - VOTE_OPTION_YES + - VOTE_OPTION_ABSTAIN + - VOTE_OPTION_NO + - VOTE_OPTION_NO_WITH_VETO + default: VOTE_OPTION_UNSPECIFIED + description: |- + VoteOption enumerates the valid vote options for a given proposal. + + - VOTE_OPTION_UNSPECIFIED: VOTE_OPTION_UNSPECIFIED defines an unspecified vote option which will + return an error. + - VOTE_OPTION_YES: VOTE_OPTION_YES defines a yes vote option. + - VOTE_OPTION_ABSTAIN: VOTE_OPTION_ABSTAIN defines an abstain vote option. + - VOTE_OPTION_NO: VOTE_OPTION_NO defines a no vote option. + - VOTE_OPTION_NO_WITH_VETO: VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. + cosmos.bank.v1beta1.DenomOwner: + type: object + properties: + address: + type: string + description: address defines the address that owns a particular denomination. + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: |- + DenomOwner defines structure representing an account that owns or holds a + particular denominated token. It contains the account address and account + balance of the denominated token. + cosmos.bank.v1beta1.DenomUnit: + type: object + properties: + denom: + type: string + description: denom represents the string name of the given denom unit (e.g uatom). + exponent: + type: integer + format: int64 + description: >- + exponent represents power of 10 exponent that one must + + raise the base_denom to in order to equal the given DenomUnit's denom + + 1 denom = 10^exponent base_denom + + (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' + with + + exponent = 6, thus: 1 atom = 10^6 uatom). + aliases: + type: array + items: + type: string + title: aliases is a list of string aliases for the given denom + description: |- + DenomUnit represents a struct that describes a given + denomination unit of the basic token. + cosmos.bank.v1beta1.Metadata: + type: object + properties: + description: + type: string + denom_units: + type: array + items: + type: object + properties: + denom: + type: string + description: >- + denom represents the string name of the given denom unit (e.g + uatom). + exponent: + type: integer + format: int64 + description: >- + exponent represents power of 10 exponent that one must + + raise the base_denom to in order to equal the given DenomUnit's + denom + + 1 denom = 10^exponent base_denom + + (e.g. with a base_denom of uatom, one can create a DenomUnit of + 'atom' with + + exponent = 6, thus: 1 atom = 10^6 uatom). + aliases: + type: array + items: + type: string + title: aliases is a list of string aliases for the given denom + description: |- + DenomUnit represents a struct that describes a given + denomination unit of the basic token. + title: denom_units represents the list of DenomUnit's for a given coin + base: + type: string + description: >- + base represents the base denom (should be the DenomUnit with exponent + = 0). + display: + type: string + description: |- + display indicates the suggested denom that should be + displayed in clients. + name: + type: string + title: 'name defines the name of the token (eg: Cosmos Atom)' + symbol: + type: string + description: >- + symbol is the token symbol usually shown on exchanges (eg: ATOM). This + can + + be the same as the display. + uri: + type: string + description: >- + URI to a document (on or off-chain) that contains additional + information. Optional. + uri_hash: + type: string + description: >- + URIHash is a sha256 hash of a document pointed by URI. It's used to + verify that + + the document didn't change. Optional. + description: |- + Metadata represents a struct that describes + a basic token. + cosmos.bank.v1beta1.Params: + type: object + properties: + send_enabled: + type: array + items: + type: object + properties: + denom: + type: string + enabled: + type: boolean + description: >- + SendEnabled maps coin denom to a send_enabled status (whether a + denom is + + sendable). + description: >- + Deprecated: Use of SendEnabled in params is deprecated. + + For genesis, use the newly added send_enabled field in the genesis + object. + + Storage, lookup, and manipulation of this information is now in the + keeper. + + + As of cosmos-sdk 0.47, this only exists for backwards compatibility of + genesis files. + default_send_enabled: + type: boolean + description: Params defines the parameters for the bank module. + cosmos.bank.v1beta1.QueryAllBalancesResponse: + type: object + properties: + balances: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: balances is the balances of all the coins. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryAllBalancesResponse is the response type for the Query/AllBalances + RPC + + method. + cosmos.bank.v1beta1.QueryBalanceResponse: + type: object + properties: + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: >- + QueryBalanceResponse is the response type for the Query/Balance RPC + method. + cosmos.bank.v1beta1.QueryDenomMetadataByQueryStringResponse: + type: object + properties: + metadata: + type: object + properties: + description: + type: string + denom_units: + type: array + items: + type: object + properties: + denom: + type: string + description: >- + denom represents the string name of the given denom unit + (e.g uatom). + exponent: + type: integer + format: int64 + description: >- + exponent represents power of 10 exponent that one must + + raise the base_denom to in order to equal the given + DenomUnit's denom + + 1 denom = 10^exponent base_denom + + (e.g. with a base_denom of uatom, one can create a DenomUnit + of 'atom' with + + exponent = 6, thus: 1 atom = 10^6 uatom). + aliases: + type: array + items: + type: string + title: aliases is a list of string aliases for the given denom + description: |- + DenomUnit represents a struct that describes a given + denomination unit of the basic token. + title: denom_units represents the list of DenomUnit's for a given coin + base: + type: string + description: >- + base represents the base denom (should be the DenomUnit with + exponent = 0). + display: + type: string + description: |- + display indicates the suggested denom that should be + displayed in clients. + name: + type: string + title: 'name defines the name of the token (eg: Cosmos Atom)' + symbol: + type: string + description: >- + symbol is the token symbol usually shown on exchanges (eg: ATOM). + This can + + be the same as the display. + uri: + type: string + description: >- + URI to a document (on or off-chain) that contains additional + information. Optional. + uri_hash: + type: string + description: >- + URIHash is a sha256 hash of a document pointed by URI. It's used + to verify that + + the document didn't change. Optional. + description: |- + Metadata represents a struct that describes + a basic token. + description: >- + QueryDenomMetadataByQueryStringResponse is the response type for the + Query/DenomMetadata RPC + + method. Identical with QueryDenomMetadataResponse but receives denom as + query string in request. + cosmos.bank.v1beta1.QueryDenomMetadataResponse: + type: object + properties: + metadata: + type: object + properties: + description: + type: string + denom_units: + type: array + items: + type: object + properties: + denom: + type: string + description: >- + denom represents the string name of the given denom unit + (e.g uatom). + exponent: + type: integer + format: int64 + description: >- + exponent represents power of 10 exponent that one must + + raise the base_denom to in order to equal the given + DenomUnit's denom + + 1 denom = 10^exponent base_denom + + (e.g. with a base_denom of uatom, one can create a DenomUnit + of 'atom' with + + exponent = 6, thus: 1 atom = 10^6 uatom). + aliases: + type: array + items: + type: string + title: aliases is a list of string aliases for the given denom + description: |- + DenomUnit represents a struct that describes a given + denomination unit of the basic token. + title: denom_units represents the list of DenomUnit's for a given coin + base: + type: string + description: >- + base represents the base denom (should be the DenomUnit with + exponent = 0). + display: + type: string + description: |- + display indicates the suggested denom that should be + displayed in clients. + name: + type: string + title: 'name defines the name of the token (eg: Cosmos Atom)' + symbol: + type: string + description: >- + symbol is the token symbol usually shown on exchanges (eg: ATOM). + This can + + be the same as the display. + uri: + type: string + description: >- + URI to a document (on or off-chain) that contains additional + information. Optional. + uri_hash: + type: string + description: >- + URIHash is a sha256 hash of a document pointed by URI. It's used + to verify that + + the document didn't change. Optional. + description: |- + Metadata represents a struct that describes + a basic token. + description: >- + QueryDenomMetadataResponse is the response type for the + Query/DenomMetadata RPC + + method. + cosmos.bank.v1beta1.QueryDenomOwnersByQueryResponse: + type: object + properties: + denom_owners: + type: array + items: + type: object + properties: + address: + type: string + description: address defines the address that owns a particular denomination. + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: >- + DenomOwner defines structure representing an account that owns or + holds a + + particular denominated token. It contains the account address and + account + + balance of the denominated token. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryDenomOwnersByQueryResponse defines the RPC response of a + DenomOwnersByQuery RPC query. + cosmos.bank.v1beta1.QueryDenomOwnersResponse: + type: object + properties: + denom_owners: + type: array + items: + type: object + properties: + address: + type: string + description: address defines the address that owns a particular denomination. + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + description: >- + DenomOwner defines structure representing an account that owns or + holds a + + particular denominated token. It contains the account address and + account + + balance of the denominated token. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC + query. + cosmos.bank.v1beta1.QueryDenomsMetadataResponse: + type: object + properties: + metadatas: + type: array + items: + type: object + properties: + description: + type: string + denom_units: + type: array + items: + type: object + properties: + denom: + type: string + description: >- + denom represents the string name of the given denom unit + (e.g uatom). + exponent: + type: integer + format: int64 + description: >- + exponent represents power of 10 exponent that one must + + raise the base_denom to in order to equal the given + DenomUnit's denom + + 1 denom = 10^exponent base_denom + + (e.g. with a base_denom of uatom, one can create a + DenomUnit of 'atom' with + + exponent = 6, thus: 1 atom = 10^6 uatom). + aliases: + type: array + items: + type: string + title: aliases is a list of string aliases for the given denom + description: |- + DenomUnit represents a struct that describes a given + denomination unit of the basic token. + title: denom_units represents the list of DenomUnit's for a given coin + base: + type: string + description: >- + base represents the base denom (should be the DenomUnit with + exponent = 0). + display: + type: string + description: |- + display indicates the suggested denom that should be + displayed in clients. + name: + type: string + title: 'name defines the name of the token (eg: Cosmos Atom)' + symbol: + type: string + description: >- + symbol is the token symbol usually shown on exchanges (eg: + ATOM). This can + + be the same as the display. + uri: + type: string + description: >- + URI to a document (on or off-chain) that contains additional + information. Optional. + uri_hash: + type: string + description: >- + URIHash is a sha256 hash of a document pointed by URI. It's used + to verify that + + the document didn't change. Optional. + description: |- + Metadata represents a struct that describes + a basic token. + description: >- + metadata provides the client information for all the registered + tokens. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QueryDenomsMetadataResponse is the response type for the + Query/DenomsMetadata RPC + + method. + cosmos.bank.v1beta1.QueryParamsResponse: + type: object + properties: + params: + description: params provides the parameters of the bank module. + type: object + properties: + send_enabled: + type: array + items: + type: object + properties: + denom: + type: string + enabled: + type: boolean + description: >- + SendEnabled maps coin denom to a send_enabled status (whether a + denom is + + sendable). + description: >- + Deprecated: Use of SendEnabled in params is deprecated. + + For genesis, use the newly added send_enabled field in the genesis + object. + + Storage, lookup, and manipulation of this information is now in + the keeper. + + + As of cosmos-sdk 0.47, this only exists for backwards + compatibility of genesis files. + default_send_enabled: + type: boolean + description: >- + QueryParamsResponse defines the response type for querying x/bank + parameters. + cosmos.bank.v1beta1.QuerySendEnabledResponse: + type: object + properties: + send_enabled: + type: array + items: + type: object + properties: + denom: + type: string + enabled: + type: boolean + description: >- + SendEnabled maps coin denom to a send_enabled status (whether a + denom is + + sendable). + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: QuerySendEnabledResponse defines the RPC response of a SendEnable query. + cosmos.bank.v1beta1.QuerySpendableBalanceByDenomResponse: + type: object + properties: + balance: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: >- + QuerySpendableBalanceByDenomResponse defines the gRPC response structure + for + + querying an account's spendable balance for a specific denom. + cosmos.bank.v1beta1.QuerySpendableBalancesResponse: + type: object + properties: + balances: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: balances is the spendable balances of all the coins. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: >- + QuerySpendableBalancesResponse defines the gRPC response structure for + querying + + an account's spendable balances. + cosmos.bank.v1beta1.QuerySupplyOfResponse: + type: object + properties: + amount: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + description: >- + QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC + method. + cosmos.bank.v1beta1.QueryTotalSupplyResponse: + type: object + properties: + supply: + type: array + items: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + title: supply is the supply of the coins + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: >- + QueryTotalSupplyResponse is the response type for the Query/TotalSupply + RPC + + method + cosmos.bank.v1beta1.SendEnabled: + type: object + properties: + denom: + type: string + enabled: + type: boolean + description: |- + SendEnabled maps coin denom to a send_enabled status (whether a denom is + sendable). + cosmwasm.wasm.v1.AbsoluteTxPosition: + type: object + properties: + block_height: + type: string + format: uint64 + title: BlockHeight is the block the contract was created at + tx_index: + type: string + format: uint64 + title: >- + TxIndex is a monotonic counter within the block (actual transaction + index, + + or gas consumed) + description: |- + AbsoluteTxPosition is a unique transaction position that allows for global + ordering of transactions. + cosmwasm.wasm.v1.AccessConfig: + type: object + properties: + permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified placeholder for empty + value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + addresses: + type: array + items: + type: string + description: AccessConfig access control type. + cosmwasm.wasm.v1.AccessType: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified placeholder for empty + value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + cosmwasm.wasm.v1.CodeInfoResponse: + type: object + properties: + code_id: + type: string + format: uint64 + creator: + type: string + data_hash: + type: string + format: byte + instantiate_permission: + type: object + properties: + permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified placeholder for + empty value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + addresses: + type: array + items: + type: string + description: AccessConfig access control type. + title: CodeInfoResponse contains code meta data from CodeInfo + cosmwasm.wasm.v1.ContractCodeHistoryEntry: + type: object + properties: + operation: + type: string + enum: + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS + default: CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED + description: >- + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED: + ContractCodeHistoryOperationTypeUnspecified placeholder for empty + value + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT: ContractCodeHistoryOperationTypeInit on chain contract instantiation + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE: ContractCodeHistoryOperationTypeMigrate code migration + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS: ContractCodeHistoryOperationTypeGenesis based on genesis data + title: ContractCodeHistoryOperationType actions that caused a code change + code_id: + type: string + format: uint64 + title: CodeID is the reference to the stored WASM code + updated: + description: Updated Tx position when the operation was executed. + type: object + properties: + block_height: + type: string + format: uint64 + title: BlockHeight is the block the contract was created at + tx_index: + type: string + format: uint64 + title: >- + TxIndex is a monotonic counter within the block (actual + transaction index, + + or gas consumed) + msg: + type: string + format: byte + description: ContractCodeHistoryEntry metadata to a contract. + cosmwasm.wasm.v1.ContractCodeHistoryOperationType: + type: string + enum: + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS + default: CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED + description: >- + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED: + ContractCodeHistoryOperationTypeUnspecified placeholder for empty value + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT: ContractCodeHistoryOperationTypeInit on chain contract instantiation + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE: ContractCodeHistoryOperationTypeMigrate code migration + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS: ContractCodeHistoryOperationTypeGenesis based on genesis data + title: ContractCodeHistoryOperationType actions that caused a code change + cosmwasm.wasm.v1.ContractInfo: + type: object + properties: + code_id: + type: string + format: uint64 + title: CodeID is the reference to the stored Wasm code + creator: + type: string + title: Creator address who initially instantiated the contract + admin: + type: string + title: Admin is an optional address that can execute migrations + label: + type: string + description: Label is optional metadata to be stored with a contract instance. + created: + description: Created Tx position when the contract was instantiated. + type: object + properties: + block_height: + type: string + format: uint64 + title: BlockHeight is the block the contract was created at + tx_index: + type: string + format: uint64 + title: >- + TxIndex is a monotonic counter within the block (actual + transaction index, + + or gas consumed) + ibc_port_id: + type: string + ibc2_port_id: + type: string + extension: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all types + that they + + expect it to use in the context of Any. However, for URLs which + use the + + scheme `http`, `https`, or no scheme, one can optionally set up a + type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning with + + type.googleapis.com. As of May 2023, there are no widely used type + server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above specified + type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message along + with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: ContractInfo stores a WASM contract instance + cosmwasm.wasm.v1.Model: + type: object + properties: + key: + type: string + format: byte + title: hex-encode key to read it better (this is often ascii) + value: + type: string + format: byte + title: base64-encode raw value + title: Model is a struct that holds a KV pair + cosmwasm.wasm.v1.Params: + type: object + properties: + code_upload_access: + type: object + properties: + permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified placeholder for + empty value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + addresses: + type: array + items: + type: string + description: AccessConfig access control type. + instantiate_default_permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified placeholder for empty + value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + description: Params defines the set of wasm parameters. + cosmwasm.wasm.v1.QueryAllContractStateResponse: + type: object + properties: + models: + type: array + items: + type: object + properties: + key: + type: string + format: byte + title: hex-encode key to read it better (this is often ascii) + value: + type: string + format: byte + title: base64-encode raw value + title: Model is a struct that holds a KV pair + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: |- + QueryAllContractStateResponse is the response type for the + Query/AllContractState RPC method + cosmwasm.wasm.v1.QueryBuildAddressResponse: + type: object + properties: + address: + type: string + title: Address is the contract address + description: >- + QueryBuildAddressResponse is the response type for the Query/BuildAddress + RPC + + method. + cosmwasm.wasm.v1.QueryCodeInfoResponse: + type: object + properties: + code_id: + type: string + format: uint64 + creator: + type: string + checksum: + type: string + format: byte + instantiate_permission: + type: object + properties: + permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified placeholder for + empty value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + addresses: + type: array + items: + type: string + description: AccessConfig access control type. + title: >- + QueryCodeInfoResponse is the response type for the Query/CodeInfo RPC + method + cosmwasm.wasm.v1.QueryCodeResponse: + type: object + properties: + code_info: + type: object + properties: + code_id: + type: string + format: uint64 + creator: + type: string + data_hash: + type: string + format: byte + instantiate_permission: + type: object + properties: + permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified placeholder + for empty value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + addresses: + type: array + items: + type: string + description: AccessConfig access control type. + title: CodeInfoResponse contains code meta data from CodeInfo + data: + type: string + format: byte + title: QueryCodeResponse is the response type for the Query/Code RPC method + cosmwasm.wasm.v1.QueryCodesResponse: + type: object + properties: + code_infos: + type: array + items: + type: object + properties: + code_id: + type: string + format: uint64 + creator: + type: string + data_hash: + type: string + format: byte + instantiate_permission: + type: object + properties: + permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified placeholder + for empty value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + addresses: + type: array + items: + type: string + description: AccessConfig access control type. + title: CodeInfoResponse contains code meta data from CodeInfo + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: QueryCodesResponse is the response type for the Query/Codes RPC method + cosmwasm.wasm.v1.QueryContractHistoryResponse: + type: object + properties: + entries: + type: array + items: + type: object + properties: + operation: + type: string + enum: + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS + default: CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED + description: >- + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED: + ContractCodeHistoryOperationTypeUnspecified placeholder for + empty value + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT: ContractCodeHistoryOperationTypeInit on chain contract instantiation + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE: ContractCodeHistoryOperationTypeMigrate code migration + - CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS: ContractCodeHistoryOperationTypeGenesis based on genesis data + title: >- + ContractCodeHistoryOperationType actions that caused a code + change + code_id: + type: string + format: uint64 + title: CodeID is the reference to the stored WASM code + updated: + description: Updated Tx position when the operation was executed. + type: object + properties: + block_height: + type: string + format: uint64 + title: BlockHeight is the block the contract was created at + tx_index: + type: string + format: uint64 + title: >- + TxIndex is a monotonic counter within the block (actual + transaction index, + + or gas consumed) + msg: + type: string + format: byte + description: ContractCodeHistoryEntry metadata to a contract. + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: |- + QueryContractHistoryResponse is the response type for the + Query/ContractHistory RPC method + cosmwasm.wasm.v1.QueryContractInfoResponse: + type: object + properties: + address: + type: string + title: address is the address of the contract + contract_info: + type: object + properties: + code_id: + type: string + format: uint64 + title: CodeID is the reference to the stored Wasm code + creator: + type: string + title: Creator address who initially instantiated the contract + admin: + type: string + title: Admin is an optional address that can execute migrations + label: + type: string + description: Label is optional metadata to be stored with a contract instance. + created: + description: Created Tx position when the contract was instantiated. + type: object + properties: + block_height: + type: string + format: uint64 + title: BlockHeight is the block the contract was created at + tx_index: + type: string + format: uint64 + title: >- + TxIndex is a monotonic counter within the block (actual + transaction index, + + or gas consumed) + ibc_port_id: + type: string + ibc2_port_id: + type: string + extension: + type: object + properties: + type_url: + type: string + description: >- + A URL/resource name that uniquely identifies the type of the + serialized + + protocol buffer message. This string must contain at least + + one "/" character. The last segment of the URL's path must + represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in a + canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary all + types that they + + expect it to use in the context of Any. However, for URLs + which use the + + scheme `http`, `https`, or no scheme, one can optionally set + up a type + + server that maps type URLs to message definitions as follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on + the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the + official + + protobuf release, and it is not used for type URLs beginning + with + + type.googleapis.com. As of May 2023, there are no widely used + type server + + implementations and no plans to implement one. + + + Schemes other than `http`, `https` (or the empty scheme) might + be + + used with implementation specific semantics. + value: + type: string + format: byte + description: >- + Must be a valid serialized protocol buffer of the above + specified type. + description: >- + `Any` contains an arbitrary serialized protocol buffer message + along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values in the + form + + of utility functions or additional generated methods of the Any + type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with an + + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + + representation, that representation will be embedded adding a + field + + `value` which holds the custom JSON in addition to the `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + title: ContractInfo stores a WASM contract instance + title: >- + QueryContractInfoResponse is the response type for the Query/ContractInfo + RPC + + method + cosmwasm.wasm.v1.QueryContractsByCodeResponse: + type: object + properties: + contracts: + type: array + items: + type: string + title: contracts are a set of contract addresses + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: |- + QueryContractsByCodeResponse is the response type for the + Query/ContractsByCode RPC method + cosmwasm.wasm.v1.QueryContractsByCreatorResponse: + type: object + properties: + contract_addresses: + type: array + items: + type: string + title: ContractAddresses result set + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + description: |- + QueryContractsByCreatorResponse is the response type for the + Query/ContractsByCreator RPC method. + cosmwasm.wasm.v1.QueryParamsResponse: + type: object + properties: + params: + description: params defines the parameters of the module. + type: object + properties: + code_upload_access: + type: object + properties: + permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified placeholder + for empty value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + addresses: + type: array + items: + type: string + description: AccessConfig access control type. + instantiate_default_permission: + type: string + enum: + - ACCESS_TYPE_UNSPECIFIED + - ACCESS_TYPE_NOBODY + - ACCESS_TYPE_EVERYBODY + - ACCESS_TYPE_ANY_OF_ADDRESSES + default: ACCESS_TYPE_UNSPECIFIED + description: >- + - ACCESS_TYPE_UNSPECIFIED: AccessTypeUnspecified placeholder for + empty value + - ACCESS_TYPE_NOBODY: AccessTypeNobody forbidden + - ACCESS_TYPE_EVERYBODY: AccessTypeEverybody unrestricted + - ACCESS_TYPE_ANY_OF_ADDRESSES: AccessTypeAnyOfAddresses allow any of the addresses + title: AccessType permission types + description: QueryParamsResponse is the response type for the Query/Params RPC method. + cosmwasm.wasm.v1.QueryPinnedCodesResponse: + type: object + properties: + code_ids: + type: array + items: + type: string + format: uint64 + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + title: |- + QueryPinnedCodesResponse is the response type for the + Query/PinnedCodes RPC method + cosmwasm.wasm.v1.QueryRawContractStateResponse: + type: object + properties: + data: + type: string + format: byte + title: Data contains the raw store data + title: |- + QueryRawContractStateResponse is the response type for the + Query/RawContractState RPC method + cosmwasm.wasm.v1.QuerySmartContractStateResponse: + type: object + properties: + data: + type: string + format: byte + title: Data contains the json data returned from the smart contract + title: |- + QuerySmartContractStateResponse is the response type for the + Query/SmartContractState RPC method + cosmwasm.wasm.v1.QueryWasmLimitsConfigResponse: + type: object + properties: + config: + type: string + description: |- + QueryWasmLimitsConfigResponse is the response type for the + Query/WasmLimitsConfig RPC method. It contains the JSON encoded limits for + static validation of Wasm files. diff --git a/go.mod b/go.mod index 40e331de..21132ed2 100644 --- a/go.mod +++ b/go.mod @@ -1,56 +1,54 @@ module github.com/bitsongofficial/go-bitsong -go 1.23.2 +go 1.24.3 require ( cosmossdk.io/api v0.9.2 - cosmossdk.io/client/v2 v2.0.0-beta.3 - cosmossdk.io/collections v1.2.0 + cosmossdk.io/client/v2 v2.0.0-beta.9 + cosmossdk.io/collections v1.3.1 cosmossdk.io/core v0.11.3 cosmossdk.io/errors v1.0.2 - cosmossdk.io/log v1.5.1 + cosmossdk.io/log v1.6.1 cosmossdk.io/math v1.5.3 cosmossdk.io/store v1.1.2 - cosmossdk.io/x/evidence v0.1.1 - cosmossdk.io/x/feegrant v0.1.1 + cosmossdk.io/x/evidence v0.2.0 + cosmossdk.io/x/feegrant v0.2.0 cosmossdk.io/x/tx v0.14.0 - cosmossdk.io/x/upgrade v0.1.4 - github.com/CosmWasm/wasmd v0.53.3 - github.com/CosmWasm/wasmvm/v2 v2.1.6 - github.com/cometbft/cometbft v0.38.17 - github.com/cosmos/cosmos-db v1.1.1 + cosmossdk.io/x/upgrade v0.2.0 + github.com/CosmWasm/wasmd v0.61.3 + github.com/CosmWasm/wasmvm/v3 v3.0.2 + github.com/cometbft/cometbft v0.38.18 + github.com/cosmos/cosmos-db v1.1.3 github.com/cosmos/cosmos-proto v1.0.0-beta.5 - github.com/cosmos/cosmos-sdk v0.53.0 + github.com/cosmos/cosmos-sdk v0.53.4 github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogoproto v1.7.0 - github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 v8.1.1 - github.com/cosmos/ibc-apps/modules/async-icq/v8 v8.0.0 - github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 v8.0.0-20250226172931-56b9c5e4400a - github.com/cosmos/ibc-go/modules/capability v1.0.1 - github.com/cosmos/ibc-go/modules/light-clients/08-wasm v0.4.2-0.20240730185033-ccd4dc278e72 - github.com/cosmos/ibc-go/v8 v8.7.0 + github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v10 v10.1.0 + github.com/cosmos/ibc-apps/modules/ibc-hooks/v10 v10.0.0-20250826214904-d53749a559f6 + github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10 v10.3.0 + github.com/cosmos/ibc-go/v10 v10.3.0 github.com/gogo/protobuf v1.3.2 github.com/golang/protobuf v1.5.4 github.com/gorilla/mux v1.8.1 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/hashicorp/go-metrics v0.5.4 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.22.0 - github.com/rakyll/statik v0.1.7 - github.com/spf13/cast v1.7.1 + github.com/prometheus/client_golang v1.23.0 + github.com/spf13/cast v1.9.2 github.com/spf13/cobra v1.9.1 - github.com/spf13/pflag v1.0.6 + github.com/spf13/pflag v1.0.7 github.com/spf13/viper v1.20.1 - github.com/stretchr/testify v1.10.0 + github.com/stretchr/testify v1.11.0 golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 - golang.org/x/sync v0.13.0 - google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 - google.golang.org/grpc v1.72.0 + golang.org/x/sync v0.16.0 + google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a + google.golang.org/grpc v1.73.0 + google.golang.org/protobuf v1.36.6 gopkg.in/yaml.v2 v2.4.0 ) require ( - cel.dev/expr v0.20.0 // indirect + cel.dev/expr v0.23.0 // indirect cloud.google.com/go v0.118.2 // indirect cloud.google.com/go/auth v0.14.1 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.7 // indirect @@ -58,15 +56,14 @@ require ( cloud.google.com/go/iam v1.4.0 // indirect cloud.google.com/go/monitoring v1.23.0 // indirect cloud.google.com/go/storage v1.50.0 // indirect - cosmossdk.io/depinject v1.2.0 // indirect + cosmossdk.io/depinject v1.2.1 // indirect cosmossdk.io/schema v1.1.0 // indirect - cosmossdk.io/x/circuit v0.1.1 // 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/DataDog/datadog-go v4.8.3+incompatible // indirect github.com/DataDog/zstd v1.5.7 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.49.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.49.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect @@ -75,15 +72,15 @@ require ( 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.22.0 // indirect - github.com/bytedance/sonic v1.13.2 // indirect - github.com/bytedance/sonic/loader v0.2.4 // indirect + github.com/bytedance/sonic v1.14.0 // indirect + github.com/bytedance/sonic/loader v0.3.0 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cloudwego/base64x v0.1.5 // indirect - github.com/cncf/xds/go v0.0.0-20250121191232-2f005788dc42 // indirect + github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect - github.com/cockroachdb/errors v1.11.3 // indirect + github.com/cockroachdb/errors v1.12.0 // 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.5 // indirect @@ -92,7 +89,7 @@ require ( github.com/cometbft/cometbft-db v0.14.1 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v1.2.2 // 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.2 // indirect @@ -107,21 +104,22 @@ require ( github.com/emicklei/dot v1.6.4 // indirect github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect + github.com/ethereum/go-ethereum v1.15.11 // indirect github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect - github.com/getsentry/sentry-go v0.31.1 // indirect - github.com/go-jose/go-jose/v4 v4.0.4 // indirect + github.com/getsentry/sentry-go v0.33.0 // indirect + github.com/go-jose/go-jose/v4 v4.0.5 // 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/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect - github.com/golang/snappy v0.0.4 // indirect + github.com/golang/snappy v0.0.5-0.20231225225746-43d5d4cd4e0e // indirect github.com/google/btree v1.1.3 // indirect github.com/google/flatbuffers v25.2.10+incompatible // indirect github.com/google/go-cmp v0.7.0 // indirect @@ -136,7 +134,7 @@ require ( 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-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-getter v1.7.8 // indirect + github.com/hashicorp/go-getter v1.7.9 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-plugin v1.6.3 // indirect @@ -146,6 +144,7 @@ require ( github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/hashicorp/yamux v0.1.2 // indirect github.com/hdevalence/ed25519consensus v0.2.0 // indirect + github.com/holiman/uint256 v1.3.2 // indirect github.com/huandu/skiplist v1.2.1 // indirect github.com/iancoleman/orderedmap v0.3.0 // indirect github.com/iancoleman/strcase v0.3.0 // indirect @@ -165,7 +164,6 @@ require ( github.com/mdp/qrterminal/v3 v3.2.1 // 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 @@ -175,16 +173,16 @@ require ( github.com/petermattis/goid v0.0.0-20250211185408-f2b9d978cd7a // 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_model v0.6.1 // indirect - github.com/prometheus/common v0.63.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.65.0 // indirect + github.com/prometheus/procfs v0.16.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.14.1 // indirect github.com/rs/cors v1.11.1 // indirect github.com/rs/zerolog v1.34.0 // 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/shamaton/msgpack/v2 v2.2.3 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.12.0 // indirect github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect @@ -200,38 +198,41 @@ require ( go.etcd.io/bbolt v1.4.0 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/contrib/detectors/gcp v1.34.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 // indirect + go.opentelemetry.io/contrib/detectors/gcp v1.35.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 // indirect - go.opentelemetry.io/otel v1.34.0 // indirect - go.opentelemetry.io/otel/metric v1.34.0 // indirect - go.opentelemetry.io/otel/sdk v1.34.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.34.0 // indirect - go.opentelemetry.io/otel/trace v1.34.0 // indirect + go.opentelemetry.io/otel v1.35.0 // indirect + go.opentelemetry.io/otel/metric v1.35.0 // indirect + go.opentelemetry.io/otel/sdk v1.35.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.35.0 // indirect + go.opentelemetry.io/otel/trace v1.35.0 // indirect go.uber.org/mock v0.5.2 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/arch v0.15.0 // indirect - golang.org/x/crypto v0.37.0 // indirect - golang.org/x/net v0.39.0 // indirect - golang.org/x/oauth2 v0.26.0 // indirect - golang.org/x/sys v0.32.0 // indirect - golang.org/x/term v0.31.0 // indirect - golang.org/x/text v0.24.0 // indirect + go.yaml.in/yaml/v2 v2.4.2 // indirect + golang.org/x/arch v0.17.0 // indirect + golang.org/x/crypto v0.38.0 // indirect + golang.org/x/net v0.40.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/term v0.32.0 // indirect + golang.org/x/text v0.25.0 // indirect golang.org/x/time v0.10.0 // indirect - google.golang.org/api v0.221.0 // indirect + google.golang.org/api v0.222.0 // indirect google.golang.org/genproto v0.0.0-20250212204824-5a70512c5d8b // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250422160041-2d3770c4ea7f // indirect - google.golang.org/protobuf v1.36.6 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.2 // indirect nhooyr.io/websocket v1.8.17 // indirect pgregory.net/rapid v1.2.0 // indirect rsc.io/qr v0.2.0 // indirect - sigs.k8s.io/yaml v1.4.0 // indirect + sigs.k8s.io/yaml v1.6.0 // indirect ) replace ( github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 + // temporary replace until upstream release of ibc-hooks for v10 + github.com/cosmos/ibc-apps/modules/ibc-hooks/v10 => github.com/permissionlessweb/ibc-apps/modules/ibc-hooks/v10 v10.1.1 + github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10 => github.com/permissionlessweb/ibc-go/modules/light-clients/08-wasm/v10 v10.0.0-20250829182455-85668e331d2f // dgrijalva/jwt-go is deprecated and doesn't receive security updates. // See: https://github.com/cosmos/cosmos-sdk/issues/13134 github.com/dgrijalva/jwt-go => github.com/golang-jwt/jwt/v4 v4.4.2 @@ -243,13 +244,4 @@ replace ( github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 ) -// v022 debug: - -// run: git clone -b v0.38.17.logs https://github.com/permissionlessweb/cometbft -// run: git clone -b v0.50.11.bitsong https://github.com/permissionlessweb/cosmos-sdk -// -// uncomment: -// replace github.com/cometbft/cometbft => ./cometbft -// replace github.com/cosmos/cosmos-sdk => ./cosmos-sdk - exclude github.com/gogo/protobuf v1.3.3 diff --git a/go.sum b/go.sum index ded590b9..a2d9d27c 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -cel.dev/expr v0.20.0 h1:OunBvVCfvpWlt4dN7zg3FM6TDkzOePe1+foGJ9AXeeI= -cel.dev/expr v0.20.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= +cel.dev/expr v0.23.0 h1:wUb94w6OYQS4uXraxo9U+wUAs9jT47Xvl4iPgAwM2ss= +cel.dev/expr v0.23.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= 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= @@ -616,36 +616,34 @@ cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= cosmossdk.io/api v0.9.2 h1:9i9ptOBdmoIEVEVWLtYYHjxZonlF/aOVODLFaxpmNtg= cosmossdk.io/api v0.9.2/go.mod h1:CWt31nVohvoPMTlPv+mMNCtC0a7BqRdESjCsstHcTkU= -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 v1.2.0 h1:IesfVG8G/+FYCMVMP01frS/Cw99Omk5vBh3cHbO01Gg= -cosmossdk.io/collections v1.2.0/go.mod h1:4NkMoYw6qRA8fnSH/yn1D/MOutr8qyQnwsO50Mz9ItU= +cosmossdk.io/client/v2 v2.0.0-beta.9 h1:xc06zg4G858/pK5plhf8RCfo+KR2mdDKJNrEkfrVAqc= +cosmossdk.io/client/v2 v2.0.0-beta.9/go.mod h1:pHf3CCHX5gmbL9rDCVbXhGI2+/DdAVTEZSLpdd5V9Zs= +cosmossdk.io/collections v1.3.1 h1:09e+DUId2brWsNOQ4nrk+bprVmMUaDH9xvtZkeqIjVw= +cosmossdk.io/collections v1.3.1/go.mod h1:ynvkP0r5ruAjbmedE+vQ07MT6OtJ0ZIDKrtJHK7Q/4c= cosmossdk.io/core v0.11.3 h1:mei+MVDJOwIjIniaKelE3jPDqShCc/F4LkNNHh+4yfo= cosmossdk.io/core v0.11.3/go.mod h1:9rL4RE1uDt5AJ4Tg55sYyHWXA16VmpHgbe0PbJc6N2Y= -cosmossdk.io/depinject v1.2.0 h1:6NW/FSK1IkWTrX7XxUpBmX1QMBozpEI9SsWkKTBc5zw= -cosmossdk.io/depinject v1.2.0/go.mod h1:pvitjtUxZZZTQESKNS9KhGjWVslJZxtO9VooRJYyPjk= +cosmossdk.io/depinject v1.2.1 h1:eD6FxkIjlVaNZT+dXTQuwQTKZrFZ4UrfCq1RKgzyhMw= +cosmossdk.io/depinject v1.2.1/go.mod h1:lqQEycz0H2JXqvOgVwTsjEdMI0plswI7p6KX+MVqFOM= cosmossdk.io/errors v1.0.2 h1:wcYiJz08HThbWxd/L4jObeLaLySopyyuUFB5w4AGpCo= cosmossdk.io/errors v1.0.2/go.mod h1:0rjgiHkftRYPj//3DrD6y8hcm40HcPv/dR4R/4efr0k= -cosmossdk.io/log v1.5.1 h1:wLwiYXmfrort/O+j6EkjF+HvbdrRQd+4cYCPKFSm+zM= -cosmossdk.io/log v1.5.1/go.mod h1:5cXXBvfBkR2/BcXmosdCSLXllvgSjphrrDVdfVRmBGM= +cosmossdk.io/log v1.6.1 h1:YXNwAgbDwMEKwDlCdH8vPcoggma48MgZrTQXCfmMBeI= +cosmossdk.io/log v1.6.1/go.mod h1:gMwsWyyDBjpdG9u2avCFdysXqxq28WJapJvu+vF1y+E= cosmossdk.io/math v1.5.3 h1:WH6tu6Z3AUCeHbeOSHg2mt9rnoiUWVWaQ2t6Gkll96U= cosmossdk.io/math v1.5.3/go.mod h1:uqcZv7vexnhMFJF+6zh9EWdm/+Ylyln34IvPnBauPCQ= cosmossdk.io/schema v1.1.0 h1:mmpuz3dzouCoyjjcMcA/xHBEmMChN+EHh8EHxHRHhzE= cosmossdk.io/schema v1.1.0/go.mod h1:Gb7pqO+tpR+jLW5qDcNOSv0KtppYs7881kfzakguhhI= cosmossdk.io/store v1.1.2 h1:3HOZG8+CuThREKv6cn3WSohAc6yccxO3hLzwK6rBC7o= cosmossdk.io/store v1.1.2/go.mod h1:60rAGzTHevGm592kFhiUVkNC9w7gooSEn5iUBPzHQ6A= -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/circuit v0.2.0 h1:RJPMBQWCQU77EcM9HDTBnqRhq21fcUxgWZl7BZylJZo= +cosmossdk.io/x/circuit v0.2.0/go.mod h1:CjiGXDeZs64nMv0fG+QmvGVTcn7n3Sv4cDszMRR2JqU= +cosmossdk.io/x/evidence v0.2.0 h1:o72zbmgCM7U0v7z7b0XnMB+NqX0tFamqb1HHkQbhrZ0= +cosmossdk.io/x/evidence v0.2.0/go.mod h1:zx/Xqy+hnGVzkqVuVuvmP9KsO6YCl4SfbAetYi+k+sE= +cosmossdk.io/x/feegrant v0.2.0 h1:oq3WVpoJdxko/XgWmpib63V1mYy9ZQN/1qxDajwGzJ8= +cosmossdk.io/x/feegrant v0.2.0/go.mod h1:9CutZbmhulk/Yo6tQSVD5LG8Lk40ZAQ1OX4d1CODWAE= cosmossdk.io/x/tx v0.14.0 h1:hB3O25kIcyDW/7kMTLMaO8Ripj3yqs5imceVd6c/heA= cosmossdk.io/x/tx v0.14.0/go.mod h1:Tn30rSRA1PRfdGB3Yz55W4Sn6EIutr9xtMKSHij+9PM= -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= +cosmossdk.io/x/upgrade v0.2.0 h1:ZHy0xny3wBCSLomyhE06+UmQHWO8cYlVYjfFAJxjz5g= +cosmossdk.io/x/upgrade v0.2.0/go.mod h1:DXDtkvi//TrFyHWSOaeCZGBoiGAE6Rs8/0ABt2pcDD0= 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= @@ -657,17 +655,17 @@ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25 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/CosmWasm/wasmd v0.53.3 h1:kZkkSM2hf0Le7iJPLLNm0QTi2j+wiuLMMn7SyOqBiYw= -github.com/CosmWasm/wasmd v0.53.3/go.mod h1:gP10E56tuToU5rsZR7vZLBL5ssW2mie6KN/WrQLG7/I= -github.com/CosmWasm/wasmvm/v2 v2.1.6 h1:TBJovKsc2PdLngXJx9Cozo4SnxaC/z6SJLZrxw9wv+M= -github.com/CosmWasm/wasmvm/v2 v2.1.6/go.mod h1:bMhLQL4Yp9CzJi9A83aR7VO9wockOsSlZbT4ztOl6bg= +github.com/CosmWasm/wasmd v0.61.3 h1:bz4YNabbJ1bTep66w9HO9PXWiZpHfeCVkboI2XRS4iU= +github.com/CosmWasm/wasmd v0.61.3/go.mod h1:XCJEzqL8LbMC6BxsDA9lMTH6QxJhh/ncuSc1U6fSDB0= +github.com/CosmWasm/wasmvm/v3 v3.0.2 h1:+MLkOX+IdklITLqfG26PCFv5OXdZvNb8z5Wq5JFXTRM= +github.com/CosmWasm/wasmvm/v3 v3.0.2/go.mod h1:oknpb1bFERvvKcY7vHRp1F/Y/z66xVrsl7n9uWkOAlM= 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.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= github.com/DataDog/zstd v1.5.7/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 h1:f2Qw/Ehhimh5uO1fayV0QIW7DShEQqhtUfhYc+cBPlw= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0/go.mod h1:2bIszWvQRlJVmJLiuLhukLImRjKPcYdzzsx6darK02A= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 h1:ErKg/3iS1AKcTkf3yixlZ54f9U1rljCkQyEXWUnIUxc= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0/go.mod h1:yAZHSGnqScoU556rBOVkwLze6WP5N+U11RHuWaGVxwY= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.49.0 h1:o90wcURuxekmXrtxmYWTyNla0+ZEHhud6DI1ZTxd1vI= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.49.0/go.mod h1:6fTWu4m3jocfUZLYF5KsZC1TUfRvEjs7lM4crme/irw= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.49.0 h1:jJKWl98inONJAr/IZrdFQUWcwUO95DLY1XMD1ZIut+g= @@ -680,6 +678,8 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERo 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/OffchainLabs/prysm/v6 v6.0.4 h1:aqWCb2U3LfeahzjORvxXYsL1ebKWT1AUu3Ya3y7LApE= +github.com/OffchainLabs/prysm/v6 v6.0.4/go.mod h1:lMkHT3gWiCOqo4rbuhLTU4FoQ/THni9v6z4w9P6FRyU= 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= @@ -729,17 +729,17 @@ github.com/bits-and-blooms/bitset v1.22.0 h1:Tquv9S8+SGaS3EhyA+up3FXzmkhxPGjQQCk github.com/bits-and-blooms/bitset v1.22.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= 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/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/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.14.1 h1:iA73zAf/fyljNjQKwYzUHD6AD4R8KMasmwa/FBatYVw= github.com/bufbuild/protocompile v0.14.1/go.mod h1:ppVdAIhbr2H8asPk6k4pY7t9zB1OU5DoEw9xY/FUi1c= -github.com/bytedance/sonic v1.13.2 h1:8/H1FempDZqC4VqjptGo14QQlJx8VdZJegxs6wwfqpQ= -github.com/bytedance/sonic v1.13.2/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= +github.com/bytedance/sonic v1.14.0 h1:/OfKt8HFw0kh2rj8N0F6C/qPGRESq0BbaNZgcNXXzQQ= +github.com/bytedance/sonic v1.14.0/go.mod h1:WoEbx8WTcFJfzCe0hbmyTGrfjt8PzNEBdxlNUO24NhA= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= -github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY= -github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= +github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA= +github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= 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= @@ -784,15 +784,15 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH 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-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20250121191232-2f005788dc42 h1:Om6kYQYDUk5wWbT0t0q6pvyM49i9XZAv9dDrkDA7gjk= -github.com/cncf/xds/go v0.0.0-20250121191232-2f005788dc42/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f h1:C5bqEmzEPLsHm9Mv73lSE9e9bKV23aB1vxOsmZrkl3k= +github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f/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/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/errors v1.12.0 h1:d7oCs6vuIMUQRVbi6jWWWEJZahLCfJpnJSVobd1/sUo= +github.com/cockroachdb/errors v1.12.0/go.mod h1:SvzfYNNBshAVbZ8wzNc/UPK3w1vf0dKDUP41ucAIf7g= 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= @@ -804,8 +804,8 @@ github.com/cockroachdb/redact v1.1.6/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZ 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 v0.38.18 h1:1ZHYMdu0S75YxFM13LlPXnOwiIpUW5z9TKMQtTIALpw= +github.com/cometbft/cometbft v0.38.18/go.mod h1:PlOQgf3jQorep+g6oVnJgtP65TJvBJoLiXjGaMdNxBE= 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= @@ -816,12 +816,12 @@ github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV 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-db v1.1.3 h1:7QNT77+vkefostcKkhrzDK9uoIEryzFrU9eoMeaQOPY= +github.com/cosmos/cosmos-db v1.1.3/go.mod h1:kN+wGsnwUJZYn8Sy5Q2O0vCYA99MJllkKASbs6Unb9U= 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.53.0 h1:ZsB2tnBVudumV059oPuElcr0K1lLOutaI6WJ+osNTbI= -github.com/cosmos/cosmos-sdk v0.53.0/go.mod h1:UPcRyFwOUy2PfSFBWxBceO/HTjZOuBVqY583WyazIGs= +github.com/cosmos/cosmos-sdk v0.53.4 h1:kPF6vY68+/xi1/VebSZGpoxQqA52qkhUzqkrgeBn3Mg= +github.com/cosmos/cosmos-sdk v0.53.4/go.mod h1:7U3+WHZtI44dEOnU46+lDzBb2tFh1QlMvi8Z5JugopI= 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= @@ -829,22 +829,12 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ 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.2 h1:qHhKW3I70w+04g5KdsdVSHRbFLgt3yY3qTMd4Xa4rC8= -github.com/cosmos/iavl v1.2.2/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/async-icq/v8 v8.0.0 h1:nKP2+Rzlz2iyvTosY5mvP+aEBPe06oaDl3G7xLGBpNI= -github.com/cosmos/ibc-apps/modules/async-icq/v8 v8.0.0/go.mod h1:D3Q380FpWRFtmUQWLosPxachi6w24Og2t5u/Tww5wtY= -github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 v8.0.0-20250226172931-56b9c5e4400a h1:1r7I7ZaLhmDxpl9qSaiOi2DzCV4qiEpmAoxPZbGbs94= -github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 v8.0.0-20250226172931-56b9c5e4400a/go.mod h1:9+Z14xz3Y+5uEn5i1CvLcDN1aTthEhYUdI7pphySkY8= -github.com/cosmos/ibc-go/modules/apps/callbacks v0.2.1-0.20231113120333-342c00b0f8bd h1:Lx+/5dZ/nN6qPXP2Ofog6u1fmlkCFA1ElcOconnofEM= -github.com/cosmos/ibc-go/modules/apps/callbacks v0.2.1-0.20231113120333-342c00b0f8bd/go.mod h1:JWfpWVKJKiKtd53/KbRoKfxWl8FsT2GPcNezTOk0o5Q= -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/modules/light-clients/08-wasm v0.4.2-0.20240730185033-ccd4dc278e72 h1:QjCi4bJoy9AXLL1e4jqi+4rHYN0gGZAQxf937cdWhw4= -github.com/cosmos/ibc-go/modules/light-clients/08-wasm v0.4.2-0.20240730185033-ccd4dc278e72/go.mod h1:yiulzyQAZ+Ci802z/kVQqTA3lGiSJOmDpTq7kZxOUNE= -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/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/v10 v10.1.0 h1:epKcbFAeWRRw1i1jZnYzLIEm9sgUPaL1RftuRjjUKGw= +github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v10 v10.1.0/go.mod h1:S4ZQwf5/LhpOi8JXSAese/6QQDk87nTdicJPlZ5q9UQ= +github.com/cosmos/ibc-go/v10 v10.3.0 h1:w5DkHih8qn15deAeFoTk778WJU+xC1krJ5kDnicfUBc= +github.com/cosmos/ibc-go/v10 v10.3.0/go.mod h1:CthaR7n4d23PJJ7wZHegmNgbVcLXCQql7EwHrAXnMtw= 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= @@ -876,8 +866,8 @@ github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WA 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/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= 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/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= @@ -917,6 +907,8 @@ github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0+ github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= +github.com/ethereum/go-ethereum v1.15.11 h1:JK73WKeu0WC0O1eyX+mdQAVHUV+UR1a9VB/domDngBU= +github.com/ethereum/go-ethereum v1.15.11/go.mod h1:mf8YiHIb0GR4x4TipcvBUPxJLw1mFdmxzoDi11sDRoI= 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.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= @@ -935,8 +927,8 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.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/getsentry/sentry-go v0.33.0 h1:YWyDii0KGVov3xOaamOnF0mjOrqSjBqwv48UEzn7QFg= +github.com/getsentry/sentry-go v0.33.0/go.mod h1:C55omcY9ChRQIUcVcGcs+Zdy4ZpQGvNJ7JYHIoSWOtE= 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.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= @@ -950,8 +942,8 @@ github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmn 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-jose/go-jose/v4 v4.0.4 h1:VsjPI33J0SB9vQM6PLmNjoHqMQNGPiZ0rHL7Ni7Q6/E= -github.com/go-jose/go-jose/v4 v4.0.4/go.mod h1:NKb5HO1EZccyMpiZNbdUw/14tiXNyUJh188dfnMCAfc= +github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE= +github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA= 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= @@ -980,8 +972,8 @@ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= 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-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= -github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= +github.com/go-viper/mapstructure/v2 v2.4.0/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= @@ -1045,8 +1037,9 @@ 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 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.5-0.20231225225746-43d5d4cd4e0e h1:4bw4WeyTYPp0smaXiJZCNnLrvVBqirQVreixayXezGc= +github.com/golang/snappy v0.0.5-0.20231225225746-43d5d4cd4e0e/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= @@ -1162,8 +1155,8 @@ 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.8 h1:mshVHx1Fto0/MydBekWan5zUipGq7jO0novchgMmSiY= -github.com/hashicorp/go-getter v1.7.8/go.mod h1:2c6CboOEb9jG6YvmC9xdD+tyAFsrUaJPedwXDGr0TM4= +github.com/hashicorp/go-getter v1.7.9 h1:G9gcjrDixz7glqJ+ll5IWvggSBR+R0B54DSRt4qfdC4= +github.com/hashicorp/go-getter v1.7.9/go.mod h1:dyFCmT1AQkDfOIt9NH8pw9XBDqNrIKJT5ylbpi7zPNE= 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= @@ -1183,8 +1176,8 @@ github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerX 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-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= +github.com/hashicorp/go-uuid v1.0.3/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= @@ -1204,6 +1197,10 @@ github.com/hashicorp/yamux v0.1.2 h1:XtB8kyFOyHXYVFnwT5C3+Bdo8gArse7j2AQ0DA0Uey8 github.com/hashicorp/yamux v0.1.2/go.mod h1:C+zze2n6e/7wshOZep2A70/aQU6QBRWJO/G6FT1wIns= github.com/hdevalence/ed25519consensus v0.2.0 h1:37ICyZqdyj0lAZ8P4D1d1id3HqbbG1N3iBb1Tb4rdcU= github.com/hdevalence/ed25519consensus v0.2.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= +github.com/herumi/bls-eth-go-binary v1.31.0 h1:9eeW3EA4epCb7FIHt2luENpAW69MvKGL5jieHlBiP+w= +github.com/herumi/bls-eth-go-binary v1.31.0/go.mod h1:luAnRm3OsMQeokhGzpYmc0ZKwawY7o87PUEP11Z7r7U= +github.com/holiman/uint256 v1.3.2 h1:a9EgMPSC1AAaj1SZL5zIQD3WbwTuHrMGOerLjGmM/TA= +github.com/holiman/uint256 v1.3.2/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= 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= @@ -1319,22 +1316,26 @@ github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcs github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/minio/highwayhash v1.0.3 h1:kbnuUMoHYyVl7szWjSxJnxw11k2U709jqFPPmIUyD6Q= github.com/minio/highwayhash v1.0.3/go.mod h1:GGYsuwP/fPD6Y9hMiXuapVvlIUEhFhMTh0rxU3ik1LQ= +github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= +github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= 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/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= 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/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= 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= @@ -1365,18 +1366,18 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W 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.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/gomega 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.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= -github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= 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/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= +github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= github.com/opencontainers/runc v1.1.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf3phss= github.com/opencontainers/runc v1.1.12/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= @@ -1398,6 +1399,10 @@ github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZO github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= +github.com/permissionlessweb/ibc-apps/modules/ibc-hooks/v10 v10.1.1 h1:oeHC7p50NrBD93veRboGyExAb3+xnm6uPWmvt2LZjlE= +github.com/permissionlessweb/ibc-apps/modules/ibc-hooks/v10 v10.1.1/go.mod h1:nZRt/N/NyTsPgsyNue3Ezi1mY1I7WdbHUxjyxFVlmXA= +github.com/permissionlessweb/ibc-go/modules/light-clients/08-wasm/v10 v10.0.0-20250829182455-85668e331d2f h1:B0NkWvRBydfLwOHcGI8vdbsQyNqcVmyuuRDcQuxCN9Y= +github.com/permissionlessweb/ibc-go/modules/light-clients/08-wasm/v10 v10.0.0-20250829182455-85668e331d2f/go.mod h1:fjAcTJkLCYWaqKl/PzqC3OD0hZZ9+7ptMVEggOuoLjU= github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/petermattis/goid v0.0.0-20250211185408-f2b9d978cd7a h1:ckxP/kGzsxvxXo8jO6E/0QJ8MMmwI7IRj4Fys9QbAZA= github.com/petermattis/goid v0.0.0-20250211185408-f2b9d978cd7a/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= @@ -1430,8 +1435,8 @@ 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.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= +github.com/prometheus/client_golang v1.23.0 h1:ust4zpdl9r4trLY/gSjlm07PuiBq2ynaXXlptpfy8Uc= +github.com/prometheus/client_golang v1.23.0/go.mod h1:i/o0R9ByOnHX0McrTMTyhYvKE4haaf2mW08I+jGAjEE= 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= @@ -1439,8 +1444,8 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: 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.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= 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= @@ -1448,8 +1453,8 @@ 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.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= -github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= +github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE= +github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= 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= @@ -1457,10 +1462,14 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx 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.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -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/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= -github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= +github.com/prysmaticlabs/fastssz v0.0.0-20241008181541-518c4ce73516 h1:xuVAdtz5ShYblG2sPyb4gw01DF8InbOI/kBCQjk7NiM= +github.com/prysmaticlabs/fastssz v0.0.0-20241008181541-518c4ce73516/go.mod h1:h2OlIZD/M6wFvV3YMZbW16lFgh3Rsye00G44J2cwLyU= +github.com/prysmaticlabs/go-bitfield v0.0.0-20240328144219-a1caa50c3a1e h1:ATgOe+abbzfx9kCPeXIW4fiWyDdxlwHw07j8UGhdTd4= +github.com/prysmaticlabs/go-bitfield v0.0.0-20240328144219-a1caa50c3a1e/go.mod h1:wmuf/mdK4VMD+jA9ThwcUKjg3a2XWM9cVfFYjDyY4j4= +github.com/prysmaticlabs/gohashtree v0.0.4-beta.0.20240624100937-73632381301b h1:VK7thFOnhxAZ/5aolr5Os4beiubuD08WiuiHyRqgwks= +github.com/prysmaticlabs/gohashtree v0.0.4-beta.0.20240624100937-73632381301b/go.mod h1:HRuvtXLZ4WkaB1MItToVH2e8ZwKwZPY5/Rcby+CvvLY= 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= @@ -1490,8 +1499,8 @@ github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0 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/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/shamaton/msgpack/v2 v2.2.3 h1:uDOHmxQySlvlUYfQwdjxyybAOzjlQsD1Vjy+4jmO9NM= +github.com/shamaton/msgpack/v2 v2.2.3/go.mod h1:6khjYnkx73f7VQU7wjcFS9DFjs+59naVWJv1TB7qdOI= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= @@ -1511,15 +1520,16 @@ github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= 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/cast v1.9.2 h1:SsGfm7M8QOFtEzumm7UZrZdLLquNdzFYfIbEXntcFbE= +github.com/spf13/cast v1.9.2/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= 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/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M= +github.com/spf13/pflag v1.0.7/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4= github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4= github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE= @@ -1544,14 +1554,18 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F 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.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -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/stretchr/testify v1.11.0 h1:ib4sjIrwZKxE5u/Japgo/7SJV3PvgjGiRNAvTVGqQl8= +github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/supranational/blst v0.3.14 h1:xNMoHRJOTwMn63ip6qoWJ2Ymgvj7E2b9jY2FAwY+qRo= +github.com/supranational/blst v0.3.14/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= 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/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/thomaso-mirodin/intmath v0.0.0-20160323211736-5dc6d854e46e h1:cR8/SYRgyQCt5cNCMniB/ZScMkhI9nk8U5C7SbISXjo= +github.com/thomaso-mirodin/intmath v0.0.0-20160323211736-5dc6d854e46e/go.mod h1:Tu4lItkATkonrYuvtVjG0/rhy15qrNGNTjPdaphtZ/8= 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= @@ -1598,24 +1612,24 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/detectors/gcp v1.34.0 h1:JRxssobiPg23otYU5SbWtQC//snGVIM3Tx6QRzlQBao= -go.opentelemetry.io/contrib/detectors/gcp v1.34.0/go.mod h1:cV4BMFcscUR/ckqLkbfQmF0PRsq8w/lMGzdbCSveBHo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 h1:rgMkmiGfix9vFJDcDi1PK8WEQP4FLQwLDfhp5ZLpFeE= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0/go.mod h1:ijPqXp5P6IRRByFVVg9DY8P5HkxkHE5ARIa+86aXPf4= +go.opentelemetry.io/contrib/detectors/gcp v1.35.0 h1:bGvFt68+KTiAKFlacHW6AhA56GF2rS0bdD3aJYEnmzA= +go.opentelemetry.io/contrib/detectors/gcp v1.35.0/go.mod h1:qGWP8/+ILwMRIUf9uIVLloR1uo5ZYAslM4O6OqUi1DA= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 h1:CV7UdSGJt/Ao6Gp4CXckLxVRRsRgDHoI8XjbL3PDl8s= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0/go.mod h1:FRmFuRJfag1IZ2dPkHnEoSFVgTVPUd2qf5Vi69hLb8I= -go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= -go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= +go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= 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.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= -go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= -go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= -go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= -go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= -go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= +go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= +go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= +go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= +go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o= +go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w= +go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= +go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= 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= @@ -1637,8 +1651,12 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E 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= -golang.org/x/arch v0.15.0 h1:QtOrQd0bTUnhNVNndMpLHNWrDmYzZ2KDqSrEymqInZw= -golang.org/x/arch v0.15.0/go.mod h1:JmwW7aLIoRUKgaTzhkiEFxvcEiQGyOg9BMonBJUS7EE= +go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= +go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v3 v3.0.3 h1:bXOww4E/J3f66rav3pX3m8w6jDE4knZjGOw8b5Y6iNE= +go.yaml.in/yaml/v3 v3.0.3/go.mod h1:tBHosrYAkRZjRAOREWbDnBXUf08JOwYq++0QNwQiWzI= +golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= +golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= 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= @@ -1657,8 +1675,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= -golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= -golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= +golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1796,8 +1814,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= 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= @@ -1827,8 +1845,8 @@ 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.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.26.0 h1:afQXWNNaeC4nvZ0Ed9XvCCzXM6UHJG7iCg0W4fPqSBE= -golang.org/x/oauth2 v0.26.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= 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= @@ -1849,8 +1867,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= -golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= 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= @@ -1961,8 +1979,8 @@ golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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= @@ -1977,8 +1995,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= -golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= -golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= +golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= +golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= 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= @@ -1999,8 +2017,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= -golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= +golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= 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= @@ -2157,8 +2175,8 @@ google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/ google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= -google.golang.org/api v0.221.0 h1:qzaJfLhDsbMeFee8zBRdt/Nc+xmOuafD/dbdgGfutOU= -google.golang.org/api v0.221.0/go.mod h1:7sOU2+TL4TxUTdbi0gWgAIg7tH5qBXxoyhtL+9x3biQ= +google.golang.org/api v0.222.0 h1:Aiewy7BKLCuq6cUCeOUrsAlzjXPqBkEeQ/iwGHVQa/4= +google.golang.org/api v0.222.0/go.mod h1:efZia3nXpWELrwMlN5vyQrD4GmJN1Vw0x68Et3r+a9c= 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= @@ -2306,10 +2324,10 @@ google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOl google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/genproto v0.0.0-20250212204824-5a70512c5d8b h1:TdBaFxGAABTI8sz9jYHPtjje677pS4XXup9vJMlj8hQ= google.golang.org/genproto v0.0.0-20250212204824-5a70512c5d8b/go.mod h1:0TrvLFkilZy+XULmuoWfiTbTRXLWXJ1S44jQTW3lWwE= -google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 h1:hE3bRWtU6uceqlh4fhrSnUyjKHMKB9KrTLLG+bc0ddM= -google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463/go.mod h1:U90ffi8eUL9MwPcrJylN5+Mk2v3vuPDptd5yyNUiRR8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250422160041-2d3770c4ea7f h1:N/PrbTw4kdkqNRzVfWPrBekzLuarFREcbFOiOLkXon4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250422160041-2d3770c4ea7f/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a h1:SGktgSolFCo75dnHJF2yMvnns6jCmHFJ0vE4Vn2JKvQ= +google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a/go.mod h1:a77HrdMjoeKbnd2jmgcWdaS++ZLZAEq3orIOAEIKiVw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= 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= @@ -2357,8 +2375,8 @@ google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5v google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc v1.72.0 h1:S7UkcVa60b5AAQTaO6ZKamFp1zMZSU0fGDK2WZLbBnM= -google.golang.org/grpc v1.72.0/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= +google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok= +google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc= 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= @@ -2468,6 +2486,6 @@ rsc.io/qr v0.2.0/go.mod h1:IF+uZjkb9fqyeF/4tlBoynqmQxUoPfWEKh921coOuXs= 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= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/proto/bitsong/cadence/v1/cadence.proto b/proto/bitsong/cadence/v1/cadence.proto deleted file mode 100644 index d6d9a4b4..00000000 --- a/proto/bitsong/cadence/v1/cadence.proto +++ /dev/null @@ -1,13 +0,0 @@ -syntax = "proto3"; -package bitsong.cadence.v1; - -option go_package = "github.com/bitsongofficial/go-bitsong/x/cadence/types"; - -// This object is used to store the contract address and the -// jail status of the contract. -message CadenceContract { - // The address of the contract. - string contract_address = 1; - // The jail status of the contract. - bool is_jailed = 2; -} \ No newline at end of file diff --git a/proto/bitsong/cadence/v1/genesis.proto b/proto/bitsong/cadence/v1/genesis.proto deleted file mode 100644 index 1e3041a1..00000000 --- a/proto/bitsong/cadence/v1/genesis.proto +++ /dev/null @@ -1,26 +0,0 @@ -syntax = "proto3"; -package bitsong.cadence.v1; - -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "bitsong/cadence/v1/cadence.proto"; - -option go_package = "github.com/bitsongofficial/go-bitsong/x/cadence/types"; - -// GenesisState - initial state of module -message GenesisState { - // Params of this module - Params params = 1 [ - (gogoproto.nullable) = false, - (gogoproto.jsontag) = "params,omitempty" - ]; -} - -// Params defines the set of module parameters. -message Params { - // contract_gas_limit defines the maximum amount of gas that can be used by a contract. - uint64 contract_gas_limit = 1 [ - (gogoproto.jsontag) = "contract_gas_limit,omitempty", - (gogoproto.moretags) = "yaml:\"contract_gas_limit\"" - ]; -} diff --git a/proto/bitsong/cadence/v1/query.proto b/proto/bitsong/cadence/v1/query.proto deleted file mode 100644 index 99fc9a3b..00000000 --- a/proto/bitsong/cadence/v1/query.proto +++ /dev/null @@ -1,65 +0,0 @@ -syntax = "proto3"; -package bitsong.cadence.v1; - -import "cosmos/base/query/v1beta1/pagination.proto"; -import "gogoproto/gogo.proto"; -import "google/api/annotations.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "bitsong/cadence/v1/genesis.proto"; -import "bitsong/cadence/v1/cadence.proto"; - -option go_package = "github.com/bitsongofficial/go-bitsong/x/cadence/types"; - -// Query defines the gRPC querier service. -service Query { - // CadenceContracts - rpc CadenceContracts(QueryCadenceContracts) - returns (QueryCadenceContractsResponse) { - option (google.api.http).get = - "/bitsong/cadence/v1/contracts"; - } - // CadenceContract - rpc CadenceContract(QueryCadenceContract) - returns (QueryCadenceContractResponse) { - option (google.api.http).get = - "/bitsong/cadence/v1/contracts/{contract_address}"; - } - // Params - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/bitsong/cadence/v1/params"; - } -} - -// QueryCadenceContracts is the request type to get all contracts. -message QueryCadenceContracts { - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 1; -} - -// QueryCadenceContractsResponse is the response type for the Query/CadenceContracts RPC method. -message QueryCadenceContractsResponse { - // cadence_contracts are the cadence contract s. - repeated CadenceContract cadence_contracts = 1 [ (gogoproto.nullable) = false ]; - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryCadenceContract is the request type to get a single contract. -message QueryCadenceContract { - // contract_address is the address of the contract to query. - string contract_address = 1; -} - -// QueryCadenceContractResponse is the response type for the Query/CadenceContract RPC method. -message QueryCadenceContractResponse { - // contract is the cadence contract . - CadenceContract cadence_contract = 1 [(gogoproto.nullable) = false]; -} - -// QueryParams is the request type to get all module params. -message QueryParamsRequest {} - -// QueryCadenceContractsResponse is the response type for the Query/CadenceContracts RPC method. -message QueryParamsResponse { - Params params = 1 [(gogoproto.jsontag) = "params", (gogoproto.moretags) = "yaml:\"params\""]; -} diff --git a/proto/bitsong/cadence/v1/tx.proto b/proto/bitsong/cadence/v1/tx.proto deleted file mode 100644 index a1e8b066..00000000 --- a/proto/bitsong/cadence/v1/tx.proto +++ /dev/null @@ -1,103 +0,0 @@ -syntax = "proto3"; -package bitsong.cadence.v1; - -option go_package = "github.com/bitsongofficial/go-bitsong/x/cadence/types"; - -import "google/api/annotations.proto"; -import "cosmos/msg/v1/msg.proto"; -import "bitsong/cadence/v1/genesis.proto"; -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -import "amino/amino.proto"; - -// Msg defines the Msg service. -service Msg { - option (cosmos.msg.v1.service) = true; - - // RegisterCadenceContract defines the endpoint for - // registering a new cadence contract . - rpc RegisterCadenceContract(MsgRegisterCadenceContract) - returns (MsgRegisterCadenceContractResponse) { - option (google.api.http).post = "/bitsong/cadence/v1/tx/register"; - }; - - // UnregisterCadenceContract defines the endpoint for - // unregistering a cadence contract . - rpc UnregisterCadenceContract(MsgUnregisterCadenceContract) - returns (MsgUnregisterCadenceContractResponse) { - option (google.api.http).post = "/bitsong/cadence/v1/tx/unregister"; - }; - - // UnjailCadenceContract defines the endpoint for - // unjailing a cadence contract . - rpc UnjailCadenceContract(MsgUnjailCadenceContract) - returns (MsgUnjailCadenceContractResponse) { - option (google.api.http).post = "/bitsong/cadence/v1/tx/unjail"; - }; - - // UpdateParams defines a governance operation for updating the x/cadence module - // parameters. The authority is hard-coded to the x/gov module account. - // - // Since: cosmos-sdk 0.47 - rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); -} - -// MsgRegisterCadenceContract is the Msg/RegisterCadenceContract request type. -message MsgRegisterCadenceContract { - option (cosmos.msg.v1.signer) = "sender_address"; - // The address of the sender. - string sender_address = 1; - // The address of the contract to register. - string contract_address = 2; -} - -// MsgRegisterCadenceContractResponse defines the response structure for executing a -// MsgRegisterCadenceContract message. -message MsgRegisterCadenceContractResponse {} - -// MsgUnregisterCadenceContract is the Msg/UnregisterCadenceContract request type. -message MsgUnregisterCadenceContract { - option (cosmos.msg.v1.signer) = "sender_address"; - // The address of the sender. - string sender_address = 1; - // The address of the contract to unregister. - string contract_address = 2; -} - -// MsgUnregisterCadenceContractResponse defines the response structure for executing a -// MsgUnregisterCadenceContract message. -message MsgUnregisterCadenceContractResponse {} - -// MsgUnjailCadenceContract is the Msg/UnjailCadenceContract request type. -message MsgUnjailCadenceContract { - option (cosmos.msg.v1.signer) = "sender_address"; - // The address of the sender. - string sender_address = 1; - // The address of the contract to unjail. - string contract_address = 2; -} - -// MsgUnjailCadenceContractResponse defines the response structure for executing a -// MsgUnjailCadenceContract message. -message MsgUnjailCadenceContractResponse {} - -// MsgUpdateParams is the Msg/UpdateParams request type. -// -// Since: cosmos-sdk 0.47 -message MsgUpdateParams { - option (cosmos.msg.v1.signer) = "authority"; - - // authority is the address of the governance account. - string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - - // params defines the x/cadence parameters to update. - // - // NOTE: All parameters must be supplied. - Params params = 2 [(gogoproto.nullable) = false]; -} - -// MsgUpdateParamsResponse defines the response structure for executing a -// MsgUpdateParams message. -// -// Since: cosmos-sdk 0.47 -message MsgUpdateParamsResponse {} diff --git a/scripts/README.md b/scripts/README.md index 74f124cc..baebeb6c 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -6,7 +6,7 @@ Make files allow us to organize make functions into files specific to their purp |---|---|---|---|---| | `build` | builds `bitsongd` binary | | | | | `docker` | current docker options | | | | -| `e2e` | current e2e & integration tests | | | | +| `ict` | current ict & integration tests | | | | | `hl` | current heighliner options | | | | | `localnet` | localBitsong commands | | | | | `proto` | generate protobuf documentation and files | | | | diff --git a/scripts/changelog/cliff.toml b/scripts/changelog/cliff.toml new file mode 100644 index 00000000..d70fb1e8 --- /dev/null +++ b/scripts/changelog/cliff.toml @@ -0,0 +1,92 @@ +# git-cliff ~ configuration file +# https://git-cliff.org/docs/configuration + +[changelog] +# A Tera template to be rendered as the changelog's footer. +# See https://keats.github.io/tera/docs/#introduction +header = """ +# Changelog\n +All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.\n +""" +# A Tera template to be rendered for each release in the changelog. +# See https://keats.github.io/tera/docs/#introduction +body = """ +--- +{% if version %}\ + {% if previous.version %}\ + ## [{{ version | trim_start_matches(pat="v") }}]($REPO/compare/{{ previous.version }}..{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }} + {% else %}\ + ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} + {% endif %}\ +{% else %}\ + ## [unreleased] +{% endif %}\ +{% for group, commits in commits | group_by(attribute="group") %} + ### {{ group | striptags | trim | upper_first }} + {% for commit in commits + | filter(attribute="scope") + | sort(attribute="scope") %} + - **({{commit.scope}})**{% if commit.breaking %} [**breaking**]{% endif %} \ + {{ commit.message }} - ([{{ commit.id | truncate(length=7, end="") }}]($REPO/commit/{{ commit.id }})) - {{ commit.author.name }} + {%- endfor -%} + {% raw %}\n{% endraw %}\ + {%- for commit in commits %} + {%- if commit.scope -%} + {% else -%} + - {% if commit.breaking %} [**breaking**]{% endif %}\ + {{ commit.message }} - ([{{ commit.id | truncate(length=7, end="") }}]($REPO/commit/{{ commit.id }})) - {{ commit.author.name }} + {% endif -%} + {% endfor -%} +{% endfor %}\n +""" +# A Tera template to be rendered as the changelog's footer. +# See https://keats.github.io/tera/docs/#introduction +footer = """ + +""" +# Remove leading and trailing whitespaces from the changelog's body. +trim = true +# postprocessors +postprocessors = [ + # Replace the placeholder `` with a URL. + { pattern = '\$REPO', replace = "https://github.com/bitsongofficial/go-bitsong" }, # replace repository URL +] + +[git] +# Parse commits according to the conventional commits specification. +# See https://www.conventionalcommits.org +conventional_commits = true +# Exclude commits that do not match the conventional commits specification. +filter_unconventional = true +# Split commits on newlines, treating each line as an individual commit. +split_commits = false +# An array of regex based parsers to modify commit messages prior to further processing. +commit_preprocessors = [ + # Replace issue numbers with link templates to be updated in `changelog.postprocessors`. + #{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/orhun/git-cliff/issues/${2}))"}, +] +# An array of regex based parsers for extracting data from the commit message. +# Assigns commits to groups. +# Optionally sets the commit's scope and can decide to exclude commits from further processing. +commit_parsers = [ + { message = "^feat", group = "πŸš€ New features" }, + { message = "^fix", group = "πŸ› Bug fixes" }, + { message = "^perf", group = "⚑ Performance" }, + { message = "^chore\\(version\\):", skip = true }, + { message = "^chore", group = "βš™οΈ Miscellaneous" }, + { message = "^doc", group = "βš™οΈ Miscellaneous" }, + { message = "^refactor", group = "βš™οΈ Miscellaneous" }, + { message = "^style", group = "βš™οΈ Miscellaneous" }, + { message = "^revert", group = "βš™οΈ Miscellaneous" }, + { message = "^test", group = "βš™οΈ Miscellaneous" }, + { body = ".*security", group = "βš™οΈ Miscellaneous" }, + # Catch-all for any other commits + { message = "^.*", group = "βš™οΈ Miscellaneous" }, +] +# Exclude commits that are not matched by any commit parser. +filter_commits = false +# Order releases topologically instead of chronologically. +topo_order = false +# Order of commits in each group/release within the changelog. +# Allowed values: newest, oldest +sort_commits = "oldest" diff --git a/scripts/changelog/gen.sh b/scripts/changelog/gen.sh new file mode 100644 index 00000000..ef7b385e --- /dev/null +++ b/scripts/changelog/gen.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# Check if git-cliff is installed +if ! command -v git-cliff &> /dev/null; then + echo "git-cliff not found. Attempting to install via Cargo..." + # Check if Cargo is installed + if ! command -v cargo &> /dev/null; then + echo "Error: Cargo is not installed. Please install Rust and Cargo first to install git-cliff." + exit 1 + fi + # Install git-cliff using Cargo + cargo install git-cliff + # Verify installation was successful + if ! command -v git-cliff &> /dev/null; then + echo "Error: Failed to install git-cliff. Please check your Cargo setup or install it manually." + exit 1 + fi + echo "git-cliff installed successfully." +fi + +# Generate the latest changelog and prepend it to CHANGELOG.md +echo "generating changelog.." +git-cliff --config scripts/changelog/cliff.toml -u +echo "changelog generated" + +# git cliff --config scripts/changelog/cliff.toml -l --prepend CHANGELOG.md \ No newline at end of file diff --git a/contrib/docker/run_bitsongd.sh b/scripts/docker/run_bitsongd.sh similarity index 100% rename from contrib/docker/run_bitsongd.sh rename to scripts/docker/run_bitsongd.sh diff --git a/contrib/docker/setup_and_run.sh b/scripts/docker/setup_and_run.sh similarity index 100% rename from contrib/docker/setup_and_run.sh rename to scripts/docker/setup_and_run.sh diff --git a/contrib/docker/setup_bitsongd.sh b/scripts/docker/setup_bitsongd.sh similarity index 100% rename from contrib/docker/setup_bitsongd.sh rename to scripts/docker/setup_bitsongd.sh diff --git a/scripts/gen-pulsar.sh b/scripts/gen-pulsar.sh new file mode 100755 index 00000000..e5acc448 --- /dev/null +++ b/scripts/gen-pulsar.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# this script is for generating protobuf files for the new google.golang.org/protobuf API +set -eo pipefail + +protoc_install_gopulsar() { + go install github.com/cosmos/cosmos-proto/cmd/protoc-gen-go-pulsar@latest + go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest +} + +protoc_install_gopulsar + +echo "Cleaning API directory" +(cd api; find ./ -type f \( -iname \*.pulsar.go -o -iname \*.pb.go -o -iname \*.cosmos_orm.go -o -iname \*.pb.gw.go \) -delete; find . -empty -type d -delete; cd ..) + +echo "Generating API module" +(cd proto; buf generate --template buf.gen.pulsar.yaml) \ No newline at end of file diff --git a/scripts/gen-swagger.sh b/scripts/gen-swagger.sh new file mode 100755 index 00000000..82cfe1b4 --- /dev/null +++ b/scripts/gen-swagger.sh @@ -0,0 +1,208 @@ +#!/usr/bin/env bash +set -euo pipefail + +prepare_swagger_gen() { + go install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger@v1.16.0 +} + +run_npm() { + if command -v npm &>/dev/null; then + npm "$@" + else + if command -v docker &>/dev/null; then + docker run --rm -v "$project_root":/workspace -w /workspace node:14-alpine npm "$@" + else + echo "Error: Neither npm nor docker is available." >&2 + exit 1 + fi + fi +} + +run_swagger_combine() { + if command -v swagger-combine &>/dev/null; then + swagger-combine "$@" + else + if command -v npm &>/dev/null; then + npx swagger-combine "$@" + else + docker run --rm -v "$project_root":/workspace -w /workspace node:14-alpine npx swagger-combine "$@" + fi + fi +} + +run_swagger_merger() { + if command -v swagger-merger &>/dev/null; then + swagger-merger "$@" + else + if command -v npm &>/dev/null; then + npx swagger-merger "$@" + else + docker run --rm -v "$project_root":/workspace -w /workspace node:14-alpine npx swagger-merger "$@" + fi + fi +} + +echo "Generating Swagger API documentation for Bitsong..." + +go mod tidy +prepare_swagger_gen +mkdir -p tmp-swagger-gen + +# Get dependency directories +cosmos_sdk_dir=$(go list -f '{{ .Dir }}' -m github.com/cosmos/cosmos-sdk) +wasmd=$(go list -f '{{ .Dir }}' -m github.com/CosmWasm/wasmd) + +# Check if packet-forward-middleware exists in go.mod +if go list -m github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v10 &>/dev/null; then + pfm=$(go list -f '{{ .Dir }}' -m "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v10") +elif go list -m github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 &>/dev/null; then + pfm=$(go list -f '{{ .Dir }}' -m "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8") +else + echo "Warning: packet-forward-middleware not found in go.mod, skipping..." + pfm="" +fi + +cd proto + +# Find proto directories including dependencies +if [ -n "$pfm" ]; then + proto_dirs=$(find ./ "$cosmos_sdk_dir"/proto "$wasmd"/proto "$pfm"/proto -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) +else + proto_dirs=$(find ./ "$cosmos_sdk_dir"/proto "$wasmd"/proto -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) +fi + +for dir in $proto_dirs; do + # generate swagger files (filter query files) + query_file=$(find "${dir}" -maxdepth 1 \( -name 'query.proto' -o -name 'service.proto' \)) + if [ -n "$query_file" ]; then + echo "Generating swagger for: $query_file" + buf generate --template buf.gen.swagger.yaml $query_file + fi +done +cd .. + +# Create the tmp-swagger-gen directory structure if it doesn't exist +mkdir -p ./tmp-swagger-gen/cosmos/tx/v1beta1 +mkdir -p ./tmp-swagger-gen/cosmos/autocli/v1 + +# Fix circular definitions in cosmos by removing them (if files exist) +if [ -f "./tmp-swagger-gen/cosmos/tx/v1beta1/service.swagger.json" ]; then + jq 'del(.definitions["cosmos.tx.v1beta1.ModeInfo.Multi"].properties.mode_infos.items["$ref"])' ./tmp-swagger-gen/cosmos/tx/v1beta1/service.swagger.json > ./tmp-swagger-gen/cosmos/tx/v1beta1/fixed_service.swagger.json + rm -rf ./tmp-swagger-gen/cosmos/tx/v1beta1/service.swagger.json +fi + +if [ -f "./tmp-swagger-gen/cosmos/autocli/v1/query.swagger.json" ]; then + jq 'del(.definitions["cosmos.autocli.v1.ServiceCommandDescriptor"].properties.sub_commands)' ./tmp-swagger-gen/cosmos/autocli/v1/query.swagger.json > ./tmp-swagger-gen/cosmos/autocli/v1/fixed_query.swagger.json + rm -rf ./tmp-swagger-gen/cosmos/autocli/v1/query.swagger.json +fi + +# Delete cosmos/mint path since bitsong may use its own module +rm -rf ./tmp-swagger-gen/cosmos/mint + +mkdir -p ./tmp-swagger-gen/_all + +# Convert all *.swagger.json files into a single folder _all +files=$(find ./tmp-swagger-gen -name '*.swagger.json' -print0 | xargs -0) +counter=0 +for f in $files; do + echo "[+] $f" + case "$f" in + *router*) cp "$f" ./tmp-swagger-gen/_all/pfm-$counter.json ;; + *cosmwasm*) cp "$f" ./tmp-swagger-gen/_all/cosmwasm-$counter.json ;; + *bitsong*) cp "$f" ./tmp-swagger-gen/_all/bitsong-$counter.json ;; + *cosmos*) cp "$f" ./tmp-swagger-gen/_all/cosmos-$counter.json ;; + *) cp "$f" ./tmp-swagger-gen/_all/other-$counter.json ;; + esac + counter=$(expr $counter + 1) +done + +# Ensure jq is available. +if ! command -v jq &> /dev/null; then + echo "Error: jq is not installed. Please install jq." >&2 + exit 1 +fi + +# Determine directories. +current_dir="$(dirname "$(realpath "$0")")" +project_root="$(dirname "$current_dir")" +all_dir="$project_root/tmp-swagger-gen/_all" + +# Extract the version from go.mod. +version=$(grep "^module" "$project_root/go.mod" | head -n1 | awk -F'/' '{print $NF}' | tr -d ' ') +if [ -z "$version" ]; then + version="go-bitsong" +fi + +# Build the base JSON structure. +base_json=$(jq -n --arg version "$version" '{ + swagger: "2.0", + info: { title: "Bitsong Network API", version: $version, description: "REST API for Bitsong blockchain" }, + schemes: ["http", "https"], + consumes: ["application/json"], + produces: ["application/json"], + paths: {}, + definitions: {} +}') + +# Save the base JSON to a temporary file. +temp_file=$(mktemp) +echo "$base_json" > "$temp_file" + +# Loop through all JSON files in the target directory and merge their "paths" and "definitions". +for file in "$all_dir"/*.json; do + # Skip if no files found + [ -f "$file" ] || continue + + # Skip FINAL.json to avoid merging our final output. + if [[ $(basename "$file") == "FINAL.json" ]]; then + continue + fi + new_json=$(cat "$file") + temp_file2=$(mktemp) + jq --argjson new "$new_json" ' + .paths += ($new.paths // {}) | + .definitions += ($new.definitions // {})' "$temp_file" > "$temp_file2" + mv "$temp_file2" "$temp_file" +done + +# Loop through all paths and methods to update any "operationId" by appending a random 5-character suffix. +jq -r '.paths | to_entries[] | "\(.key) \(.value | keys[])"' "$temp_file" | while read -r path method; do + # Generate a simple random suffix using timestamp and process ID + suffix=$(printf "%05d" $((RANDOM % 100000))) + temp_file2=$(mktemp) + jq --arg path "$path" --arg method "$method" --arg suffix "$suffix" ' + if (.paths[$path][$method] | has("operationId")) + then .paths[$path][$method].operationId |= (. + "_" + $suffix) + else . end' "$temp_file" > "$temp_file2" + mv "$temp_file2" "$temp_file" +done + +# Save the final merged JSON to FINAL.json. +jq . "$temp_file" > "$all_dir/FINAL.json" +rm "$temp_file" + +echo "Merged JSON saved to $all_dir/FINAL.json" + +# Create output directory +mkdir -p ./docs/static + +# Check if we have any swagger files generated +if [ ! -f "$all_dir/FINAL.json" ] || [ ! -s "$all_dir/FINAL.json" ]; then + echo "No swagger files generated. Creating basic swagger template..." + echo "$base_json" | jq . > "./docs/static/swagger.yaml" +else + # Use swagger-combine to create a swagger temp file with reference pointers. + run_swagger_combine "$all_dir/FINAL.json" -o "./tmp-swagger-gen/tmp_swagger.yaml" -f yaml --continueOnConflictingPaths true --includeDefinitions true + + # Use swagger-merger to extend the $ref instances to their full value. + run_swagger_merger --input "./tmp-swagger-gen/tmp_swagger.yaml" -o "./docs/static/swagger.yaml" +fi + +# Copy to swagger directory for serving +# mkdir -p ./swagger +# cp ./docs/static/swagger.yaml ./swagger/swagger.yaml + +# Cleanup. +rm -rf tmp-swagger-gen + +echo "Swagger generation complete. Output at ./docs/static/swagger.yaml" \ No newline at end of file diff --git a/scripts/generate-swagger-docs.sh b/scripts/generate-swagger-docs.sh deleted file mode 100755 index 7496adca..00000000 --- a/scripts/generate-swagger-docs.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -SWAGGER_DIR=./swagger -SWAGGER_UI_DIR=${SWAGGER_DIR}/swagger-ui - -SDK_VERSION=$(go list -m -f '{{ .Version }}' github.com/cosmos/cosmos-sdk) -IBC_VERSION=$(go list -m -f '{{ .Version }}' github.com/cosmos/ibc-go/v8) - -SDK_RAW_URL=https://raw.githubusercontent.com/cosmos/cosmos-sdk/${SDK_VERSION}/client/docs/swagger-ui/swagger.yaml -IBC_RAW_URL=https://raw.githubusercontent.com/cosmos/ibc-go/${IBC_VERSION}/docs/client/swagger-ui/swagger.yaml - -SWAGGER_UI_VERSION=4.11.0 -SWAGGER_UI_DOWNLOAD_URL=https://github.com/swagger-api/swagger-ui/archive/refs/tags/v${SWAGGER_UI_VERSION}.zip -SWAGGER_UI_PACKAGE_NAME=${SWAGGER_DIR}/swagger-ui-${SWAGGER_UI_VERSION} - -mkdir -p ./tmp-swagger-gen - -proto_dirs=$(find ./proto -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) -for dir in $proto_dirs; do - # generate swagger files (filter query files) - query_file=$(find "${dir}" -maxdepth 2 \( -name 'query.proto' -o -name 'service.proto' \)) - if [[ ! -z "$query_file" ]]; then - protoc \ - -I "proto" \ - -I "third_party/proto" \ - "$query_file" \ - --swagger_out ./tmp-swagger-gen \ - --swagger_opt logtostderr=true \ - --swagger_opt fqn_for_swagger_name=true \ - --swagger_opt simple_operation_ids=true - fi -done - -# download Cosmos SDK swagger yaml file -echo "SDK version ${SDK_VERSION}" -wget "${SDK_RAW_URL}" -O ${SWAGGER_DIR}/swagger-sdk.yaml - -# download IBC swagger yaml file -echo "IBC version ${IBC_VERSION}" -wget "${IBC_RAW_URL}" -O ${SWAGGER_DIR}/swagger-ibc.yaml - -# combine swagger yaml files using nodejs package `swagger-combine` -# all the individual swagger files need to be configured in `config.json` for merging -swagger-combine ${SWAGGER_DIR}/config.json -f yaml \ - -o ${SWAGGER_DIR}/swagger.yaml \ - --continueOnConflictingPaths true \ - --includeDefinitions true - -# if swagger-ui does not exist locally, download swagger-ui and move dist directory to -# swagger-ui directory, then remove zip file and unzipped swagger-ui directory -if [ ! -d ${SWAGGER_UI_DIR} ]; then - # download swagger-ui - wget ${SWAGGER_UI_DOWNLOAD_URL} -O ${SWAGGER_UI_PACKAGE_NAME}.zip - # unzip swagger-ui package - unzip ${SWAGGER_UI_PACKAGE_NAME}.zip -d ${SWAGGER_DIR} - # move swagger-ui dist directory to swagger-ui directory - mv ${SWAGGER_UI_PACKAGE_NAME}/dist ${SWAGGER_UI_DIR} - # remove swagger-ui zip file and unzipped swagger-ui directory - rm -rf ${SWAGGER_UI_PACKAGE_NAME}.zip ${SWAGGER_UI_PACKAGE_NAME} -fi - -# move generated swagger yaml file to swagger-ui directory -cp ${SWAGGER_DIR}/swagger.yaml ${SWAGGER_DIR}/swagger-ui/ - -# update swagger initializer to default to swagger.yaml -# Note: using -i.bak makes this compatible with both GNU and BSD/Mac -sed -i.bak "s|https://petstore.swagger.io/v2/swagger.json|swagger.yaml|" ${SWAGGER_UI_DIR}/swagger-initializer.js - -# generate statik golang code using updated swagger-ui directory -statik -src=${SWAGGER_DIR}/swagger-ui -dest=${SWAGGER_DIR} -f -m - -rm -rf tmp-swagger-gen - -# log whether or not the swagger directory was updated -if [ -n "$(git status ${SWAGGER_DIR} --porcelain)" ]; then - echo "\033[91mSwagger updated\033[0m" -else - echo "\033[92mSwagger in sync\033[0m" -fi \ No newline at end of file diff --git a/scripts/makefiles/bsh.mk b/scripts/makefiles/bsh.mk new file mode 100644 index 00000000..6fe009bd --- /dev/null +++ b/scripts/makefiles/bsh.mk @@ -0,0 +1,38 @@ +bsh-help: + @echo "Bitsong e2e testing subcommands" + @echo "" + @echo "Usage:" + @echo " make bsh-[command]" + @echo "" + @echo "Testing bitsong app functions using its daemon + sh scripts" + @echo "Available Commands:" + @echo " bsh View bitsong sh tests available to run" + @echo " bsh-all Run all sh tests in repo" + @echo " bsh-nfts Run sh test for x/nft module" + @echo " bsh-ibchook Run sh test for ibc hook sanity" + @echo " bsh-pfm Run sh test for packet-forward-middleware sanity" + @echo " bsh-aa Run sh test for sane deployment & use of Abstract Account" + @echo " bsh-polytone Run sh test for ibc + wasm sanity" + @echo " bsh-staking-hooks Run sh test for staking hook sanity" + @echo " bsh-upgrade Run sh test for upgrade proposal & performance sanity" + +bsh: bsh-help +bsh-all: bsh-upgrade bsh-staking-hooks bsh-polytone bsh-aa bsh-pfm bsh-ibchook bsh-nfts +bsh-aa: + cd tests/bsh/aa && sh a.sh +bsh-ibchook: + cd tests/bsh/ibchook && sh a.sh +bsh-upgrade: + cd tests/bsh/upgrade && sh a.sh +bsh-staking-hooks: + cd tests/bsh/staking-hooks && sh a.sh +bsh-polytone: + cd tests/bsh/polytone && sh a.sh +bsh-pfm: + cd tests/bsh/pfm && sh a.sh +bsh-nfts: + cd tests/bsh/nft && sh a.sh + + +# include simulations +# include sims.mk \ No newline at end of file diff --git a/scripts/makefiles/build.mk b/scripts/makefiles/build.mk index eec1594f..a3c2e0ea 100644 --- a/scripts/makefiles/build.mk +++ b/scripts/makefiles/build.mk @@ -45,6 +45,7 @@ build-check-version: # a lot of time due to QEMU virtualization but it's the only way (afaik) # to get a statically linked binary with CosmWasm build-reproducible: build-reproducible-amd64 build-reproducible-arm64 + sh scripts/release/prep-release.sh build-reproducible-amd64: go.sum mkdir -p $(BUILDDIR) diff --git a/scripts/makefiles/cache.mk b/scripts/makefiles/cache.mk new file mode 100644 index 00000000..6094ae6d --- /dev/null +++ b/scripts/makefiles/cache.mk @@ -0,0 +1,57 @@ +$(BTSG_DEVCACHE): + @echo "creating .cache dir structure..." + mkdir -p $@ + mkdir -p $(BTSG_DEVCACHE_BIN) + mkdir -p $(BTSG_DEVCACHE_INCLUDE) + mkdir -p $(BTSG_DEVCACHE_VERSIONS) + mkdir -p $(BTSG_DEVCACHE_NODE_MODULES) + mkdir -p $(BTSG_DEVCACHE)/run +cache: $(BTSG_DEVCACHE) + +# $(GIT_CHGLOG_VERSION_FILE): $(BTSG_DEVCACHE) +# @echo "installing git-chglog $(GIT_CHGLOG_VERSION) ..." +# rm -f $(GIT_CHGLOG) +# GOBIN=$(BTSG_DEVCACHE_BIN) go install github.com/git-chglog/git-chglog/cmd/git-chglog@$(GIT_CHGLOG_VERSION) +# rm -rf "$(dir $@)" +# mkdir -p "$(dir $@)" +# touch $@ +# $(GIT_CHGLOG): $(GIT_CHGLOG_VERSION_FILE) + +$(MOCKERY_VERSION_FILE): $(BTSG_DEVCACHE) + @echo "installing mockery $(MOCKERY_VERSION) ..." + rm -f $(MOCKERY) + GOBIN=$(BTSG_DEVCACHE_BIN) go install -ldflags '-s -w -X github.com/vektra/mockery/v2/pkg/config.SemVer=$(MOCKERY_VERSION)' github.com/vektra/mockery/v2@v$(MOCKERY_VERSION) + rm -rf "$(dir $@)" + mkdir -p "$(dir $@)" + touch $@ +$(MOCKERY): $(MOCKERY_VERSION_FILE) + +$(GOLANGCI_LINT_VERSION_FILE): $(BTSG_DEVCACHE) + @echo "installing golangci-lint $(GOLANGCI_LINT_VERSION) ..." + rm -f $(GOLANGCI_LINT) + GOBIN=$(BTSG_DEVCACHE_BIN) go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION) + rm -rf "$(dir $@)" + mkdir -p "$(dir $@)" + touch $@ +$(GOLANGCI_LINT): $(GOLANGCI_LINT_VERSION_FILE) + +$(STATIK_VERSION_FILE): $(BTSG_DEVCACHE) + @echo "Installing statik $(STATIK_VERSION) ..." + rm -f $(STATIK) + GOBIN=$(BTSG_DEVCACHE_BIN) $(GO) install github.com/rakyll/statik@$(STATIK_VERSION) + rm -rf "$(dir $@)" + mkdir -p "$(dir $@)" + touch $@ +$(STATIK): $(STATIK_VERSION_FILE) + +$(COSMOVISOR_VERSION_FILE): $(BTSG_DEVCACHE) + @echo "installing cosmovisor $(COSMOVISOR_VERSION) ..." + rm -f $(COSMOVISOR) + GOBIN=$(BTSG_DEVCACHE_BIN) $(GO) install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@$(COSMOVISOR_VERSION) + rm -rf "$(dir $@)" + mkdir -p "$(dir $@)" + touch $@ +$(COSMOVISOR): $(COSMOVISOR_VERSION_FILE) + +cache-clean: + rm -rf $(BTSG_DEVCACHE) \ No newline at end of file diff --git a/contrib/devtools/Makefile b/scripts/makefiles/devtools.mk similarity index 94% rename from contrib/devtools/Makefile rename to scripts/makefiles/devtools.mk index 04de89ed..1ab06383 100644 --- a/contrib/devtools/Makefile +++ b/scripts/makefiles/devtools.mk @@ -34,6 +34,8 @@ cd $(GITHUBDIR)$(FS)$(1)$(FS)$(2) && git fetch origin && git checkout -q $(3) mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) mkfile_dir := $(shell cd $(shell dirname $(mkfile_path)); pwd) +workspace_root := $(shell cd $(mkfile_dir)/../..; pwd) + ### # tools @@ -55,9 +57,9 @@ all: tools tools: statik golangci-lint proto-tools golangci-lint: $(GOLANGCI_LINT) -$(GOLANGCI_LINT): $(mkfile_dir)/install-golangci-lint.sh +$(GOLANGCI_LINT): $(workspace_root)/scripts/release/install-golangci-lint.sh @echo "Installing golangci-lint..." - @bash $(mkfile_dir)/install-golangci-lint.sh $(TOOLS_DESTDIR) $(GOLANGCI_LINT_HASHSUM) + @bash $(workspace_root)/scripts/release/install-golangci-lint.sh $(TOOLS_DESTDIR) $(GOLANGCI_LINT_HASHSUM) statik: $(STATIK) $(STATIK): diff --git a/scripts/makefiles/e2e.mk b/scripts/makefiles/e2e.mk deleted file mode 100644 index 3df74e32..00000000 --- a/scripts/makefiles/e2e.mk +++ /dev/null @@ -1,39 +0,0 @@ -############################################################################### -### e2e interchain test ### -############################################################################### - -e2e-help: - @echo "e2e subcommands" - @echo "" - @echo "Usage:" - @echo " make [command]" - @echo "" - @echo "Available Commands:" - @echo " e2e-basic Run single node " - @echo " e2e-upgrade Run basic planned upgrade test" - @echo " e2e-pfm Run packet-forward-middleware test " - @echo " e2e-polytone Run polytone test contracts: Run ./scripts/polytone.sh to install wasm blobs." - @echo " e2e-slashing Test slashing actions" - -e2e: e2e-help - -e2e-basic: rm-testcache - cd tests/ict && go test -race -v -run TestBasicBtsgStart . - -e2e-upgrade: rm-testcache - cd tests/ict && go test -race -v -run TestBasicBitsongUpgrade . - -e2e-pfm: rm-testcache - cd tests/ict && go test -race -v -run TestPacketForwardMiddlewareRouter . - -# e2e-polytone: rm-testcache -# cd tests/ict && go test -race -v -run TestPolytoneOnBitsong . - -# e2e-slashing: rm-testcache -# cd tests/ict && go test -race -v -run TestBasicBitsongSlashing . - -rm-testcache: - go clean -testcache - - -.PHONY: test-mutation ie2e-upgrade \ No newline at end of file diff --git a/scripts/makefiles/ict.mk b/scripts/makefiles/ict.mk new file mode 100644 index 00000000..9bb912a3 --- /dev/null +++ b/scripts/makefiles/ict.mk @@ -0,0 +1,47 @@ +############################################################################### +### ict interchain test ### +############################################################################### + +ict-help: + @echo "ict subcommands" + @echo "" + @echo "Usage:" + @echo " make [command]" + @echo "" + @echo "Available Commands:" + @echo " ict-basic Test all core cosmos-sdk & bitsong modules are operational" + @echo " ict-pfm Test packet-forward-middleware is operational" + @echo " ict-polytone Test wasm + IBC support is operational" + @echo " ict-staking-hooks Test staking hooks are operational" + @echo " ict-ibc-hooks Test IBC-Hooks are operational" +# @echo " ict-upgrade Run basic planned upgrade test" + +ict: ict-help + +ict-basic: rm-testcache + cd tests/ict && go test -race -v -run TestBasicBtsgStart . + +ict-upgrade: rm-testcache + cd tests/ict && go test -race -v -run TestBasicBitsongUpgrade . + +ict-pfm: rm-testcache + cd tests/ict && go test -race -v -run TestPacketForwardMiddlewareRouter . + +ict-polytone: rm-testcache + cd tests/ict && go test -race -v -run TestPolytoneOnBitsong . + +ict-ibc-hooks: rm-testcache + cd tests/ict && go test -race -v -run TestBtsgIBCHooks . + +ict-staking-hooks: rm-testcache + cd tests/ict && go test -race -v -run TestPolytoneOnBitsong . + + +# ict-slashing: rm-testcache +# cd tests/ict && go test -race -v -run TestBasicBitsongSlashing . + +rm-testcache: + go clean -testcache + + +.PHONY: test-mutation ie2e-upgrade \ No newline at end of file diff --git a/scripts/makefiles/localnet.mk b/scripts/makefiles/localnet.mk index 94ab82a1..a8e006af 100644 --- a/scripts/makefiles/localnet.mk +++ b/scripts/makefiles/localnet.mk @@ -2,7 +2,7 @@ ### Localnet ### ############################################################################### # -# Please refer to https://github.com/bitsongofficial/go-bitsong/blob/main/e2e/localbitsong/README.md for detailed +# Please refer to https://github.com/bitsongofficial/go-bitsong/blob/main/ict/localbitsong/README.md for detailed # usage of localnet. localnet-help: @@ -19,21 +19,21 @@ localnet-help: localnet: localnet-help localnet-keys: - . e2e/localbitsong/scripts/add_keys.sh + . ict/localbitsong/scripts/add_keys.sh localnet-init: localnet-clean localnet-build localnet-build: - @DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker compose -f e2e/localbitsong/docker-compose.yml build + @DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker compose -f ict/localbitsong/docker-compose.yml build localnet-start: - @STATE="" docker compose -f e2e/localbitsong/docker-compose.yml up + @STATE="" docker compose -f ict/localbitsong/docker-compose.yml up localnet-startd: - @STATE="" docker compose -f e2e/localbitsong/docker-compose.yml up -d + @STATE="" docker compose -f ict/localbitsong/docker-compose.yml up -d localnet-stop: - @STATE="" docker compose -f e2e/localbitsong/docker-compose.yml down + @STATE="" docker compose -f ict/localbitsong/docker-compose.yml down localnet-clean: @rm -rfI $(HOME)/.bitsongd-local/ \ No newline at end of file diff --git a/scripts/makefiles/proto.mk b/scripts/makefiles/proto.mk index b3ba3cbf..8699a075 100644 --- a/scripts/makefiles/proto.mk +++ b/scripts/makefiles/proto.mk @@ -2,7 +2,7 @@ ### Proto ### ############################################################################### -protoVer=0.15.1 +protoVer=0.17.1 protoImageName=ghcr.io/cosmos/proto-builder:$(protoVer) protoImage=$(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace $(protoImageName) SWAGGER_DIR=./swagger-proto @@ -17,8 +17,8 @@ proto-help: @echo "Available Commands:" @echo " proto-all Run proto-format and proto-gen" @echo " proto-check-breaking Check breaking instances" - @echo " proto-gen Generate Protobuf files" - @echo " proto-pulsar-gen Generate Protobuf files" + @echo " proto-gen-swagger Generate Protobuf files" + @echo " proto-gen-pulsar Generate Protobuf files" @echo " proto-format Format Protobuf files" @echo " proto-lint Lint Protobuf files" @echo " proto-image-build Build the protobuf Docker image" @@ -27,15 +27,15 @@ proto-help: proto: proto-help -proto-all: proto-format proto-gen +proto-all: proto-format proto-gen-swagger -proto-gen: +proto-gen-swagger: @echo "Generating Protobuf files" - @$(protoImage) sh ./scripts/protocgen.sh + @$(protoImage) sh ./scripts/gen-swagger.sh -proto-pulsar-gen: +proto-gen-pulsar: @echo "Generating Dep-Inj Protobuf files" - @$(protoImage) sh ./scripts/protocgen-pulsar.sh + @$(protoImage) sh ./scripts/gen-pulsar.sh # linux only proto-format: @@ -52,14 +52,3 @@ proto-lint: proto-check-breaking: @$(protoImage) buf breaking --against $(HTTPS_GIT)#branch=main - -proto-docs: - @echo - @echo "=========== Generate Message ============" - @echo - sh ./scripts/protoc-swagger-gen.sh - - @echo - @echo "=========== Generate Complete ============" - @echo -.PHONY: docs \ No newline at end of file diff --git a/scripts/makefiles/tests.mk b/scripts/makefiles/tests.mk index 8315872a..f2f96f8f 100644 --- a/scripts/makefiles/tests.mk +++ b/scripts/makefiles/tests.mk @@ -7,13 +7,15 @@ test-help: @echo " make [command]" @echo "" @echo "Available Commands:" - @echo " e2e View e2e tests available to run" + @echo " ict View ict tests available to run" @echo " test-all Run all tests" @echo " test-unit Run unit tests" @echo " test-benchmark Run benchmark tests" @echo " test-cover Run coverage tests" @echo " test-race Run race tests" @echo " test-race Run race tests" + @echo " test-ict View current InterchainTests configured" + @echo " test-bsh View current bash script options" test: test-help test-all: test-race test-cover test-unit @@ -30,5 +32,11 @@ test-cover: test-benchmark: @go test -mod=readonly -bench=. ./... +test-ict: + @make ict + +test-bsh: + @make bsh + # include simulations # include sims.mk \ No newline at end of file diff --git a/scripts/protocgen-any.sh b/scripts/protocgen-any.sh deleted file mode 100644 index 687980f0..00000000 --- a/scripts/protocgen-any.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -# This script generates a custom wrapper for google.protobuf.Any in -# codec/types/any.pb.go with a custom generated struct that lives in -# codec/types/any.go - -set -eo pipefail - -go install github.com/gogo/protobuf/protoc-gen-gogotypes - -buf protoc -I "third_party/proto" --gogotypes_out=./codec/types third_party/proto/google/protobuf/any.proto -mv codec/types/google/protobuf/any.pb.go codec/types -rm -rf codec/types/third_party - -# This removes the call to RegisterType in the custom generated Any wrapper -# so that only the Any type provided by gogo protobuf is registered in the -# global gogo protobuf type registry, which we aren't actually using -sed '/proto\.RegisterType/d' codec/types/any.pb.go > tmp && mv tmp codec/types/any.pb.go \ No newline at end of file diff --git a/scripts/protocgen-pulsar.sh b/scripts/protocgen-pulsar.sh deleted file mode 100644 index 6700898d..00000000 --- a/scripts/protocgen-pulsar.sh +++ /dev/null @@ -1,30 +0,0 @@ -# this script is for generating protobuf files for the new google.golang.org/protobuf API - -set -eo pipefail - -protoc_install_gopulsar() { - go install github.com/cosmos/cosmos-proto/cmd/protoc-gen-go-pulsar@latest - go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest -} - -protoc_install_gopulsar - -echo "Cleaning API directory" -(cd proto; find ./ -type f \( -iname \*.pulsar.go -o -iname \*.pb.go -o -iname \*.cosmos_orm.go -o -iname \*.pb.gw.go \) -delete; find . -empty -type d -delete; cd ..) - -echo "Generating API module" -(cd proto; buf generate --template buf.gen.pulsar.yaml ) # --exclude-path connect/service - -# echo "fixing types.pulsar.go" -# sed -i.bak 's|cosmossdk.io/api/connect/types/v2|github.com/skip-mev/connect/v2/api/connect/types/v2|g' ./api/connect/types/v2/currency_pair.pulsar.go && rm ./api/connect/types/v2/currency_pair.pulsar.go.bak -# sed -i.bak 's|cosmossdk.io/api/connect/oracle/v2|github.com/skip-mev/connect/v2/api/connect/oracle/v2|g' ./api/connect/types/v2/currency_pair.pulsar.go && rm ./api/connect/types/v2/currency_pair.pulsar.go.bak - -# echo "fixing oracle.pulsar.go" -# sed -i.bak 's|cosmossdk.io/api/connect/types/v2|github.com/skip-mev/connect/v2/api/connect/types/v2|g' ./api/connect/oracle/v2/query.pulsar.go && rm ./api/connect/oracle/v2/query.pulsar.go.bak -# sed -i.bak 's|cosmossdk.io/api/connect/types/v2|github.com/skip-mev/connect/v2/api/connect/types/v2|g' ./api/connect/oracle/v2/tx.pulsar.go && rm ./api/connect/oracle/v2/tx.pulsar.go.bak -# sed -i.bak 's|cosmossdk.io/api/connect/types/v2|github.com/skip-mev/connect/v2/api/connect/types/v2|g' ./api/connect/oracle/v2/genesis.pulsar.go && rm ./api/connect/oracle/v2/genesis.pulsar.go.bak - -# echo "fixing market.pulsar.go" -# sed -i.bak 's|cosmossdk.io/api/connect/types/v2|github.com/skip-mev/connect/v2/api/connect/types/v2|g' ./api/connect/marketmap/v2/market.pulsar.go && rm ./api/connect/marketmap/v2/market.pulsar.go.bak -# sed -i.bak 's|cosmossdk.io/api/connect/types/v2|github.com/skip-mev/connect/v2/api/connect/types/v2|g' ./api/connect/marketmap/v2/query.pulsar.go && rm ./api/connect/marketmap/v2/query.pulsar.go.bak -# sed -i.bak 's|cosmossdk.io/api/connect/oracle/v2|github.com/skip-mev/connect/v2/api/connect/oracle/v2|g' ./api/connect/marketmap/v2/market.pulsar.go && rm ./api/connect/marketmap/v2/market.pulsar.go.bak diff --git a/scripts/protocgen.sh b/scripts/protocgen.sh deleted file mode 100755 index 8577e886..00000000 --- a/scripts/protocgen.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash -set -e - -echo "Generating Protocol Buffer code..." -cd proto -proto_dirs=$(find ./bitsong -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) -for dir in $proto_dirs; do - for file in $(find "${dir}" -maxdepth 1 -name '*.proto'); do - if grep go_package $file &> /dev/null ; then - buf generate --template buf.gen.gogo.yaml $file - fi - done -done - -cd .. - -# move proto files to the right places -cp -r github.com/bitsongofficial/go-bitsong/* ./ -rm -rf github.com - -# go mod tidy --compat=1.20 diff --git a/contrib/devtools/install-golangci-lint.sh b/scripts/release/install-golangci-lint.sh similarity index 100% rename from contrib/devtools/install-golangci-lint.sh rename to scripts/release/install-golangci-lint.sh diff --git a/scripts/prep-release.sh b/scripts/release/prep-release.sh similarity index 100% rename from scripts/prep-release.sh rename to scripts/release/prep-release.sh diff --git a/scripts/release/semver.sh b/scripts/release/semver.sh new file mode 100644 index 00000000..b5a43cc4 --- /dev/null +++ b/scripts/release/semver.sh @@ -0,0 +1,131 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: Apache-2.0 + +set -o errexit -o nounset -o pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" + +source "$SCRIPT_DIR/semver_funcs.sh" + +PROG=semver +PROG_VERSION="3.4.0" + +USAGE="\ +Usage: + $PROG bump major + $PROG bump minor + $PROG bump patch + $PROG bump prerel|prerelease [] + $PROG bump build + $PROG bump release + $PROG get major + $PROG get minor + $PROG get patch + $PROG get prerel|prerelease + $PROG get build + $PROG get release + $PROG compare + $PROG diff + $PROG validate + $PROG --help + $PROG --version + +Arguments: + A version must match the following regular expression: + \"${SEMVER_REGEX}\" + In English: + -- The version must match X.Y.Z[-PRERELEASE][+BUILD] + where X, Y and Z are non-negative integers. + -- PRERELEASE is a dot separated sequence of non-negative integers and/or + identifiers composed of alphanumeric characters and hyphens (with + at least one non-digit). Numeric identifiers must not have leading + zeros. A hyphen (\"-\") introduces this optional part. + -- BUILD is a dot separated sequence of identifiers composed of alphanumeric + characters and hyphens. A plus (\"+\") introduces this optional part. + + See definition. + + A string as defined by PRERELEASE above. Or, it can be a PRERELEASE + prototype string followed by a dot. + + A string as defined by BUILD above. + +Options: + -v, --version Print the version of this tool. + -h, --help Print this help message. + +Commands: + bump Bump by one of major, minor, patch; zeroing or removing + subsequent parts. \"bump prerel\" (or its synonym \"bump prerelease\") + sets the PRERELEASE part and removes any BUILD part. A trailing dot + in the argument introduces an incrementing numeric field + which is added or bumped. If no argument is provided, an + incrementing numeric field is introduced/bumped. \"bump build\" sets + the BUILD part. \"bump release\" removes any PRERELEASE or BUILD parts. + The bumped version is written to stdout. + + get Extract given part of , where part is one of major, minor, + patch, prerel (alternatively: prerelease), build, or release. + + compare Compare with , output to stdout the + following values: -1 if is newer, 0 if equal, 1 if + older. The BUILD part is not used in comparisons. + + diff Compare with , output to stdout the + difference between two versions by the release type (MAJOR, MINOR, + PATCH, PRERELEASE, BUILD). + + validate Validate if follows the SEMVER pattern (see + definition). Print 'valid' to stdout if the version is valid, otherwise + print 'invalid'. + +See also: + https://semver.org -- Semantic Versioning 2.0.0" + +function usage_help { + error "$USAGE" +} + +function usage_version { + echo -e "${PROG}: $PROG_VERSION" + exit 0 +} + +case $# in + 0) + echo "Unknown command: $*" + usage_help + ;; +esac + +case $1 in + --help | -h) + echo -e "$USAGE" + exit 0 + ;; + --version | -v) usage_version ;; + bump) + shift + command_bump "$@" + ;; + get) + shift + command_get "$@" + ;; + compare) + shift + command_compare "$@" + ;; + diff) + shift + command_diff "$@" + ;; + validate) + shift + command_validate "$@" + ;; + *) + echo "Unknown arguments: $*" + usage_help + ;; +esac \ No newline at end of file diff --git a/scripts/release/semver_funcs.sh b/scripts/release/semver_funcs.sh new file mode 100644 index 00000000..77846b83 --- /dev/null +++ b/scripts/release/semver_funcs.sh @@ -0,0 +1,417 @@ +#!/usr/bin/env bash + +NAT='0|[1-9][0-9]*' +ALPHANUM='[0-9]*[A-Za-z-][0-9A-Za-z-]*' +IDENT="$NAT|$ALPHANUM" +FIELD='[0-9A-Za-z-]+' + +SEMVER_REGEX_STR="\ +[vV]?\ +($NAT)\\.($NAT)\\.($NAT)\ +(\\-(${IDENT})(\\.(${IDENT}))*)?\ +(\\+${FIELD}(\\.${FIELD})*)?$" + +SEMVER_REGEX_LEGACY="\ +[vV]?\ +($NAT)\\.($NAT)(\\.($NAT))?\ +(\\-(${IDENT})(\\.(${IDENT}))*)?\ +(\\+${FIELD}(\\.${FIELD})*)?$" + +SEMVER_REGEX="^$SEMVER_REGEX_STR" + +function error { + echo -e "$1" >&2 + exit 1 +} + +# normalize the "part" keywords to a canonical string. At present, +# only "prerelease" is normalized to "prerel". + +function normalize_part { + if [ "$1" == "prerelease" ]; then + echo "prerel" + else + echo "$1" + fi +} + +function validate_version { + local version=$1 + if [[ "$version" =~ $SEMVER_REGEX ]]; then + # if a second argument is passed, store the result in var named by $2 + if [ "$#" -eq "2" ]; then + local major=${BASH_REMATCH[1]} + local minor=${BASH_REMATCH[2]} + local patch=${BASH_REMATCH[3]} + local prere=${BASH_REMATCH[4]} + local build=${BASH_REMATCH[8]} + eval "$2=(\"$major\" \"$minor\" \"$patch\" \"$prere\" \"$build\")" + else + echo "$version" + fi + elif [[ "$version" =~ $SEMVER_REGEX_LEGACY ]]; then + # if a second argument is passed, store the result in var named by $2 + if [[ "$#" -eq "2" ]]; then + local major=${BASH_REMATCH[1]} + local minor=${BASH_REMATCH[2]} + local patch=0 + local prere=${BASH_REMATCH[4]} + local build=${BASH_REMATCH[6]} + eval "$2=(\"${major}\" \"${minor}\" \"${patch}\" \"${prere}\" \"${build}\")" + else + echo "$version" + fi + else + error "version $version does not match the semver scheme 'X.Y.Z(-PRERELEASE)(+BUILD)'. See help for more information." + fi +} + +function is_nat { + [[ "$1" =~ ^($NAT)$ ]] +} + +function is_null { + [ -z "$1" ] +} + +function order_nat { + [ "$1" -lt "$2" ] && { + echo -1 + return + } + [ "$1" -gt "$2" ] && { + echo 1 + return + } + echo 0 +} + +function order_string { + [[ $1 < $2 ]] && { + echo -1 + return + } + [[ $1 > $2 ]] && { + echo 1 + return + } + echo 0 +} + +# given two (named) arrays containing NAT and/or ALPHANUM fields, compare them +# one by one according to semver 2.0.0 spec. Return -1, 0, 1 if left array ($1) +# is less-than, equal, or greater-than the right array ($2). The longer array +# is considered greater-than the shorter if the shorter is a prefix of the longer. +# +function compare_fields { + local l="$1[@]" + local r="$2[@]" + local leftfield=("${!l}") + local rightfield=("${!r}") + local left + local right + + local i=$((-1)) + local order=$((0)) + + while true; do + # shellcheck disable=SC2086 + [ $order -ne 0 ] && { + echo "$order" + return + } + + : $((i++)) + left="${leftfield[$i]}" + right="${rightfield[$i]}" + + is_null "$left" && is_null "$right" && { + echo 0 + return + } + is_null "$left" && { + echo -1 + return + } + is_null "$right" && { + echo 1 + return + } + + is_nat "$left" && is_nat "$right" && { + order=$(order_nat "$left" "$right") + continue + } + is_nat "$left" && { + echo -1 + return + } + is_nat "$right" && { + echo 1 + return + } + { + order=$(order_string "$left" "$right") + continue + } + done +} + +# shellcheck disable=SC2206 # checked by "validate"; ok to expand prerel id's into array +function compare_version { + local order + validate_version "$1" V + validate_version "$2" V_ + + # compare major, minor, patch + + local left=("${V[0]}" "${V[1]}" "${V[2]}") + local right=("${V_[0]}" "${V_[1]}" "${V_[2]}") + + order=$(compare_fields left right) + [ "$order" -ne 0 ] && { + echo "$order" + return + } + + # compare pre-release ids when M.m.p are equal + + local prerel="${V[3]:1}" + local prerel_="${V_[3]:1}" + local left=(${prerel//./ }) + local right=(${prerel_//./ }) + + # if left and right have no pre-release part, then left equals right + # if only one of left/right has pre-release part, that one is less than simple M.m.p + + [ -z "$prerel" ] && [ -z "$prerel_" ] && { + echo 0 + return + } + [ -z "$prerel" ] && { + echo 1 + return + } + [ -z "$prerel_" ] && { + echo -1 + return + } + + # otherwise, compare the pre-release id's + + compare_fields left right +} + +# render_prerel -- return a prerel field with a trailing numeric string +# usage: render_prerel numeric [prefix-string] +# +function render_prerel { + if [ -z "$2" ]; then + echo "${1}" + else + echo "${2}${1}" + fi +} + +# extract_prerel -- extract prefix and trailing numeric portions of a pre-release part +# usage: extract_prerel prerel prerel_parts +# The prefix and trailing numeric parts are returned in "prerel_parts". +# +PREFIX_ALPHANUM='[.0-9A-Za-z-]*[.A-Za-z-]' +DIGITS='[0-9][0-9]*' +EXTRACT_REGEX="^(${PREFIX_ALPHANUM})*(${DIGITS})$" + +function extract_prerel { + local prefix + local numeric + + if [[ "$1" =~ $EXTRACT_REGEX ]]; then # found prefix and trailing numeric parts + prefix="${BASH_REMATCH[1]}" + numeric="${BASH_REMATCH[2]}" + else # no numeric part + prefix="${1}" + numeric= + fi + + eval "$2=(\"$prefix\" \"$numeric\")" +} + +# bump_prerel -- return the new pre-release part based on previous pre-release part +# and prototype for bump +# usage: bump_prerel proto previous +# +function bump_prerel { + local proto + local prev_prefix + local prev_numeric + + # case one: no trailing dot in prototype => simply replace previous with proto + if [[ ! ("$1" =~ \.$) ]]; then + echo "$1" + return + fi + + proto="${1%.}" # discard trailing dot marker from prototype + + extract_prerel "${2#-}" prerel_parts # extract parts of previous pre-release + # shellcheck disable=SC2154 + prev_prefix="${prerel_parts[0]}" + prev_numeric="${prerel_parts[1]}" + + # case two: bump or append numeric to previous pre-release part + if [ "$proto" == "+" ]; then # dummy "+" indicates no prototype argument provided + if [ -n "$prev_numeric" ]; then + : $((++prev_numeric)) # previous pre-release is already numbered, bump it + render_prerel "$prev_numeric" "$prev_prefix" + else + render_prerel 1 "$prev_prefix" # append starting number + fi + return + fi + + # case three: set, bump, or append using prototype prefix + if [ "$prev_prefix" != "$proto" ]; then + render_prerel 1 "$proto" # proto not same pre-release; set and start at '1' + elif [ -n "$prev_numeric" ]; then + : $((++prev_numeric)) # pre-release is numbered; bump it + render_prerel "$prev_numeric" "$prev_prefix" + else + render_prerel 1 "$prev_prefix" # start pre-release at number '1' + fi +} + +function command_bump { + local new + local version + local sub_version + local command + + command="$(normalize_part "$1")" + + case $# in + 2) case "$command" in + major | minor | patch | prerel | release) + sub_version="+." + version=$2 + ;; + *) usage_help ;; + esac ;; + 3) case "$command" in + prerel | build) sub_version=$2 version=$3 ;; + *) usage_help ;; + esac ;; + *) usage_help ;; + esac + + validate_version "$version" parts + # shellcheck disable=SC2154 + local major="${parts[0]}" + local minor="${parts[1]}" + local patch="${parts[2]}" + local prere="${parts[3]}" + local build="${parts[4]}" + + case "$command" in + major) new="$((major + 1)).0.0" ;; + minor) new="${major}.$((minor + 1)).0" ;; + patch) new="${major}.${minor}.$((patch + 1))" ;; + release) new="${major}.${minor}.${patch}" ;; + prerel) new=$(validate_version "${major}.${minor}.${patch}-$(bump_prerel "$sub_version" "$prere")") ;; + build) new=$(validate_version "${major}.${minor}.${patch}${prere}+${sub_version}") ;; + *) usage_help ;; + esac + + echo "$new" + exit 0 +} + +function command_compare { + local v + local v_ + + case $# in + 2) + v=$(validate_version "$1") + v_=$(validate_version "$2") + ;; + *) usage_help ;; + esac + + set +u # need unset array element to evaluate to null + compare_version "$v" "$v_" + exit 0 +} + +function command_diff { + validate_version "$1" v1_parts + # shellcheck disable=SC2154 + local v1_major="${v1_parts[0]}" + local v1_minor="${v1_parts[1]}" + local v1_patch="${v1_parts[2]}" + local v1_prere="${v1_parts[3]}" + local v1_build="${v1_parts[4]}" + + validate_version "$2" v2_parts + # shellcheck disable=SC2154 + local v2_major="${v2_parts[0]}" + local v2_minor="${v2_parts[1]}" + local v2_patch="${v2_parts[2]}" + local v2_prere="${v2_parts[3]}" + local v2_build="${v2_parts[4]}" + + if [ "${v1_major}" != "${v2_major}" ]; then + echo "major" + elif [ "${v1_minor}" != "${v2_minor}" ]; then + echo "minor" + elif [ "${v1_patch}" != "${v2_patch}" ]; then + echo "patch" + elif [ "${v1_prere}" != "${v2_prere}" ]; then + echo "prerelease" + elif [ "${v1_build}" != "${v2_build}" ]; then + echo "build" + fi +} + +# shellcheck disable=SC2034 +function command_get { + local part version + + if [[ "$#" -ne "2" ]] || [[ -z "$1" ]] || [[ -z "$2" ]]; then + usage_help + exit 0 + fi + + part="$1" + version="$2" + + validate_version "$version" parts + local major="${parts[0]}" + local minor="${parts[1]}" + local patch="${parts[2]}" + local prerel="${parts[3]:1}" + local build="${parts[4]:1}" + local release="${major}.${minor}.${patch}" + + part="$(normalize_part "$part")" + + case "$part" in + major | minor | patch | release | prerel | build) echo "${!part}" ;; + *) usage_help ;; + esac + + exit 0 +} + +function command_validate { + if [[ "$#" -ne "1" ]]; then + usage_help + fi + + if [[ "$1" =~ $SEMVER_REGEX ]]; then + echo "valid" + else + echo "invalid" + fi + + exit 0 +} \ No newline at end of file diff --git a/scripts/release/tools.sh b/scripts/release/tools.sh new file mode 100644 index 00000000..cede53c1 --- /dev/null +++ b/scripts/release/tools.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +SEMVER=$SCRIPT_DIR/semver.sh + +gomod="$SCRIPT_DIR/../go.mod" + +function get_gotoolchain() { + local gotoolchain + local goversion + local local_goversion + + gotoolchain=$(grep -E '^toolchain go[0-9]{1,}.[0-9]{1,}.[0-9]{1,}$' < "$gomod" | cut -d ' ' -f 2 | tr -d '\n') + goversion=$(grep -E '^go [0-9]{1,}.[0-9]{1,}(.[0-9]{1,})?$' < "$gomod" | cut -d ' ' -f 2 | tr -d '\n') + + if [[ ${gotoolchain} == "" ]]; then + # determine go toolchain from go version in go.mod + if which go > /dev/null 2>&1 ; then + local_goversion=$(GOTOOLCHAIN=local go version | cut -d ' ' -f 3 | sed 's/go*//' | tr -d '\n') + if [[ $($SEMVER compare "v$local_goversion" v"$goversion") -ge 0 ]]; then + goversion=$local_goversion + else + local_goversion= + fi + fi + + if [[ "$local_goversion" == "" ]]; then + goversion=$(curl -s "https://go.dev/dl/?mode=json&include=all" | jq -r --arg regexp "^go$goversion" '.[] | select(.stable == true) | select(.version | match($regexp)) | .version' | head -n 1 | sed -e s/^go//) + fi + + if [[ $goversion != "" ]] && [[ $($SEMVER compare "v$goversion" v1.21.0) -ge 0 ]]; then + gotoolchain=go${goversion} + else + gotoolchain=go$(grep -E '^go [0-9]{1,}.[0-9]{1,}$' < "$gomod" | cut -d ' ' -f 2 | tr -d '\n').0 + fi + fi + + echo -n "$gotoolchain" +} + +case "$1" in +gotoolchain) + get_gotoolchain + ;; +esac \ No newline at end of file diff --git a/scripts/test_node.sh b/scripts/test_node.sh index 08848ef2..5d3f17a3 100644 --- a/scripts/test_node.sh +++ b/scripts/test_node.sh @@ -47,7 +47,7 @@ from_scratch () { # bitsong1ww54e9y0ysfq3ljglj9rx3qvcekksksju93l5f echo "course render gym design oppose focus van impulse surround chase lock setup unhappy priority mammal video chapter under rocket child sadness always coyote sample" | BINARY keys add $KEY2 --keyring-backend $KEYRING --algo $KEYALGO --recover - BINARY init $MONIKER --chain-id $CHAIN_ID --default-denom ubtsg + BINARY init $MONIKER --chain-id $CHAIN_ID # Function updates the config based on a jq argument as a string update_test_genesis () { @@ -117,4 +117,4 @@ sed -i 's/address = "localhost:9091"/address = "0.0.0.0:'$GRPC_WEB'"/g' $HOME_DI sed -i 's/timeout_commit = "5s"/timeout_commit = "'$TIMEOUT_COMMIT'"/g' $HOME_DIR/config/config.toml # Start the node with 0 gas fees -BINARY start --pruning=nothing --minimum-gas-prices=0.0025ubtsg --rpc.laddr="tcp://0.0.0.0:$RPC" \ No newline at end of file +BINARY start --pruning=nothing --minimum-gas-prices=0.0025ubtsg --rpc.laddr="tcp://0.0.0.0:$RPC" --api.enable=true --api.swagger=true \ No newline at end of file diff --git a/swagger/config.json b/swagger/config.json deleted file mode 100644 index d5769489..00000000 --- a/swagger/config.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "BitSong - gRPC Gateway docs", - "description": "A REST interface for state queries, legacy transactions", - "version": "0.11.0" - }, - "apis": [ - { - "url": "./tmp-swagger-gen/bitsong/fantoken/v1beta1/query.swagger.json", - "dereference": { - "circular": "ignore" - }, - "operationIds": { - "rename": { - "Params": "FantokenParams" - } - } - }, - { - "url": "./swagger/swagger-sdk.yaml", - "dereference": { - "circular": "ignore" - }, - "tags": { - "rename": { - "Gaia REST": "CometBft RPC" - } - }, - "operationIds": { - "rename": { - "UpgradedConsensusState": "sdk/UpgradedConsensusState" - } - } - }, - { - "url": "./swagger/swagger-ibc.yaml", - "dereference": { - "circular": "ignore" - } - } - ] -} \ No newline at end of file diff --git a/swagger/swagger-ibc.yaml b/swagger/swagger-ibc.yaml deleted file mode 100644 index 5feb43dd..00000000 --- a/swagger/swagger-ibc.yaml +++ /dev/null @@ -1,14027 +0,0 @@ -swagger: '2.0' -info: - title: IBC-GO - gRPC Gateway docs - description: A REST interface for state queries - version: 1.0.0 -paths: - '/ibc/apps/transfer/v1/denom_hashes/{trace}': - get: - summary: DenomHash queries a denomination hash information. - operationId: DenomHash - responses: - '200': - description: A successful response. - schema: - type: object - properties: - hash: - type: string - description: hash (in hex format) of the denomination trace information. - description: >- - QueryDenomHashResponse is the response type for the - Query/DenomHash RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: trace - description: 'The denomination trace ([port_id]/[channel_id])+/[denom]' - in: path - required: true - type: string - tags: - - Query - /ibc/apps/transfer/v1/denom_traces: - get: - summary: DenomTraces queries all denomination traces. - operationId: DenomTraces - responses: - '200': - description: A successful response. - schema: - type: object - properties: - denom_traces: - type: array - items: - type: object - properties: - path: - type: string - description: >- - path defines the chain of port/channel identifiers used - for tracing the - - source of the fungible token. - base_denom: - type: string - description: base denomination of the relayed fungible token. - description: >- - DenomTrace contains the base denomination for ICS20 fungible - tokens and the - - source tracing information path. - description: denom_traces returns all denominations trace information. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryConnectionsResponse is the response type for the - Query/DenomTraces RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/ibc/apps/transfer/v1/denom_traces/{hash}': - get: - summary: DenomTrace queries a denomination trace information. - operationId: DenomTrace - responses: - '200': - description: A successful response. - schema: - type: object - properties: - denom_trace: - type: object - properties: - path: - type: string - description: >- - path defines the chain of port/channel identifiers used - for tracing the - - source of the fungible token. - base_denom: - type: string - description: base denomination of the relayed fungible token. - description: >- - DenomTrace contains the base denomination for ICS20 fungible - tokens and the - - source tracing information path. - description: >- - QueryDenomTraceResponse is the response type for the - Query/DenomTrace RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: hash - description: hash (in hex format) of the denomination trace information. - in: path - required: true - type: string - tags: - - Query - /ibc/apps/transfer/v1/params: - get: - summary: Params queries all parameters of the ibc-transfer module. - operationId: TransferParams - responses: - '200': - description: A successful response. - schema: - type: object - properties: - params: - description: params defines the parameters of the module. - type: object - properties: - send_enabled: - type: boolean - format: boolean - description: >- - send_enabled enables or disables all cross-chain token - transfers from this - - chain. - receive_enabled: - type: boolean - format: boolean - description: >- - receive_enabled enables or disables all cross-chain token - transfers to this - - chain. - description: >- - QueryParamsResponse is the response type for the Query/Params RPC - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - tags: - - Query - /ibc/client/v1/params: - get: - summary: ClientParams queries all parameters of the ibc client. - operationId: ClientParams - responses: - '200': - description: A successful response. - schema: - type: object - properties: - params: - description: params defines the parameters of the module. - type: object - properties: - allowed_clients: - type: array - items: - type: string - description: >- - allowed_clients defines the list of allowed client state - types. - description: >- - QueryClientParamsResponse is the response type for the - Query/ClientParams RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - tags: - - Query - /ibc/core/client/v1/client_states: - get: - summary: ClientStates queries all the IBC light clients of a chain. - operationId: ClientStates - responses: - '200': - description: A successful response. - schema: - type: object - properties: - client_states: - type: array - items: - type: object - properties: - client_id: - type: string - title: client identifier - client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the - type of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's - path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the - binary all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available - in the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the - regular - - representation of the deserialized, embedded message, - with an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message - [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: client state - description: >- - IdentifiedClientState defines a client state with an - additional client - - identifier field. - description: list of stored ClientStates of the chain. - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - PageResponse is to be embedded in gRPC response messages where - the - - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - description: >- - QueryClientStatesResponse is the response type for the - Query/ClientStates RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/ibc/core/client/v1/client_states/{client_id}': - get: - summary: ClientState queries an IBC light client. - operationId: ClientState - responses: - '200': - description: A successful response. - schema: - type: object - properties: - client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: client state associated with the request identifier - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - description: >- - QueryClientStateResponse is the response type for the - Query/ClientState RPC - - method. Besides the client state, it includes a proof and the - height from - - which the proof was retrieved. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: client_id - description: client state unique identifier - in: path - required: true - type: string - tags: - - Query - '/ibc/core/client/v1/client_status/{client_id}': - get: - summary: Status queries the status of an IBC client. - operationId: ClientStatus - responses: - '200': - description: A successful response. - schema: - type: object - properties: - status: - type: string - description: >- - QueryClientStatusResponse is the response type for the - Query/ClientStatus RPC - - method. It returns the current status of the IBC client. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: client_id - description: client unique identifier - in: path - required: true - type: string - tags: - - Query - '/ibc/core/client/v1/consensus_states/{client_id}': - get: - summary: |- - ConsensusStates queries all the consensus state associated with a given - client. - operationId: ConsensusStates - responses: - '200': - description: A successful response. - schema: - type: object - properties: - consensus_states: - type: array - items: - type: object - properties: - height: - title: consensus state height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each - height while keeping - - RevisionNumber the same. However some consensus - algorithms may choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as - the RevisionHeight - - gets reset - consensus_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the - type of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's - path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the - binary all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available - in the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the - regular - - representation of the deserialized, embedded message, - with an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message - [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: consensus state - description: >- - ConsensusStateWithHeight defines a consensus state with an - additional height - - field. - title: consensus states associated with the identifier - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - PageResponse is to be embedded in gRPC response messages where - the - - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - title: |- - QueryConsensusStatesResponse is the response type for the - Query/ConsensusStates RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: client_id - description: client identifier - in: path - required: true - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/ibc/core/client/v1/consensus_states/{client_id}/revision/{revision_number}/height/{revision_height}': - get: - summary: >- - ConsensusState queries a consensus state associated with a client state - at - - a given height. - operationId: ConsensusState - responses: - '200': - description: A successful response. - schema: - type: object - properties: - consensus_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: >- - consensus state associated with the client identifier at the - given height - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: >- - QueryConsensusStateResponse is the response type for the - Query/ConsensusState - - RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: client_id - description: client identifier - in: path - required: true - type: string - - name: revision_number - description: consensus state revision number - in: path - required: true - type: string - format: uint64 - - name: revision_height - description: consensus state revision height - in: path - required: true - type: string - format: uint64 - - name: latest_height - description: >- - latest_height overrrides the height field and queries the latest - stored - - ConsensusState. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - /ibc/core/client/v1/upgraded_client_states: - get: - summary: UpgradedClientState queries an Upgraded IBC light client. - operationId: UpgradedClientState - responses: - '200': - description: A successful response. - schema: - type: object - properties: - upgraded_client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: client state associated with the request identifier - description: |- - QueryUpgradedClientStateResponse is the response type for the - Query/UpgradedClientState RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - tags: - - Query - /ibc/core/client/v1/upgraded_consensus_states: - get: - summary: UpgradedConsensusState queries an Upgraded IBC consensus state. - operationId: UpgradedConsensusState - responses: - '200': - description: A successful response. - schema: - type: object - properties: - upgraded_consensus_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: Consensus state associated with the request identifier - description: |- - QueryUpgradedConsensusStateResponse is the response type for the - Query/UpgradedConsensusState RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - tags: - - Query - '/ibc/core/connection/v1/client_connections/{client_id}': - get: - summary: |- - ClientConnections queries the connection paths associated with a client - state. - operationId: ClientConnections - responses: - '200': - description: A successful response. - schema: - type: object - properties: - connection_paths: - type: array - items: - type: string - description: slice of all the connection paths associated with a client. - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was generated - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryClientConnectionsResponse is the response type for the - Query/ClientConnections RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: client_id - description: client identifier associated with a connection - in: path - required: true - type: string - tags: - - Query - /ibc/core/connection/v1/connections: - get: - summary: Connections queries all the IBC connections of a chain. - operationId: Connections - responses: - '200': - description: A successful response. - schema: - type: object - properties: - connections: - type: array - items: - type: object - properties: - id: - type: string - description: connection identifier. - client_id: - type: string - description: client associated with this connection. - versions: - type: array - items: - type: object - properties: - identifier: - type: string - title: unique version identifier - features: - type: array - items: - type: string - title: >- - list of features compatible with the specified - identifier - description: >- - Version defines the versioning scheme used to - negotiate the IBC verison in - - the connection handshake. - title: >- - IBC version which can be utilised to determine encodings - or protocols for - - channels or packets utilising this connection - state: - description: current state of the connection end. - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - default: STATE_UNINITIALIZED_UNSPECIFIED - counterparty: - description: counterparty chain associated with this connection. - type: object - properties: - client_id: - type: string - description: >- - identifies the client on the counterparty chain - associated with a given - - connection. - connection_id: - type: string - description: >- - identifies the connection end on the counterparty - chain associated with a - - given connection. - prefix: - description: commitment merkle prefix of the counterparty chain. - type: object - properties: - key_prefix: - type: string - format: byte - title: >- - MerklePrefix is merkle path prefixed to the key. - - The constructed key from the Path and the key will - be append(Path.KeyPath, - - append(Path.KeyPrefix, key...)) - delay_period: - type: string - format: uint64 - description: delay period associated with this connection. - description: >- - IdentifiedConnection defines a connection with additional - connection - - identifier field. - description: list of stored connections of the chain. - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - PageResponse is to be embedded in gRPC response messages where - the - - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - description: >- - QueryConnectionsResponse is the response type for the - Query/Connections RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/ibc/core/connection/v1/connections/{connection_id}': - get: - summary: Connection queries an IBC connection end. - operationId: Connection - responses: - '200': - description: A successful response. - schema: - type: object - properties: - connection: - title: connection associated with the request identifier - type: object - properties: - client_id: - type: string - description: client associated with this connection. - versions: - type: array - items: - type: object - properties: - identifier: - type: string - title: unique version identifier - features: - type: array - items: - type: string - title: >- - list of features compatible with the specified - identifier - description: >- - Version defines the versioning scheme used to negotiate - the IBC verison in - - the connection handshake. - description: >- - IBC version which can be utilised to determine encodings - or protocols for - - channels or packets utilising this connection. - state: - description: current state of the connection end. - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - default: STATE_UNINITIALIZED_UNSPECIFIED - counterparty: - description: counterparty chain associated with this connection. - type: object - properties: - client_id: - type: string - description: >- - identifies the client on the counterparty chain - associated with a given - - connection. - connection_id: - type: string - description: >- - identifies the connection end on the counterparty - chain associated with a - - given connection. - prefix: - description: commitment merkle prefix of the counterparty chain. - type: object - properties: - key_prefix: - type: string - format: byte - title: >- - MerklePrefix is merkle path prefixed to the key. - - The constructed key from the Path and the key will be - append(Path.KeyPath, - - append(Path.KeyPrefix, key...)) - delay_period: - type: string - format: uint64 - description: >- - delay period that must pass before a consensus state can - be used for - - packet-verification NOTE: delay period logic is only - implemented by some - - clients. - description: >- - ConnectionEnd defines a stateful object on a chain connected - to another - - separate one. - - NOTE: there must only be 2 defined ConnectionEnds to establish - - a connection between two chains. - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - description: >- - QueryConnectionResponse is the response type for the - Query/Connection RPC - - method. Besides the connection end, it includes a proof and the - height from - - which the proof was retrieved. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: connection_id - description: connection unique identifier - in: path - required: true - type: string - tags: - - Query - '/ibc/core/connection/v1/connections/{connection_id}/client_state': - get: - summary: |- - ConnectionClientState queries the client state associated with the - connection. - operationId: ConnectionClientState - responses: - '200': - description: A successful response. - schema: - type: object - properties: - identified_client_state: - title: client state associated with the channel - type: object - properties: - client_id: - type: string - title: client identifier - client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type - of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: client state - description: >- - IdentifiedClientState defines a client state with an - additional client - - identifier field. - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryConnectionClientStateResponse is the response type for the - Query/ConnectionClientState RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: connection_id - description: connection identifier - in: path - required: true - type: string - tags: - - Query - '/ibc/core/connection/v1/connections/{connection_id}/consensus_state/revision/{revision_number}/height/{revision_height}': - get: - summary: |- - ConnectionConsensusState queries the consensus state associated with the - connection. - operationId: ConnectionConsensusState - responses: - '200': - description: A successful response. - schema: - type: object - properties: - consensus_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: consensus state associated with the channel - client_id: - type: string - title: client ID associated with the consensus state - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryConnectionConsensusStateResponse is the response type for the - Query/ConnectionConsensusState RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: connection_id - description: connection identifier - in: path - required: true - type: string - - name: revision_number - in: path - required: true - type: string - format: uint64 - - name: revision_height - in: path - required: true - type: string - format: uint64 - tags: - - Query - /ibc/core/channel/v1/channels: - get: - summary: Channels queries all the IBC channels of a chain. - operationId: Channels - responses: - '200': - description: A successful response. - schema: - type: object - properties: - channels: - type: array - items: - type: object - properties: - state: - title: current state of the channel end - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - - STATE_CLOSED - default: STATE_UNINITIALIZED_UNSPECIFIED - description: >- - State defines if a channel is in one of the following - states: - - CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. - - - STATE_UNINITIALIZED_UNSPECIFIED: Default State - - STATE_INIT: A channel has just started the opening handshake. - - STATE_TRYOPEN: A channel has acknowledged the handshake step on the counterparty chain. - - STATE_OPEN: A channel has completed the handshake. Open channels are - ready to send and receive packets. - - STATE_CLOSED: A channel has been closed and can no longer be used to send or receive - packets. - ordering: - title: whether the channel is ordered or unordered - type: string - enum: - - ORDER_NONE_UNSPECIFIED - - ORDER_UNORDERED - - ORDER_ORDERED - default: ORDER_NONE_UNSPECIFIED - description: >- - - ORDER_NONE_UNSPECIFIED: zero-value for channel - ordering - - ORDER_UNORDERED: packets can be delivered in any order, which may differ from the order in - which they were sent. - - ORDER_ORDERED: packets are delivered exactly in the order which they were sent - counterparty: - title: counterparty channel end - type: object - properties: - port_id: - type: string - description: >- - port on the counterparty chain which owns the other - end of the channel. - channel_id: - type: string - title: channel end on the counterparty chain - connection_hops: - type: array - items: - type: string - title: >- - list of connection identifiers, in order, along which - packets sent on - - this channel will travel - version: - type: string - title: >- - opaque channel version, which is agreed upon during the - handshake - port_id: - type: string - title: port identifier - channel_id: - type: string - title: channel identifier - description: >- - IdentifiedChannel defines a channel with additional port and - channel - - identifier fields. - description: list of stored channels of the chain. - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - PageResponse is to be embedded in gRPC response messages where - the - - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - description: >- - QueryChannelsResponse is the response type for the Query/Channels - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}': - get: - summary: Channel queries an IBC Channel. - operationId: Channel - responses: - '200': - description: A successful response. - schema: - type: object - properties: - channel: - title: channel associated with the request identifiers - type: object - properties: - state: - title: current state of the channel end - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - - STATE_CLOSED - default: STATE_UNINITIALIZED_UNSPECIFIED - description: >- - State defines if a channel is in one of the following - states: - - CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. - - - STATE_UNINITIALIZED_UNSPECIFIED: Default State - - STATE_INIT: A channel has just started the opening handshake. - - STATE_TRYOPEN: A channel has acknowledged the handshake step on the counterparty chain. - - STATE_OPEN: A channel has completed the handshake. Open channels are - ready to send and receive packets. - - STATE_CLOSED: A channel has been closed and can no longer be used to send or receive - packets. - ordering: - title: whether the channel is ordered or unordered - type: string - enum: - - ORDER_NONE_UNSPECIFIED - - ORDER_UNORDERED - - ORDER_ORDERED - default: ORDER_NONE_UNSPECIFIED - description: |- - - ORDER_NONE_UNSPECIFIED: zero-value for channel ordering - - ORDER_UNORDERED: packets can be delivered in any order, which may differ from the order in - which they were sent. - - ORDER_ORDERED: packets are delivered exactly in the order which they were sent - counterparty: - title: counterparty channel end - type: object - properties: - port_id: - type: string - description: >- - port on the counterparty chain which owns the other - end of the channel. - channel_id: - type: string - title: channel end on the counterparty chain - connection_hops: - type: array - items: - type: string - title: >- - list of connection identifiers, in order, along which - packets sent on - - this channel will travel - version: - type: string - title: >- - opaque channel version, which is agreed upon during the - handshake - description: >- - Channel defines pipeline for exactly-once packet delivery - between specific - - modules on separate blockchains, which has at least one end - capable of - - sending packets and one end capable of receiving packets. - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - description: >- - QueryChannelResponse is the response type for the Query/Channel - RPC method. - - Besides the Channel end, it includes a proof and the height from - which the - - proof was retrieved. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: channel_id - description: channel unique identifier - in: path - required: true - type: string - - name: port_id - description: port unique identifier - in: path - required: true - type: string - tags: - - Query - '/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/client_state': - get: - summary: >- - ChannelClientState queries for the client state for the channel - associated - - with the provided channel identifiers. - operationId: ChannelClientState - responses: - '200': - description: A successful response. - schema: - type: object - properties: - identified_client_state: - title: client state associated with the channel - type: object - properties: - client_id: - type: string - title: client identifier - client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type - of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: client state - description: >- - IdentifiedClientState defines a client state with an - additional client - - identifier field. - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryChannelClientStateResponse is the Response type for the - Query/QueryChannelClientState RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: channel_id - description: channel unique identifier - in: path - required: true - type: string - - name: port_id - description: port unique identifier - in: path - required: true - type: string - tags: - - Query - '/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/consensus_state/revision/{revision_number}/height/{revision_height}': - get: - summary: |- - ChannelConsensusState queries for the consensus state for the channel - associated with the provided channel identifiers. - operationId: ChannelConsensusState - responses: - '200': - description: A successful response. - schema: - type: object - properties: - consensus_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: consensus state associated with the channel - client_id: - type: string - title: client ID associated with the consensus state - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryChannelClientStateResponse is the Response type for the - Query/QueryChannelClientState RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: channel_id - description: channel unique identifier - in: path - required: true - type: string - - name: port_id - description: port unique identifier - in: path - required: true - type: string - - name: revision_number - description: revision number of the consensus state - in: path - required: true - type: string - format: uint64 - - name: revision_height - description: revision height of the consensus state - in: path - required: true - type: string - format: uint64 - tags: - - Query - '/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/next_sequence': - get: - summary: >- - NextSequenceReceive returns the next receive sequence for a given - channel. - operationId: NextSequenceReceive - responses: - '200': - description: A successful response. - schema: - type: object - properties: - next_sequence_receive: - type: string - format: uint64 - title: next sequence receive number - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QuerySequenceResponse is the request type for the - Query/QueryNextSequenceReceiveResponse RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: channel_id - description: channel unique identifier - in: path - required: true - type: string - - name: port_id - description: port unique identifier - in: path - required: true - type: string - tags: - - Query - '/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_acknowledgements': - get: - summary: >- - PacketAcknowledgements returns all the packet acknowledgements - associated - - with a channel. - operationId: PacketAcknowledgements - responses: - '200': - description: A successful response. - schema: - type: object - properties: - acknowledgements: - type: array - items: - type: object - properties: - port_id: - type: string - description: channel port identifier. - channel_id: - type: string - description: channel unique identifier. - sequence: - type: string - format: uint64 - description: packet sequence. - data: - type: string - format: byte - description: embedded data that represents packet state. - description: >- - PacketState defines the generic type necessary to retrieve - and store - - packet commitments, acknowledgements, and receipts. - - Caller is responsible for knowing the context necessary to - interpret this - - state as a commitment, acknowledgement, or a receipt. - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - PageResponse is to be embedded in gRPC response messages where - the - - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryPacketAcknowledgemetsResponse is the request type for the - Query/QueryPacketAcknowledgements RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: channel_id - description: channel unique identifier - in: path - required: true - type: string - - name: port_id - description: port unique identifier - in: path - required: true - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: packet_commitment_sequences - description: list of packet sequences. - in: query - required: false - type: array - items: - type: string - format: uint64 - collectionFormat: multi - tags: - - Query - '/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_acks/{sequence}': - get: - summary: PacketAcknowledgement queries a stored packet acknowledgement hash. - operationId: PacketAcknowledgement - responses: - '200': - description: A successful response. - schema: - type: object - properties: - acknowledgement: - type: string - format: byte - title: packet associated with the request fields - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: >- - QueryPacketAcknowledgementResponse defines the client query - response for a - - packet which also includes a proof and the height from which the - - proof was retrieved - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: channel_id - description: channel unique identifier - in: path - required: true - type: string - - name: port_id - description: port unique identifier - in: path - required: true - type: string - - name: sequence - description: packet sequence - in: path - required: true - type: string - format: uint64 - tags: - - Query - '/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_commitments': - get: - summary: |- - PacketCommitments returns all the packet commitments hashes associated - with a channel. - operationId: PacketCommitments - responses: - '200': - description: A successful response. - schema: - type: object - properties: - commitments: - type: array - items: - type: object - properties: - port_id: - type: string - description: channel port identifier. - channel_id: - type: string - description: channel unique identifier. - sequence: - type: string - format: uint64 - description: packet sequence. - data: - type: string - format: byte - description: embedded data that represents packet state. - description: >- - PacketState defines the generic type necessary to retrieve - and store - - packet commitments, acknowledgements, and receipts. - - Caller is responsible for knowing the context necessary to - interpret this - - state as a commitment, acknowledgement, or a receipt. - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - PageResponse is to be embedded in gRPC response messages where - the - - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryPacketCommitmentsResponse is the request type for the - Query/QueryPacketCommitments RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: channel_id - description: channel unique identifier - in: path - required: true - type: string - - name: port_id - description: port unique identifier - in: path - required: true - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_commitments/{packet_ack_sequences}/unreceived_acks': - get: - summary: >- - UnreceivedAcks returns all the unreceived IBC acknowledgements - associated - - with a channel and sequences. - operationId: UnreceivedAcks - responses: - '200': - description: A successful response. - schema: - type: object - properties: - sequences: - type: array - items: - type: string - format: uint64 - title: list of unreceived acknowledgement sequences - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryUnreceivedAcksResponse is the response type for the - Query/UnreceivedAcks RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: channel_id - description: channel unique identifier - in: path - required: true - type: string - - name: port_id - description: port unique identifier - in: path - required: true - type: string - - name: packet_ack_sequences - description: list of acknowledgement sequences - in: path - required: true - type: array - items: - type: string - format: uint64 - collectionFormat: csv - minItems: 1 - tags: - - Query - '/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_commitments/{packet_commitment_sequences}/unreceived_packets': - get: - summary: >- - UnreceivedPackets returns all the unreceived IBC packets associated with - a - - channel and sequences. - operationId: UnreceivedPackets - responses: - '200': - description: A successful response. - schema: - type: object - properties: - sequences: - type: array - items: - type: string - format: uint64 - title: list of unreceived packet sequences - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryUnreceivedPacketsResponse is the response type for the - Query/UnreceivedPacketCommitments RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: channel_id - description: channel unique identifier - in: path - required: true - type: string - - name: port_id - description: port unique identifier - in: path - required: true - type: string - - name: packet_commitment_sequences - description: list of packet sequences - in: path - required: true - type: array - items: - type: string - format: uint64 - collectionFormat: csv - minItems: 1 - tags: - - Query - '/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_commitments/{sequence}': - get: - summary: PacketCommitment queries a stored packet commitment hash. - operationId: PacketCommitment - responses: - '200': - description: A successful response. - schema: - type: object - properties: - commitment: - type: string - format: byte - title: packet associated with the request fields - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: >- - QueryPacketCommitmentResponse defines the client query response - for a packet - - which also includes a proof and the height from which the proof - was - - retrieved - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: channel_id - description: channel unique identifier - in: path - required: true - type: string - - name: port_id - description: port unique identifier - in: path - required: true - type: string - - name: sequence - description: packet sequence - in: path - required: true - type: string - format: uint64 - tags: - - Query - '/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_receipts/{sequence}': - get: - summary: >- - PacketReceipt queries if a given packet sequence has been received on - the - - queried chain - operationId: PacketReceipt - responses: - '200': - description: A successful response. - schema: - type: object - properties: - received: - type: boolean - format: boolean - title: success flag for if receipt exists - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: >- - QueryPacketReceiptResponse defines the client query response for a - packet - - receipt which also includes a proof, and the height from which the - proof was - - retrieved - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: channel_id - description: channel unique identifier - in: path - required: true - type: string - - name: port_id - description: port unique identifier - in: path - required: true - type: string - - name: sequence - description: packet sequence - in: path - required: true - type: string - format: uint64 - tags: - - Query - '/ibc/core/channel/v1/connections/{connection}/channels': - get: - summary: |- - ConnectionChannels queries all the channels associated with a connection - end. - operationId: ConnectionChannels - responses: - '200': - description: A successful response. - schema: - type: object - properties: - channels: - type: array - items: - type: object - properties: - state: - title: current state of the channel end - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - - STATE_CLOSED - default: STATE_UNINITIALIZED_UNSPECIFIED - description: >- - State defines if a channel is in one of the following - states: - - CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. - - - STATE_UNINITIALIZED_UNSPECIFIED: Default State - - STATE_INIT: A channel has just started the opening handshake. - - STATE_TRYOPEN: A channel has acknowledged the handshake step on the counterparty chain. - - STATE_OPEN: A channel has completed the handshake. Open channels are - ready to send and receive packets. - - STATE_CLOSED: A channel has been closed and can no longer be used to send or receive - packets. - ordering: - title: whether the channel is ordered or unordered - type: string - enum: - - ORDER_NONE_UNSPECIFIED - - ORDER_UNORDERED - - ORDER_ORDERED - default: ORDER_NONE_UNSPECIFIED - description: >- - - ORDER_NONE_UNSPECIFIED: zero-value for channel - ordering - - ORDER_UNORDERED: packets can be delivered in any order, which may differ from the order in - which they were sent. - - ORDER_ORDERED: packets are delivered exactly in the order which they were sent - counterparty: - title: counterparty channel end - type: object - properties: - port_id: - type: string - description: >- - port on the counterparty chain which owns the other - end of the channel. - channel_id: - type: string - title: channel end on the counterparty chain - connection_hops: - type: array - items: - type: string - title: >- - list of connection identifiers, in order, along which - packets sent on - - this channel will travel - version: - type: string - title: >- - opaque channel version, which is agreed upon during the - handshake - port_id: - type: string - title: port identifier - channel_id: - type: string - title: channel identifier - description: >- - IdentifiedChannel defines a channel with additional port and - channel - - identifier fields. - description: list of channels associated with a connection. - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - PageResponse is to be embedded in gRPC response messages where - the - - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height - while keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryConnectionChannelsResponse is the Response type for the - Query/QueryConnectionChannels RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: connection - description: connection unique identifier - in: path - required: true - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - tags: - - Query -definitions: - cosmos.base.query.v1beta1.PageRequest: - type: object - properties: - key: - type: string - format: byte - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - offset: - type: string - format: uint64 - description: |- - offset is a numeric offset that can be used when key is unavailable. - It is less efficient than using key. Only one of offset or key should - be set. - limit: - type: string - format: uint64 - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - count_total: - type: boolean - format: boolean - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in UIs. - - count_total is only respected when offset is used. It is ignored when - key - - is set. - description: |- - message SomeRequest { - Foo some_parameter = 1; - PageRequest pagination = 2; - } - title: |- - PageRequest is to be embedded in gRPC request messages for efficient - pagination. Ex: - cosmos.base.query.v1beta1.PageResponse: - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: |- - total is total number of results available if PageRequest.count_total - was set, its value is undefined otherwise - description: |- - PageResponse is to be embedded in gRPC response messages where the - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - google.protobuf.Any: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a canonical - form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types that - they - - expect it to use in the context of Any. However, for URLs which use - the - - scheme `http`, `https`, or no scheme, one can optionally set up a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along with - a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - grpc.gateway.runtime.Error: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up - a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - ibc.applications.transfer.v1.DenomTrace: - type: object - properties: - path: - type: string - description: >- - path defines the chain of port/channel identifiers used for tracing - the - - source of the fungible token. - base_denom: - type: string - description: base denomination of the relayed fungible token. - description: >- - DenomTrace contains the base denomination for ICS20 fungible tokens and - the - - source tracing information path. - ibc.applications.transfer.v1.Params: - type: object - properties: - send_enabled: - type: boolean - format: boolean - description: >- - send_enabled enables or disables all cross-chain token transfers from - this - - chain. - receive_enabled: - type: boolean - format: boolean - description: >- - receive_enabled enables or disables all cross-chain token transfers to - this - - chain. - description: >- - Params defines the set of IBC transfer parameters. - - NOTE: To prevent a single token from being transferred, set the - - TransfersEnabled parameter to true and then set the bank module's - SendEnabled - - parameter for the denomination to false. - ibc.applications.transfer.v1.QueryDenomHashResponse: - type: object - properties: - hash: - type: string - description: hash (in hex format) of the denomination trace information. - description: |- - QueryDenomHashResponse is the response type for the Query/DenomHash RPC - method. - ibc.applications.transfer.v1.QueryDenomTraceResponse: - type: object - properties: - denom_trace: - type: object - properties: - path: - type: string - description: >- - path defines the chain of port/channel identifiers used for - tracing the - - source of the fungible token. - base_denom: - type: string - description: base denomination of the relayed fungible token. - description: >- - DenomTrace contains the base denomination for ICS20 fungible tokens - and the - - source tracing information path. - description: |- - QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC - method. - ibc.applications.transfer.v1.QueryDenomTracesResponse: - type: object - properties: - denom_traces: - type: array - items: - type: object - properties: - path: - type: string - description: >- - path defines the chain of port/channel identifiers used for - tracing the - - source of the fungible token. - base_denom: - type: string - description: base denomination of the relayed fungible token. - description: >- - DenomTrace contains the base denomination for ICS20 fungible tokens - and the - - source tracing information path. - description: denom_traces returns all denominations trace information. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryConnectionsResponse is the response type for the Query/DenomTraces - RPC - - method. - ibc.applications.transfer.v1.QueryParamsResponse: - type: object - properties: - params: - description: params defines the parameters of the module. - type: object - properties: - send_enabled: - type: boolean - format: boolean - description: >- - send_enabled enables or disables all cross-chain token transfers - from this - - chain. - receive_enabled: - type: boolean - format: boolean - description: >- - receive_enabled enables or disables all cross-chain token - transfers to this - - chain. - description: QueryParamsResponse is the response type for the Query/Params RPC method. - ibc.core.client.v1.ConsensusStateWithHeight: - type: object - properties: - height: - title: consensus state height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - consensus_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: consensus state - description: >- - ConsensusStateWithHeight defines a consensus state with an additional - height - - field. - ibc.core.client.v1.Height: - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: |- - Normally the RevisionHeight is incremented at each height while keeping - RevisionNumber the same. However some consensus algorithms may choose to - reset the height in certain conditions e.g. hard forks, state-machine - breaking changes In these cases, the RevisionNumber is incremented so that - height continues to be monitonically increasing even as the RevisionHeight - gets reset - title: >- - Height is a monotonically increasing data type - - that can be compared against another Height for the purposes of updating - and - - freezing clients - ibc.core.client.v1.IdentifiedClientState: - type: object - properties: - client_id: - type: string - title: client identifier - client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: client state - description: |- - IdentifiedClientState defines a client state with an additional client - identifier field. - ibc.core.client.v1.Params: - type: object - properties: - allowed_clients: - type: array - items: - type: string - description: allowed_clients defines the list of allowed client state types. - description: Params defines the set of IBC light client parameters. - ibc.core.client.v1.QueryClientParamsResponse: - type: object - properties: - params: - description: params defines the parameters of the module. - type: object - properties: - allowed_clients: - type: array - items: - type: string - description: allowed_clients defines the list of allowed client state types. - description: >- - QueryClientParamsResponse is the response type for the Query/ClientParams - RPC - - method. - ibc.core.client.v1.QueryClientStateResponse: - type: object - properties: - client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: client state associated with the request identifier - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - description: >- - QueryClientStateResponse is the response type for the Query/ClientState - RPC - - method. Besides the client state, it includes a proof and the height from - - which the proof was retrieved. - ibc.core.client.v1.QueryClientStatesResponse: - type: object - properties: - client_states: - type: array - items: - type: object - properties: - client_id: - type: string - title: client identifier - client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: client state - description: >- - IdentifiedClientState defines a client state with an additional - client - - identifier field. - description: list of stored ClientStates of the chain. - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - PageResponse is to be embedded in gRPC response messages where the - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - description: >- - QueryClientStatesResponse is the response type for the Query/ClientStates - RPC - - method. - ibc.core.client.v1.QueryClientStatusResponse: - type: object - properties: - status: - type: string - description: >- - QueryClientStatusResponse is the response type for the Query/ClientStatus - RPC - - method. It returns the current status of the IBC client. - ibc.core.client.v1.QueryConsensusStateResponse: - type: object - properties: - consensus_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: >- - consensus state associated with the client identifier at the given - height - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: >- - QueryConsensusStateResponse is the response type for the - Query/ConsensusState - - RPC method - ibc.core.client.v1.QueryConsensusStatesResponse: - type: object - properties: - consensus_states: - type: array - items: - type: object - properties: - height: - title: consensus state height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may - choose to - - reset the height in certain conditions e.g. hard forks, - state-machine - - breaking changes In these cases, the RevisionNumber is - incremented so that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - consensus_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: consensus state - description: >- - ConsensusStateWithHeight defines a consensus state with an - additional height - - field. - title: consensus states associated with the identifier - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - PageResponse is to be embedded in gRPC response messages where the - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - title: |- - QueryConsensusStatesResponse is the response type for the - Query/ConsensusStates RPC method - ibc.core.client.v1.QueryUpgradedClientStateResponse: - type: object - properties: - upgraded_client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: client state associated with the request identifier - description: |- - QueryUpgradedClientStateResponse is the response type for the - Query/UpgradedClientState RPC method. - ibc.core.client.v1.QueryUpgradedConsensusStateResponse: - type: object - properties: - upgraded_consensus_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: Consensus state associated with the request identifier - description: |- - QueryUpgradedConsensusStateResponse is the response type for the - Query/UpgradedConsensusState RPC method. - ibc.core.commitment.v1.MerklePrefix: - type: object - properties: - key_prefix: - type: string - format: byte - title: |- - MerklePrefix is merkle path prefixed to the key. - The constructed key from the Path and the key will be append(Path.KeyPath, - append(Path.KeyPrefix, key...)) - ibc.core.connection.v1.ConnectionEnd: - type: object - properties: - client_id: - type: string - description: client associated with this connection. - versions: - type: array - items: - type: object - properties: - identifier: - type: string - title: unique version identifier - features: - type: array - items: - type: string - title: list of features compatible with the specified identifier - description: >- - Version defines the versioning scheme used to negotiate the IBC - verison in - - the connection handshake. - description: >- - IBC version which can be utilised to determine encodings or protocols - for - - channels or packets utilising this connection. - state: - description: current state of the connection end. - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - default: STATE_UNINITIALIZED_UNSPECIFIED - counterparty: - description: counterparty chain associated with this connection. - type: object - properties: - client_id: - type: string - description: >- - identifies the client on the counterparty chain associated with a - given - - connection. - connection_id: - type: string - description: >- - identifies the connection end on the counterparty chain associated - with a - - given connection. - prefix: - description: commitment merkle prefix of the counterparty chain. - type: object - properties: - key_prefix: - type: string - format: byte - title: >- - MerklePrefix is merkle path prefixed to the key. - - The constructed key from the Path and the key will be - append(Path.KeyPath, - - append(Path.KeyPrefix, key...)) - delay_period: - type: string - format: uint64 - description: >- - delay period that must pass before a consensus state can be used for - - packet-verification NOTE: delay period logic is only implemented by - some - - clients. - description: |- - ConnectionEnd defines a stateful object on a chain connected to another - separate one. - NOTE: there must only be 2 defined ConnectionEnds to establish - a connection between two chains. - ibc.core.connection.v1.Counterparty: - type: object - properties: - client_id: - type: string - description: >- - identifies the client on the counterparty chain associated with a - given - - connection. - connection_id: - type: string - description: >- - identifies the connection end on the counterparty chain associated - with a - - given connection. - prefix: - description: commitment merkle prefix of the counterparty chain. - type: object - properties: - key_prefix: - type: string - format: byte - title: >- - MerklePrefix is merkle path prefixed to the key. - - The constructed key from the Path and the key will be - append(Path.KeyPath, - - append(Path.KeyPrefix, key...)) - description: >- - Counterparty defines the counterparty chain associated with a connection - end. - ibc.core.connection.v1.IdentifiedConnection: - type: object - properties: - id: - type: string - description: connection identifier. - client_id: - type: string - description: client associated with this connection. - versions: - type: array - items: - type: object - properties: - identifier: - type: string - title: unique version identifier - features: - type: array - items: - type: string - title: list of features compatible with the specified identifier - description: >- - Version defines the versioning scheme used to negotiate the IBC - verison in - - the connection handshake. - title: >- - IBC version which can be utilised to determine encodings or protocols - for - - channels or packets utilising this connection - state: - description: current state of the connection end. - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - default: STATE_UNINITIALIZED_UNSPECIFIED - counterparty: - description: counterparty chain associated with this connection. - type: object - properties: - client_id: - type: string - description: >- - identifies the client on the counterparty chain associated with a - given - - connection. - connection_id: - type: string - description: >- - identifies the connection end on the counterparty chain associated - with a - - given connection. - prefix: - description: commitment merkle prefix of the counterparty chain. - type: object - properties: - key_prefix: - type: string - format: byte - title: >- - MerklePrefix is merkle path prefixed to the key. - - The constructed key from the Path and the key will be - append(Path.KeyPath, - - append(Path.KeyPrefix, key...)) - delay_period: - type: string - format: uint64 - description: delay period associated with this connection. - description: |- - IdentifiedConnection defines a connection with additional connection - identifier field. - ibc.core.connection.v1.QueryClientConnectionsResponse: - type: object - properties: - connection_paths: - type: array - items: - type: string - description: slice of all the connection paths associated with a client. - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was generated - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryClientConnectionsResponse is the response type for the - Query/ClientConnections RPC method - ibc.core.connection.v1.QueryConnectionClientStateResponse: - type: object - properties: - identified_client_state: - title: client state associated with the channel - type: object - properties: - client_id: - type: string - title: client identifier - client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: client state - description: |- - IdentifiedClientState defines a client state with an additional client - identifier field. - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryConnectionClientStateResponse is the response type for the - Query/ConnectionClientState RPC method - ibc.core.connection.v1.QueryConnectionConsensusStateResponse: - type: object - properties: - consensus_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: consensus state associated with the channel - client_id: - type: string - title: client ID associated with the consensus state - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryConnectionConsensusStateResponse is the response type for the - Query/ConnectionConsensusState RPC method - ibc.core.connection.v1.QueryConnectionResponse: - type: object - properties: - connection: - title: connection associated with the request identifier - type: object - properties: - client_id: - type: string - description: client associated with this connection. - versions: - type: array - items: - type: object - properties: - identifier: - type: string - title: unique version identifier - features: - type: array - items: - type: string - title: list of features compatible with the specified identifier - description: >- - Version defines the versioning scheme used to negotiate the IBC - verison in - - the connection handshake. - description: >- - IBC version which can be utilised to determine encodings or - protocols for - - channels or packets utilising this connection. - state: - description: current state of the connection end. - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - default: STATE_UNINITIALIZED_UNSPECIFIED - counterparty: - description: counterparty chain associated with this connection. - type: object - properties: - client_id: - type: string - description: >- - identifies the client on the counterparty chain associated - with a given - - connection. - connection_id: - type: string - description: >- - identifies the connection end on the counterparty chain - associated with a - - given connection. - prefix: - description: commitment merkle prefix of the counterparty chain. - type: object - properties: - key_prefix: - type: string - format: byte - title: >- - MerklePrefix is merkle path prefixed to the key. - - The constructed key from the Path and the key will be - append(Path.KeyPath, - - append(Path.KeyPrefix, key...)) - delay_period: - type: string - format: uint64 - description: >- - delay period that must pass before a consensus state can be used - for - - packet-verification NOTE: delay period logic is only implemented - by some - - clients. - description: >- - ConnectionEnd defines a stateful object on a chain connected to - another - - separate one. - - NOTE: there must only be 2 defined ConnectionEnds to establish - - a connection between two chains. - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - description: >- - QueryConnectionResponse is the response type for the Query/Connection RPC - - method. Besides the connection end, it includes a proof and the height - from - - which the proof was retrieved. - ibc.core.connection.v1.QueryConnectionsResponse: - type: object - properties: - connections: - type: array - items: - type: object - properties: - id: - type: string - description: connection identifier. - client_id: - type: string - description: client associated with this connection. - versions: - type: array - items: - type: object - properties: - identifier: - type: string - title: unique version identifier - features: - type: array - items: - type: string - title: list of features compatible with the specified identifier - description: >- - Version defines the versioning scheme used to negotiate the - IBC verison in - - the connection handshake. - title: >- - IBC version which can be utilised to determine encodings or - protocols for - - channels or packets utilising this connection - state: - description: current state of the connection end. - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - default: STATE_UNINITIALIZED_UNSPECIFIED - counterparty: - description: counterparty chain associated with this connection. - type: object - properties: - client_id: - type: string - description: >- - identifies the client on the counterparty chain associated - with a given - - connection. - connection_id: - type: string - description: >- - identifies the connection end on the counterparty chain - associated with a - - given connection. - prefix: - description: commitment merkle prefix of the counterparty chain. - type: object - properties: - key_prefix: - type: string - format: byte - title: >- - MerklePrefix is merkle path prefixed to the key. - - The constructed key from the Path and the key will be - append(Path.KeyPath, - - append(Path.KeyPrefix, key...)) - delay_period: - type: string - format: uint64 - description: delay period associated with this connection. - description: |- - IdentifiedConnection defines a connection with additional connection - identifier field. - description: list of stored connections of the chain. - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - PageResponse is to be embedded in gRPC response messages where the - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - description: >- - QueryConnectionsResponse is the response type for the Query/Connections - RPC - - method. - ibc.core.connection.v1.State: - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - default: STATE_UNINITIALIZED_UNSPECIFIED - description: |- - State defines if a connection is in one of the following states: - INIT, TRYOPEN, OPEN or UNINITIALIZED. - - - STATE_UNINITIALIZED_UNSPECIFIED: Default State - - STATE_INIT: A connection end has just started the opening handshake. - - STATE_TRYOPEN: A connection end has acknowledged the handshake step on the counterparty - chain. - - STATE_OPEN: A connection end has completed the handshake. - ibc.core.connection.v1.Version: - type: object - properties: - identifier: - type: string - title: unique version identifier - features: - type: array - items: - type: string - title: list of features compatible with the specified identifier - description: |- - Version defines the versioning scheme used to negotiate the IBC verison in - the connection handshake. - ibc.core.channel.v1.Channel: - type: object - properties: - state: - title: current state of the channel end - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - - STATE_CLOSED - default: STATE_UNINITIALIZED_UNSPECIFIED - description: |- - State defines if a channel is in one of the following states: - CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. - - - STATE_UNINITIALIZED_UNSPECIFIED: Default State - - STATE_INIT: A channel has just started the opening handshake. - - STATE_TRYOPEN: A channel has acknowledged the handshake step on the counterparty chain. - - STATE_OPEN: A channel has completed the handshake. Open channels are - ready to send and receive packets. - - STATE_CLOSED: A channel has been closed and can no longer be used to send or receive - packets. - ordering: - title: whether the channel is ordered or unordered - type: string - enum: - - ORDER_NONE_UNSPECIFIED - - ORDER_UNORDERED - - ORDER_ORDERED - default: ORDER_NONE_UNSPECIFIED - description: |- - - ORDER_NONE_UNSPECIFIED: zero-value for channel ordering - - ORDER_UNORDERED: packets can be delivered in any order, which may differ from the order in - which they were sent. - - ORDER_ORDERED: packets are delivered exactly in the order which they were sent - counterparty: - title: counterparty channel end - type: object - properties: - port_id: - type: string - description: >- - port on the counterparty chain which owns the other end of the - channel. - channel_id: - type: string - title: channel end on the counterparty chain - connection_hops: - type: array - items: - type: string - title: |- - list of connection identifiers, in order, along which packets sent on - this channel will travel - version: - type: string - title: 'opaque channel version, which is agreed upon during the handshake' - description: |- - Channel defines pipeline for exactly-once packet delivery between specific - modules on separate blockchains, which has at least one end capable of - sending packets and one end capable of receiving packets. - ibc.core.channel.v1.Counterparty: - type: object - properties: - port_id: - type: string - description: >- - port on the counterparty chain which owns the other end of the - channel. - channel_id: - type: string - title: channel end on the counterparty chain - title: Counterparty defines a channel end counterparty - ibc.core.channel.v1.IdentifiedChannel: - type: object - properties: - state: - title: current state of the channel end - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - - STATE_CLOSED - default: STATE_UNINITIALIZED_UNSPECIFIED - description: |- - State defines if a channel is in one of the following states: - CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. - - - STATE_UNINITIALIZED_UNSPECIFIED: Default State - - STATE_INIT: A channel has just started the opening handshake. - - STATE_TRYOPEN: A channel has acknowledged the handshake step on the counterparty chain. - - STATE_OPEN: A channel has completed the handshake. Open channels are - ready to send and receive packets. - - STATE_CLOSED: A channel has been closed and can no longer be used to send or receive - packets. - ordering: - title: whether the channel is ordered or unordered - type: string - enum: - - ORDER_NONE_UNSPECIFIED - - ORDER_UNORDERED - - ORDER_ORDERED - default: ORDER_NONE_UNSPECIFIED - description: |- - - ORDER_NONE_UNSPECIFIED: zero-value for channel ordering - - ORDER_UNORDERED: packets can be delivered in any order, which may differ from the order in - which they were sent. - - ORDER_ORDERED: packets are delivered exactly in the order which they were sent - counterparty: - title: counterparty channel end - type: object - properties: - port_id: - type: string - description: >- - port on the counterparty chain which owns the other end of the - channel. - channel_id: - type: string - title: channel end on the counterparty chain - connection_hops: - type: array - items: - type: string - title: |- - list of connection identifiers, in order, along which packets sent on - this channel will travel - version: - type: string - title: 'opaque channel version, which is agreed upon during the handshake' - port_id: - type: string - title: port identifier - channel_id: - type: string - title: channel identifier - description: |- - IdentifiedChannel defines a channel with additional port and channel - identifier fields. - ibc.core.channel.v1.Order: - type: string - enum: - - ORDER_NONE_UNSPECIFIED - - ORDER_UNORDERED - - ORDER_ORDERED - default: ORDER_NONE_UNSPECIFIED - description: |- - - ORDER_NONE_UNSPECIFIED: zero-value for channel ordering - - ORDER_UNORDERED: packets can be delivered in any order, which may differ from the order in - which they were sent. - - ORDER_ORDERED: packets are delivered exactly in the order which they were sent - title: Order defines if a channel is ORDERED or UNORDERED - ibc.core.channel.v1.PacketState: - type: object - properties: - port_id: - type: string - description: channel port identifier. - channel_id: - type: string - description: channel unique identifier. - sequence: - type: string - format: uint64 - description: packet sequence. - data: - type: string - format: byte - description: embedded data that represents packet state. - description: |- - PacketState defines the generic type necessary to retrieve and store - packet commitments, acknowledgements, and receipts. - Caller is responsible for knowing the context necessary to interpret this - state as a commitment, acknowledgement, or a receipt. - ibc.core.channel.v1.QueryChannelClientStateResponse: - type: object - properties: - identified_client_state: - title: client state associated with the channel - type: object - properties: - client_id: - type: string - title: client identifier - client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: client state - description: |- - IdentifiedClientState defines a client state with an additional client - identifier field. - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryChannelClientStateResponse is the Response type for the - Query/QueryChannelClientState RPC method - ibc.core.channel.v1.QueryChannelConsensusStateResponse: - type: object - properties: - consensus_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: consensus state associated with the channel - client_id: - type: string - title: client ID associated with the consensus state - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryChannelClientStateResponse is the Response type for the - Query/QueryChannelClientState RPC method - ibc.core.channel.v1.QueryChannelResponse: - type: object - properties: - channel: - title: channel associated with the request identifiers - type: object - properties: - state: - title: current state of the channel end - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - - STATE_CLOSED - default: STATE_UNINITIALIZED_UNSPECIFIED - description: |- - State defines if a channel is in one of the following states: - CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. - - - STATE_UNINITIALIZED_UNSPECIFIED: Default State - - STATE_INIT: A channel has just started the opening handshake. - - STATE_TRYOPEN: A channel has acknowledged the handshake step on the counterparty chain. - - STATE_OPEN: A channel has completed the handshake. Open channels are - ready to send and receive packets. - - STATE_CLOSED: A channel has been closed and can no longer be used to send or receive - packets. - ordering: - title: whether the channel is ordered or unordered - type: string - enum: - - ORDER_NONE_UNSPECIFIED - - ORDER_UNORDERED - - ORDER_ORDERED - default: ORDER_NONE_UNSPECIFIED - description: |- - - ORDER_NONE_UNSPECIFIED: zero-value for channel ordering - - ORDER_UNORDERED: packets can be delivered in any order, which may differ from the order in - which they were sent. - - ORDER_ORDERED: packets are delivered exactly in the order which they were sent - counterparty: - title: counterparty channel end - type: object - properties: - port_id: - type: string - description: >- - port on the counterparty chain which owns the other end of the - channel. - channel_id: - type: string - title: channel end on the counterparty chain - connection_hops: - type: array - items: - type: string - title: >- - list of connection identifiers, in order, along which packets sent - on - - this channel will travel - version: - type: string - title: 'opaque channel version, which is agreed upon during the handshake' - description: >- - Channel defines pipeline for exactly-once packet delivery between - specific - - modules on separate blockchains, which has at least one end capable of - - sending packets and one end capable of receiving packets. - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - description: >- - QueryChannelResponse is the response type for the Query/Channel RPC - method. - - Besides the Channel end, it includes a proof and the height from which the - - proof was retrieved. - ibc.core.channel.v1.QueryChannelsResponse: - type: object - properties: - channels: - type: array - items: - type: object - properties: - state: - title: current state of the channel end - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - - STATE_CLOSED - default: STATE_UNINITIALIZED_UNSPECIFIED - description: |- - State defines if a channel is in one of the following states: - CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. - - - STATE_UNINITIALIZED_UNSPECIFIED: Default State - - STATE_INIT: A channel has just started the opening handshake. - - STATE_TRYOPEN: A channel has acknowledged the handshake step on the counterparty chain. - - STATE_OPEN: A channel has completed the handshake. Open channels are - ready to send and receive packets. - - STATE_CLOSED: A channel has been closed and can no longer be used to send or receive - packets. - ordering: - title: whether the channel is ordered or unordered - type: string - enum: - - ORDER_NONE_UNSPECIFIED - - ORDER_UNORDERED - - ORDER_ORDERED - default: ORDER_NONE_UNSPECIFIED - description: |- - - ORDER_NONE_UNSPECIFIED: zero-value for channel ordering - - ORDER_UNORDERED: packets can be delivered in any order, which may differ from the order in - which they were sent. - - ORDER_ORDERED: packets are delivered exactly in the order which they were sent - counterparty: - title: counterparty channel end - type: object - properties: - port_id: - type: string - description: >- - port on the counterparty chain which owns the other end of - the channel. - channel_id: - type: string - title: channel end on the counterparty chain - connection_hops: - type: array - items: - type: string - title: >- - list of connection identifiers, in order, along which packets - sent on - - this channel will travel - version: - type: string - title: >- - opaque channel version, which is agreed upon during the - handshake - port_id: - type: string - title: port identifier - channel_id: - type: string - title: channel identifier - description: |- - IdentifiedChannel defines a channel with additional port and channel - identifier fields. - description: list of stored channels of the chain. - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - PageResponse is to be embedded in gRPC response messages where the - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - description: >- - QueryChannelsResponse is the response type for the Query/Channels RPC - method. - ibc.core.channel.v1.QueryConnectionChannelsResponse: - type: object - properties: - channels: - type: array - items: - type: object - properties: - state: - title: current state of the channel end - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - - STATE_CLOSED - default: STATE_UNINITIALIZED_UNSPECIFIED - description: |- - State defines if a channel is in one of the following states: - CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. - - - STATE_UNINITIALIZED_UNSPECIFIED: Default State - - STATE_INIT: A channel has just started the opening handshake. - - STATE_TRYOPEN: A channel has acknowledged the handshake step on the counterparty chain. - - STATE_OPEN: A channel has completed the handshake. Open channels are - ready to send and receive packets. - - STATE_CLOSED: A channel has been closed and can no longer be used to send or receive - packets. - ordering: - title: whether the channel is ordered or unordered - type: string - enum: - - ORDER_NONE_UNSPECIFIED - - ORDER_UNORDERED - - ORDER_ORDERED - default: ORDER_NONE_UNSPECIFIED - description: |- - - ORDER_NONE_UNSPECIFIED: zero-value for channel ordering - - ORDER_UNORDERED: packets can be delivered in any order, which may differ from the order in - which they were sent. - - ORDER_ORDERED: packets are delivered exactly in the order which they were sent - counterparty: - title: counterparty channel end - type: object - properties: - port_id: - type: string - description: >- - port on the counterparty chain which owns the other end of - the channel. - channel_id: - type: string - title: channel end on the counterparty chain - connection_hops: - type: array - items: - type: string - title: >- - list of connection identifiers, in order, along which packets - sent on - - this channel will travel - version: - type: string - title: >- - opaque channel version, which is agreed upon during the - handshake - port_id: - type: string - title: port identifier - channel_id: - type: string - title: channel identifier - description: |- - IdentifiedChannel defines a channel with additional port and channel - identifier fields. - description: list of channels associated with a connection. - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - PageResponse is to be embedded in gRPC response messages where the - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryConnectionChannelsResponse is the Response type for the - Query/QueryConnectionChannels RPC method - ibc.core.channel.v1.QueryNextSequenceReceiveResponse: - type: object - properties: - next_sequence_receive: - type: string - format: uint64 - title: next sequence receive number - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QuerySequenceResponse is the request type for the - Query/QueryNextSequenceReceiveResponse RPC method - ibc.core.channel.v1.QueryPacketAcknowledgementResponse: - type: object - properties: - acknowledgement: - type: string - format: byte - title: packet associated with the request fields - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryPacketAcknowledgementResponse defines the client query response for a - packet which also includes a proof and the height from which the - proof was retrieved - ibc.core.channel.v1.QueryPacketAcknowledgementsResponse: - type: object - properties: - acknowledgements: - type: array - items: - type: object - properties: - port_id: - type: string - description: channel port identifier. - channel_id: - type: string - description: channel unique identifier. - sequence: - type: string - format: uint64 - description: packet sequence. - data: - type: string - format: byte - description: embedded data that represents packet state. - description: >- - PacketState defines the generic type necessary to retrieve and store - - packet commitments, acknowledgements, and receipts. - - Caller is responsible for knowing the context necessary to interpret - this - - state as a commitment, acknowledgement, or a receipt. - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - PageResponse is to be embedded in gRPC response messages where the - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryPacketAcknowledgemetsResponse is the request type for the - Query/QueryPacketAcknowledgements RPC method - ibc.core.channel.v1.QueryPacketCommitmentResponse: - type: object - properties: - commitment: - type: string - format: byte - title: packet associated with the request fields - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: >- - QueryPacketCommitmentResponse defines the client query response for a - packet - - which also includes a proof and the height from which the proof was - - retrieved - ibc.core.channel.v1.QueryPacketCommitmentsResponse: - type: object - properties: - commitments: - type: array - items: - type: object - properties: - port_id: - type: string - description: channel port identifier. - channel_id: - type: string - description: channel unique identifier. - sequence: - type: string - format: uint64 - description: packet sequence. - data: - type: string - format: byte - description: embedded data that represents packet state. - description: >- - PacketState defines the generic type necessary to retrieve and store - - packet commitments, acknowledgements, and receipts. - - Caller is responsible for knowing the context necessary to interpret - this - - state as a commitment, acknowledgement, or a receipt. - pagination: - title: pagination response - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - PageResponse is to be embedded in gRPC response messages where the - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryPacketCommitmentsResponse is the request type for the - Query/QueryPacketCommitments RPC method - ibc.core.channel.v1.QueryPacketReceiptResponse: - type: object - properties: - received: - type: boolean - format: boolean - title: success flag for if receipt exists - proof: - type: string - format: byte - title: merkle proof of existence - proof_height: - title: height at which the proof was retrieved - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: >- - QueryPacketReceiptResponse defines the client query response for a packet - - receipt which also includes a proof, and the height from which the proof - was - - retrieved - ibc.core.channel.v1.QueryUnreceivedAcksResponse: - type: object - properties: - sequences: - type: array - items: - type: string - format: uint64 - title: list of unreceived acknowledgement sequences - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryUnreceivedAcksResponse is the response type for the - Query/UnreceivedAcks RPC method - ibc.core.channel.v1.QueryUnreceivedPacketsResponse: - type: object - properties: - sequences: - type: array - items: - type: string - format: uint64 - title: list of unreceived packet sequences - height: - title: query block height - type: object - properties: - revision_number: - type: string - format: uint64 - title: the revision that the client is currently on - revision_height: - type: string - format: uint64 - title: the height within the given revision - description: >- - Normally the RevisionHeight is incremented at each height while - keeping - - RevisionNumber the same. However some consensus algorithms may choose - to - - reset the height in certain conditions e.g. hard forks, state-machine - - breaking changes In these cases, the RevisionNumber is incremented so - that - - height continues to be monitonically increasing even as the - RevisionHeight - - gets reset - title: |- - QueryUnreceivedPacketsResponse is the response type for the - Query/UnreceivedPacketCommitments RPC method - ibc.core.channel.v1.State: - type: string - enum: - - STATE_UNINITIALIZED_UNSPECIFIED - - STATE_INIT - - STATE_TRYOPEN - - STATE_OPEN - - STATE_CLOSED - default: STATE_UNINITIALIZED_UNSPECIFIED - description: |- - State defines if a channel is in one of the following states: - CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. - - - STATE_UNINITIALIZED_UNSPECIFIED: Default State - - STATE_INIT: A channel has just started the opening handshake. - - STATE_TRYOPEN: A channel has acknowledged the handshake step on the counterparty chain. - - STATE_OPEN: A channel has completed the handshake. Open channels are - ready to send and receive packets. - - STATE_CLOSED: A channel has been closed and can no longer be used to send or receive - packets. diff --git a/swagger/swagger-sdk.yaml b/swagger/swagger-sdk.yaml deleted file mode 100644 index 4419c7b9..00000000 --- a/swagger/swagger-sdk.yaml +++ /dev/null @@ -1,39946 +0,0 @@ -swagger: '2.0' -info: - title: Cosmos SDK - Legacy REST and gRPC Gateway docs - description: 'A REST interface for state queries, legacy transactions' - version: 1.0.0 -paths: - /node_info: - get: - description: Information about the connected node - summary: The properties of the connected node - tags: - - Gaia REST - produces: - - application/json - responses: - '200': - description: Node status - schema: - type: object - properties: - application_version: - properties: - build_tags: - type: string - client_name: - type: string - commit: - type: string - go: - type: string - name: - type: string - server_name: - type: string - version: - type: string - node_info: - properties: - id: - type: string - moniker: - type: string - example: validator-name - protocol_version: - properties: - p2p: - type: string - example: 7 - block: - type: string - example: 10 - app: - type: string - example: 0 - network: - type: string - example: gaia-2 - channels: - type: string - listen_addr: - type: string - example: '192.168.56.1:26656' - version: - description: Tendermint version - type: string - example: 0.15.0 - other: - description: more information on versions - type: object - properties: - tx_index: - type: string - example: 'on' - rpc_address: - type: string - example: 'tcp://0.0.0.0:26657' - '500': - description: Failed to query node status - /syncing: - get: - summary: Syncing state of node - tags: - - Tendermint RPC - description: Get if the node is currently syning with other nodes - produces: - - application/json - responses: - '200': - description: Node syncing status - schema: - type: object - properties: - syncing: - type: boolean - '500': - description: Server internal error - /blocks/latest: - get: - summary: Get the latest block - tags: - - Tendermint RPC - produces: - - application/json - responses: - '200': - description: The latest block - schema: - type: object - properties: - block_meta: - type: object - properties: - header: - type: object - properties: - chain_id: - type: string - example: cosmoshub-2 - height: - type: number - example: 1 - time: - type: string - example: '2017-12-30T05:53:09.287+01:00' - num_txs: - type: number - example: 0 - last_block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - total_txs: - type: number - example: 35 - last_commit_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - data_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - next_validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - consensus_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - app_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - last_results_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - evidence_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - proposer_address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - version: - type: object - properties: - block: - type: string - example: 10 - app: - type: string - example: 0 - block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - block: - type: object - properties: - header: - type: object - properties: - chain_id: - type: string - example: cosmoshub-2 - height: - type: number - example: 1 - time: - type: string - example: '2017-12-30T05:53:09.287+01:00' - num_txs: - type: number - example: 0 - last_block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - total_txs: - type: number - example: 35 - last_commit_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - data_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - next_validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - consensus_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - app_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - last_results_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - evidence_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - proposer_address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - version: - type: object - properties: - block: - type: string - example: 10 - app: - type: string - example: 0 - txs: - type: array - items: - type: string - evidence: - type: array - items: - type: string - last_commit: - type: object - properties: - block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - precommits: - type: array - items: - type: object - properties: - validator_address: - type: string - validator_index: - type: string - example: '0' - height: - type: string - example: '0' - round: - type: string - example: '0' - timestamp: - type: string - example: '2017-12-30T05:53:09.287+01:00' - type: - type: number - example: 2 - block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - signature: - type: string - example: >- - 7uTC74QlknqYWEwg7Vn6M8Om7FuZ0EO4bjvuj6rwH1mTUJrRuMMZvAAqT9VjNgP0RA/TDp6u/92AqrZfXJSpBQ== - '500': - description: Server internal error - '/blocks/{height}': - get: - summary: Get a block at a certain height - tags: - - Tendermint RPC - produces: - - application/json - parameters: - - in: path - name: height - description: Block height - required: true - type: number - x-example: 1 - responses: - '200': - description: The block at a specific height - schema: - type: object - properties: - block_meta: - type: object - properties: - header: - type: object - properties: - chain_id: - type: string - example: cosmoshub-2 - height: - type: number - example: 1 - time: - type: string - example: '2017-12-30T05:53:09.287+01:00' - num_txs: - type: number - example: 0 - last_block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - total_txs: - type: number - example: 35 - last_commit_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - data_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - next_validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - consensus_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - app_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - last_results_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - evidence_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - proposer_address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - version: - type: object - properties: - block: - type: string - example: 10 - app: - type: string - example: 0 - block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - block: - type: object - properties: - header: - type: object - properties: - chain_id: - type: string - example: cosmoshub-2 - height: - type: number - example: 1 - time: - type: string - example: '2017-12-30T05:53:09.287+01:00' - num_txs: - type: number - example: 0 - last_block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - total_txs: - type: number - example: 35 - last_commit_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - data_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - next_validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - consensus_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - app_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - last_results_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - evidence_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - proposer_address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - version: - type: object - properties: - block: - type: string - example: 10 - app: - type: string - example: 0 - txs: - type: array - items: - type: string - evidence: - type: array - items: - type: string - last_commit: - type: object - properties: - block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - precommits: - type: array - items: - type: object - properties: - validator_address: - type: string - validator_index: - type: string - example: '0' - height: - type: string - example: '0' - round: - type: string - example: '0' - timestamp: - type: string - example: '2017-12-30T05:53:09.287+01:00' - type: - type: number - example: 2 - block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - signature: - type: string - example: >- - 7uTC74QlknqYWEwg7Vn6M8Om7FuZ0EO4bjvuj6rwH1mTUJrRuMMZvAAqT9VjNgP0RA/TDp6u/92AqrZfXJSpBQ== - '400': - description: Invalid height - '404': - description: Request block height doesn't - '500': - description: Server internal error - /validatorsets/latest: - get: - summary: Get the latest validator set - tags: - - Tendermint RPC - produces: - - application/json - responses: - '200': - description: The validator set at the latest block height - schema: - type: object - properties: - block_height: - type: string - validators: - type: array - items: - type: object - properties: - address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - pub_key: - type: string - example: >- - cosmosvalconspub1zcjduepq0vu2zgkgk49efa0nqwzndanq5m4c7pa3u4apz4g2r9gspqg6g9cs3k9cuf - voting_power: - type: string - example: '1000' - proposer_priority: - type: string - example: '1000' - '500': - description: Server internal error - '/validatorsets/{height}': - get: - summary: Get a validator set a certain height - tags: - - Tendermint RPC - produces: - - application/json - parameters: - - in: path - name: height - description: Block height - required: true - type: number - x-example: 1 - responses: - '200': - description: The validator set at a specific block height - schema: - type: object - properties: - block_height: - type: string - validators: - type: array - items: - type: object - properties: - address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - pub_key: - type: string - example: >- - cosmosvalconspub1zcjduepq0vu2zgkgk49efa0nqwzndanq5m4c7pa3u4apz4g2r9gspqg6g9cs3k9cuf - voting_power: - type: string - example: '1000' - proposer_priority: - type: string - example: '1000' - '400': - description: Invalid height - '404': - description: Block at height not available - '500': - description: Server internal error - '/txs/{hash}': - get: - deprecated: true - summary: Get a Tx by hash - tags: - - Transactions - description: Retrieve a transaction using its hash. - produces: - - application/json - parameters: - - in: path - name: hash - description: Tx hash - required: true - type: string - x-example: BCBE20E8D46758B96AE5883B792858296AC06E51435490FBDCAE25A72B3CC76B - responses: - '200': - description: Tx with the provided hash - schema: - type: object - properties: - hash: - type: string - example: >- - D085138D913993919295FF4B0A9107F1F2CDE0D37A87CE0644E217CBF3B49656 - height: - type: number - example: 368 - tx: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - result: - type: object - properties: - log: - type: string - gas_wanted: - type: string - example: '200000' - gas_used: - type: string - example: '26354' - tags: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - '500': - description: Internal Server Error - /txs: - get: - deprecated: true - tags: - - Transactions - summary: Search transactions - description: Search transactions by events. - produces: - - application/json - parameters: - - in: query - name: message.action - type: string - description: >- - transaction events such as 'message.action=send' which results in - the following endpoint: 'GET /txs?message.action=send'. note that - each module documents its own events. look for xx_events.md in the - corresponding cosmos-sdk/docs/spec directory - x-example: send - - in: query - name: message.sender - type: string - description: >- - transaction tags with sender: 'GET - /txs?message.action=send&message.sender=cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv' - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - - in: query - name: page - description: Page number - type: integer - x-example: 1 - - in: query - name: limit - description: Maximum number of items per page - type: integer - x-example: 1 - - in: query - name: tx.minheight - type: integer - description: transactions on blocks with height greater or equal this value - x-example: 25 - - in: query - name: tx.maxheight - type: integer - description: transactions on blocks with height less than or equal this value - x-example: 800000 - responses: - '200': - description: All txs matching the provided events - schema: - type: object - properties: - total_count: - type: number - example: 1 - count: - type: number - example: 1 - page_number: - type: number - example: 1 - page_total: - type: number - example: 1 - limit: - type: number - example: 30 - txs: - type: array - items: - type: object - properties: - hash: - type: string - example: >- - D085138D913993919295FF4B0A9107F1F2CDE0D37A87CE0644E217CBF3B49656 - height: - type: number - example: 368 - tx: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - result: - type: object - properties: - log: - type: string - gas_wanted: - type: string - example: '200000' - gas_used: - type: string - example: '26354' - tags: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - '400': - description: Invalid search events - '500': - description: Internal Server Error - post: - tags: - - Transactions - summary: Broadcast a signed tx - description: Broadcast a signed tx to a full node - consumes: - - application/json - produces: - - application/json - parameters: - - in: body - name: txBroadcast - description: >- - The tx must be a signed StdTx. The supported broadcast modes include - `"block"`(return after tx commit), `"sync"`(return afer CheckTx) and - `"async"`(return right away). - required: true - schema: - type: object - properties: - tx: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - mode: - type: string - example: block - responses: - '200': - description: Tx broadcasting result - schema: - type: object - properties: - check_tx: - type: object - properties: - code: - type: integer - data: - type: string - gas_used: - type: integer - gas_wanted: - type: integer - info: - type: string - log: - type: string - tags: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - example: - code: 0 - data: data - log: log - gas_used: 5000 - gas_wanted: 10000 - info: info - tags: - - '' - - '' - deliver_tx: - type: object - properties: - code: - type: integer - data: - type: string - gas_used: - type: integer - gas_wanted: - type: integer - info: - type: string - log: - type: string - tags: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - example: - code: 5 - data: data - log: log - gas_used: 5000 - gas_wanted: 10000 - info: info - tags: - - '' - - '' - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - height: - type: integer - '500': - description: Internal Server Error - /txs/encode: - post: - deprecated: true - tags: - - Transactions - summary: Encode a transaction to the Amino wire format - description: >- - Encode a transaction (signed or not) from JSON to base64-encoded Amino - serialized bytes - consumes: - - application/json - produces: - - application/json - parameters: - - in: body - name: tx - description: The tx to encode - required: true - schema: - type: object - properties: - tx: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - responses: - '200': - description: The tx was successfully decoded and re-encoded - schema: - type: object - properties: - tx: - type: string - example: The base64-encoded Amino-serialized bytes for the tx - '400': - description: The tx was malformated - '500': - description: Server internal error - /txs/decode: - post: - deprecated: true - tags: - - Transactions - summary: Decode a transaction from the Amino wire format - description: >- - Decode a transaction (signed or not) from base64-encoded Amino - serialized bytes to JSON - consumes: - - application/json - produces: - - application/json - parameters: - - in: body - name: tx - description: The tx to decode - required: true - schema: - type: object - properties: - tx: - type: string - example: >- - SvBiXe4KPqijYZoKFFHEzJ8c2HPAfv2EFUcIhx0yPagwEhTy0vPA+GGhCEslKXa4Af0uB+mfShoMCgVzdGFrZRIDMTAwEgQQwJoM - responses: - '200': - description: The tx was successfully decoded - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: The tx was malformated - '500': - description: Server internal error - '/bank/balances/{address}': - get: - deprecated: true - summary: Get the account balances - tags: - - Bank - produces: - - application/json - parameters: - - in: path - name: address - description: Account address in bech32 format - required: true - type: string - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - responses: - '200': - description: Account balances - schema: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - '500': - description: Server internal error - '/bank/accounts/{address}/transfers': - post: - deprecated: true - summary: Send coins from one account to another - tags: - - Bank - consumes: - - application/json - produces: - - application/json - parameters: - - in: path - name: address - description: Account address in bech32 format - required: true - type: string - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - - in: body - name: account - description: The sender and tx information - required: true - schema: - type: object - properties: - base_req: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in - conjunction with generate_only) - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - responses: - '202': - description: Tx was succesfully generated - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid request - '500': - description: Server internal error - /bank/total: - get: - deprecated: true - summary: Total supply of coins in the chain - tags: - - Bank - produces: - - application/json - responses: - '200': - description: OK - schema: - type: object - properties: - total: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - '500': - description: Internal Server Error - '/bank/total/{denomination}': - parameters: - - in: path - name: denomination - description: Coin denomination - required: true - type: string - x-example: uatom - get: - deprecated: true - summary: Total supply of a single coin denomination - tags: - - Bank - produces: - - application/json - responses: - '200': - description: OK - schema: - type: string - '400': - description: Invalid coin denomination - '500': - description: Internal Server Error - '/auth/accounts/{address}': - get: - deprecated: true - summary: Get the account information on blockchain - tags: - - Auth - produces: - - application/json - parameters: - - in: path - name: address - description: Account address - required: true - type: string - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - responses: - '200': - description: Account information on the blockchain - schema: - type: object - properties: - type: - type: string - value: - type: object - properties: - account_number: - type: string - address: - type: string - coins: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - public_key: - type: object - properties: - type: - type: string - value: - type: string - sequence: - type: string - '500': - description: Server internel error - '/staking/delegators/{delegatorAddr}/delegations': - parameters: - - in: path - name: delegatorAddr - description: Bech32 AccAddress of Delegator - required: true - type: string - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - get: - deprecated: true - summary: Get all delegations from a delegator - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - delegator_address: - type: string - validator_address: - type: string - shares: - type: string - balance: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - '400': - description: Invalid delegator address - '500': - description: Internal Server Error - post: - summary: Submit delegation - parameters: - - in: body - name: delegation - description: Delegate an amount of liquid coins to a validator - schema: - type: object - properties: - base_req: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in - conjunction with generate_only) - delegator_address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - validator_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - amount: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - tags: - - Staking - consumes: - - application/json - produces: - - application/json - responses: - '200': - description: OK - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid delegator address or delegation request body - '401': - description: Key password is wrong - '500': - description: Internal Server Error - '/staking/delegators/{delegatorAddr}/delegations/{validatorAddr}': - parameters: - - in: path - name: delegatorAddr - description: Bech32 AccAddress of Delegator - required: true - type: string - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - - in: path - name: validatorAddr - description: Bech32 OperatorAddress of validator - required: true - type: string - x-example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - get: - deprecated: true - summary: Query the current delegation between a delegator and a validator - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: object - properties: - delegator_address: - type: string - validator_address: - type: string - shares: - type: string - balance: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - '400': - description: Invalid delegator address or validator address - '500': - description: Internal Server Error - '/staking/delegators/{delegatorAddr}/unbonding_delegations': - parameters: - - in: path - name: delegatorAddr - description: Bech32 AccAddress of Delegator - required: true - type: string - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - get: - deprecated: true - summary: Get all unbonding delegations from a delegator - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - delegator_address: - type: string - validator_address: - type: string - initial_balance: - type: string - balance: - type: string - creation_height: - type: integer - min_time: - type: integer - '400': - description: Invalid delegator address - '500': - description: Internal Server Error - post: - summary: Submit an unbonding delegation - parameters: - - in: body - name: delegation - description: Unbond an amount of bonded shares from a validator - schema: - type: object - properties: - base_req: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in - conjunction with generate_only) - delegator_address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - validator_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - amount: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - tags: - - Staking - consumes: - - application/json - produces: - - application/json - responses: - '200': - description: OK - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid delegator address or unbonding delegation request body - '401': - description: Key password is wrong - '500': - description: Internal Server Error - '/staking/delegators/{delegatorAddr}/unbonding_delegations/{validatorAddr}': - parameters: - - in: path - name: delegatorAddr - description: Bech32 AccAddress of Delegator - required: true - type: string - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - - in: path - name: validatorAddr - description: Bech32 OperatorAddress of validator - required: true - type: string - x-example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - get: - deprecated: true - summary: Query all unbonding delegations between a delegator and a validator - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: object - properties: - delegator_address: - type: string - validator_address: - type: string - entries: - type: array - items: - type: object - properties: - initial_balance: - type: string - balance: - type: string - creation_height: - type: string - min_time: - type: string - '400': - description: Invalid delegator address or validator address - '500': - description: Internal Server Error - /staking/redelegations: - parameters: - - in: query - name: delegator - description: Bech32 AccAddress of Delegator - required: false - type: string - - in: query - name: validator_from - description: Bech32 ValAddress of SrcValidator - required: false - type: string - - in: query - name: validator_to - description: Bech32 ValAddress of DstValidator - required: false - type: string - get: - deprecated: true - summary: Get all redelegations (filter by query params) - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: array - items: - $ref: '#/definitions/Redelegation' - '500': - description: Internal Server Error - '/staking/delegators/{delegatorAddr}/redelegations': - parameters: - - in: path - name: delegatorAddr - description: Bech32 AccAddress of Delegator - required: true - type: string - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - post: - deprecated: true - summary: Submit a redelegation - parameters: - - in: body - name: delegation - description: The sender and tx information - schema: - type: object - properties: - base_req: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in - conjunction with generate_only) - delegator_address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - validator_src_addressess: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - validator_dst_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - shares: - type: string - example: '100' - tags: - - Staking - consumes: - - application/json - produces: - - application/json - responses: - '200': - description: Tx was succesfully generated - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid delegator address or redelegation request body - '500': - description: Internal Server Error - '/staking/delegators/{delegatorAddr}/validators': - parameters: - - in: path - name: delegatorAddr - description: Bech32 AccAddress of Delegator - required: true - type: string - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - get: - deprecated: true - summary: Query all validators that a delegator is bonded to - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - operator_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - consensus_pubkey: - type: string - example: >- - cosmosvalconspub1zcjduepq0vu2zgkgk49efa0nqwzndanq5m4c7pa3u4apz4g2r9gspqg6g9cs3k9cuf - jailed: - type: boolean - status: - type: integer - tokens: - type: string - delegator_shares: - type: string - description: - type: object - properties: - moniker: - type: string - identity: - type: string - website: - type: string - security_contact: - type: string - details: - type: string - bond_height: - type: string - example: '0' - bond_intra_tx_counter: - type: integer - example: 0 - unbonding_height: - type: string - example: '0' - unbonding_time: - type: string - example: '1970-01-01T00:00:00Z' - commission: - type: object - properties: - rate: - type: string - example: '0' - max_rate: - type: string - example: '0' - max_change_rate: - type: string - example: '0' - update_time: - type: string - example: '1970-01-01T00:00:00Z' - '400': - description: Invalid delegator address - '500': - description: Internal Server Error - '/staking/delegators/{delegatorAddr}/validators/{validatorAddr}': - parameters: - - in: path - name: delegatorAddr - description: Bech32 AccAddress of Delegator - required: true - type: string - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - - in: path - name: validatorAddr - description: Bech32 ValAddress of Delegator - required: true - type: string - x-example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - get: - deprecated: true - summary: Query a validator that a delegator is bonded to - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: object - properties: - operator_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - consensus_pubkey: - type: string - example: >- - cosmosvalconspub1zcjduepq0vu2zgkgk49efa0nqwzndanq5m4c7pa3u4apz4g2r9gspqg6g9cs3k9cuf - jailed: - type: boolean - status: - type: integer - tokens: - type: string - delegator_shares: - type: string - description: - type: object - properties: - moniker: - type: string - identity: - type: string - website: - type: string - security_contact: - type: string - details: - type: string - bond_height: - type: string - example: '0' - bond_intra_tx_counter: - type: integer - example: 0 - unbonding_height: - type: string - example: '0' - unbonding_time: - type: string - example: '1970-01-01T00:00:00Z' - commission: - type: object - properties: - rate: - type: string - example: '0' - max_rate: - type: string - example: '0' - max_change_rate: - type: string - example: '0' - update_time: - type: string - example: '1970-01-01T00:00:00Z' - '400': - description: Invalid delegator address or validator address - '500': - description: Internal Server Error - /staking/validators: - get: - deprecated: true - summary: >- - Get all validator candidates. By default it returns only the bonded - validators. - parameters: - - in: query - name: status - type: string - description: >- - The validator bond status. Must be either 'bonded', 'unbonded', or - 'unbonding'. - x-example: bonded - - in: query - name: page - description: The page number. - type: integer - x-example: 1 - - in: query - name: limit - description: The maximum number of items per page. - type: integer - x-example: 1 - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - operator_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - consensus_pubkey: - type: string - example: >- - cosmosvalconspub1zcjduepq0vu2zgkgk49efa0nqwzndanq5m4c7pa3u4apz4g2r9gspqg6g9cs3k9cuf - jailed: - type: boolean - status: - type: integer - tokens: - type: string - delegator_shares: - type: string - description: - type: object - properties: - moniker: - type: string - identity: - type: string - website: - type: string - security_contact: - type: string - details: - type: string - bond_height: - type: string - example: '0' - bond_intra_tx_counter: - type: integer - example: 0 - unbonding_height: - type: string - example: '0' - unbonding_time: - type: string - example: '1970-01-01T00:00:00Z' - commission: - type: object - properties: - rate: - type: string - example: '0' - max_rate: - type: string - example: '0' - max_change_rate: - type: string - example: '0' - update_time: - type: string - example: '1970-01-01T00:00:00Z' - '500': - description: Internal Server Error - '/staking/validators/{validatorAddr}': - parameters: - - in: path - name: validatorAddr - description: Bech32 OperatorAddress of validator - required: true - type: string - x-example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - get: - deprecated: true - summary: Query the information from a single validator - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: object - properties: - operator_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - consensus_pubkey: - type: string - example: >- - cosmosvalconspub1zcjduepq0vu2zgkgk49efa0nqwzndanq5m4c7pa3u4apz4g2r9gspqg6g9cs3k9cuf - jailed: - type: boolean - status: - type: integer - tokens: - type: string - delegator_shares: - type: string - description: - type: object - properties: - moniker: - type: string - identity: - type: string - website: - type: string - security_contact: - type: string - details: - type: string - bond_height: - type: string - example: '0' - bond_intra_tx_counter: - type: integer - example: 0 - unbonding_height: - type: string - example: '0' - unbonding_time: - type: string - example: '1970-01-01T00:00:00Z' - commission: - type: object - properties: - rate: - type: string - example: '0' - max_rate: - type: string - example: '0' - max_change_rate: - type: string - example: '0' - update_time: - type: string - example: '1970-01-01T00:00:00Z' - '400': - description: Invalid validator address - '500': - description: Internal Server Error - '/staking/validators/{validatorAddr}/delegations': - parameters: - - in: path - name: validatorAddr - description: Bech32 OperatorAddress of validator - required: true - type: string - x-example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - get: - deprecated: true - summary: Get all delegations from a validator - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - delegator_address: - type: string - validator_address: - type: string - shares: - type: string - balance: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - '400': - description: Invalid validator address - '500': - description: Internal Server Error - '/staking/validators/{validatorAddr}/unbonding_delegations': - parameters: - - in: path - name: validatorAddr - description: Bech32 OperatorAddress of validator - required: true - type: string - x-example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - get: - deprecated: true - summary: Get all unbonding delegations from a validator - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - delegator_address: - type: string - validator_address: - type: string - initial_balance: - type: string - balance: - type: string - creation_height: - type: integer - min_time: - type: integer - '400': - description: Invalid validator address - '500': - description: Internal Server Error - /staking/pool: - get: - deprecated: true - summary: Get the current state of the staking pool - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: object - properties: - loose_tokens: - type: string - bonded_tokens: - type: string - inflation_last_time: - type: string - inflation: - type: string - date_last_commission_reset: - type: string - prev_bonded_shares: - type: string - '500': - description: Internal Server Error - /staking/parameters: - get: - deprecated: true - summary: Get the current staking parameter values - tags: - - Staking - produces: - - application/json - responses: - '200': - description: OK - schema: - type: object - properties: - inflation_rate_change: - type: string - inflation_max: - type: string - inflation_min: - type: string - goal_bonded: - type: string - unbonding_time: - type: string - max_validators: - type: integer - bond_denom: - type: string - '500': - description: Internal Server Error - /slashing/signing_infos: - get: - deprecated: true - summary: Get sign info of given all validators - description: Get sign info of all validators - produces: - - application/json - tags: - - Slashing - parameters: - - in: query - name: page - description: Page number - type: integer - required: true - x-example: 1 - - in: query - name: limit - description: Maximum number of items per page - type: integer - required: true - x-example: 5 - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - start_height: - type: string - index_offset: - type: string - jailed_until: - type: string - missed_blocks_counter: - type: string - '400': - description: Invalid validator public key for one of the validators - '500': - description: Internal Server Error - '/slashing/validators/{validatorAddr}/unjail': - post: - deprecated: true - summary: Unjail a jailed validator - description: Send transaction to unjail a jailed validator - consumes: - - application/json - produces: - - application/json - tags: - - Slashing - parameters: - - type: string - description: Bech32 validator address - name: validatorAddr - required: true - in: path - x-example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - - description: '' - name: UnjailBody - in: body - required: true - schema: - type: object - properties: - base_req: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - responses: - '200': - description: Tx was succesfully generated - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid validator address or base_req - '500': - description: Internal Server Error - /slashing/parameters: - get: - deprecated: true - summary: Get the current slashing parameters - tags: - - Slashing - produces: - - application/json - responses: - '200': - description: OK - schema: - type: object - properties: - max_evidence_age: - type: string - signed_blocks_window: - type: string - min_signed_per_window: - type: string - double_sign_unbond_duration: - type: string - downtime_unbond_duration: - type: string - slash_fraction_double_sign: - type: string - slash_fraction_downtime: - type: string - '500': - description: Internal Server Error - /gov/proposals: - post: - deprecated: true - summary: Submit a proposal - description: Send transaction to submit a proposal - consumes: - - application/json - produces: - - application/json - tags: - - Governance - parameters: - - description: >- - valid value of `"proposal_type"` can be `"text"`, - `"parameter_change"`, `"software_upgrade"` - name: post_proposal_body - in: body - required: true - schema: - type: object - properties: - base_req: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in - conjunction with generate_only) - title: - type: string - description: - type: string - proposal_type: - type: string - example: text - proposer: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - initial_deposit: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - responses: - '200': - description: Tx was succesfully generated - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid proposal body - '500': - description: Internal Server Error - get: - deprecated: true - summary: Query proposals - description: Query proposals information with parameters - produces: - - application/json - tags: - - Governance - parameters: - - in: query - name: voter - description: voter address - required: false - type: string - - in: query - name: depositor - description: depositor address - required: false - type: string - - in: query - name: status - description: >- - proposal status, valid values can be `"deposit_period"`, - `"voting_period"`, `"passed"`, `"rejected"` - required: false - type: string - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - proposal_id: - type: integer - title: - type: string - description: - type: string - proposal_type: - type: string - proposal_status: - type: string - final_tally_result: - type: object - properties: - 'yes': - type: string - example: '0.0000000000' - abstain: - type: string - example: '0.0000000000' - 'no': - type: string - example: '0.0000000000' - no_with_veto: - type: string - example: '0.0000000000' - submit_time: - type: string - total_deposit: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - voting_start_time: - type: string - '400': - description: Invalid query parameters - '500': - description: Internal Server Error - /gov/proposals/param_change: - post: - deprecated: true - summary: Generate a parameter change proposal transaction - description: Generate a parameter change proposal transaction - consumes: - - application/json - produces: - - application/json - tags: - - Governance - parameters: - - description: >- - The parameter change proposal body that contains all parameter - changes - name: post_proposal_body - in: body - required: true - schema: - type: object - properties: - base_req: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in - conjunction with generate_only) - title: - type: string - x-example: Param Change - description: - type: string - x-example: Update max validators - proposer: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - deposit: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - changes: - type: array - items: - type: object - properties: - subspace: - type: string - example: staking - key: - type: string - example: MaxValidators - subkey: - type: string - example: '' - value: - type: object - responses: - '200': - description: The transaction was succesfully generated - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid proposal body - '500': - description: Internal Server Error - '/gov/proposals/{proposalId}': - get: - deprecated: true - summary: Query a proposal - description: Query a proposal by id - produces: - - application/json - tags: - - Governance - parameters: - - type: string - name: proposalId - required: true - in: path - x-example: '2' - responses: - '200': - description: OK - schema: - type: object - properties: - proposal_id: - type: integer - title: - type: string - description: - type: string - proposal_type: - type: string - proposal_status: - type: string - final_tally_result: - type: object - properties: - 'yes': - type: string - example: '0.0000000000' - abstain: - type: string - example: '0.0000000000' - 'no': - type: string - example: '0.0000000000' - no_with_veto: - type: string - example: '0.0000000000' - submit_time: - type: string - total_deposit: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - voting_start_time: - type: string - '400': - description: Invalid proposal id - '500': - description: Internal Server Error - '/gov/proposals/{proposalId}/proposer': - get: - deprecated: true - summary: Query proposer - description: Query for the proposer for a proposal - produces: - - application/json - tags: - - Governance - parameters: - - type: string - name: proposalId - required: true - in: path - x-example: '2' - responses: - '200': - description: OK - schema: - type: object - properties: - proposal_id: - type: string - proposer: - type: string - '400': - description: Invalid proposal ID - '500': - description: Internal Server Error - '/gov/proposals/{proposalId}/deposits': - get: - deprecated: true - summary: Query deposits - description: Query deposits by proposalId - produces: - - application/json - tags: - - Governance - parameters: - - type: string - name: proposalId - required: true - in: path - x-example: '2' - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - proposal_id: - type: string - depositor: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - '400': - description: Invalid proposal id - '500': - description: Internal Server Error - post: - deprecated: true - summary: Deposit tokens to a proposal - description: Send transaction to deposit tokens to a proposal - consumes: - - application/json - produces: - - application/json - tags: - - Governance - parameters: - - type: string - description: proposal id - name: proposalId - required: true - in: path - x-example: '2' - - description: '' - name: post_deposit_body - in: body - required: true - schema: - type: object - properties: - base_req: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in - conjunction with generate_only) - depositor: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - responses: - '200': - description: OK - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid proposal id or deposit body - '401': - description: Key password is wrong - '500': - description: Internal Server Error - '/gov/proposals/{proposalId}/deposits/{depositor}': - get: - deprecated: true - summary: Query deposit - description: Query deposit by proposalId and depositor address - produces: - - application/json - tags: - - Governance - parameters: - - type: string - description: proposal id - name: proposalId - required: true - in: path - x-example: '2' - - type: string - description: Bech32 depositor address - name: depositor - required: true - in: path - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - responses: - '200': - description: OK - schema: - type: object - properties: - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - proposal_id: - type: string - depositor: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - '400': - description: Invalid proposal id or depositor address - '404': - description: Found no deposit - '500': - description: Internal Server Error - '/gov/proposals/{proposalId}/votes': - get: - deprecated: true - summary: Query voters - description: Query voters information by proposalId - produces: - - application/json - tags: - - Governance - parameters: - - type: string - description: proposal id - name: proposalId - required: true - in: path - x-example: '2' - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - voter: - type: string - proposal_id: - type: string - option: - type: string - '400': - description: Invalid proposal id - '500': - description: Internal Server Error - post: - deprecated: true - summary: Vote a proposal - description: Send transaction to vote a proposal - consumes: - - application/json - produces: - - application/json - tags: - - Governance - parameters: - - type: string - description: proposal id - name: proposalId - required: true - in: path - x-example: '2' - - description: >- - valid value of `"option"` field can be `"yes"`, `"no"`, - `"no_with_veto"` and `"abstain"` - name: post_vote_body - in: body - required: true - schema: - type: object - properties: - base_req: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in - conjunction with generate_only) - voter: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - option: - type: string - example: 'yes' - responses: - '200': - description: OK - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid proposal id or vote body - '401': - description: Key password is wrong - '500': - description: Internal Server Error - '/gov/proposals/{proposalId}/votes/{voter}': - get: - deprecated: true - summary: Query vote - description: Query vote information by proposal Id and voter address - produces: - - application/json - tags: - - Governance - parameters: - - type: string - description: proposal id - name: proposalId - required: true - in: path - x-example: '2' - - type: string - description: Bech32 voter address - name: voter - required: true - in: path - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - responses: - '200': - description: OK - schema: - type: object - properties: - voter: - type: string - proposal_id: - type: string - option: - type: string - '400': - description: Invalid proposal id or voter address - '404': - description: Found no vote - '500': - description: Internal Server Error - '/gov/proposals/{proposalId}/tally': - get: - deprecated: true - summary: Get a proposal's tally result at the current time - description: >- - Gets a proposal's tally result at the current time. If the proposal is - pending deposits (i.e status 'DepositPeriod') it returns an empty tally - result. - produces: - - application/json - tags: - - Governance - parameters: - - type: string - description: proposal id - name: proposalId - required: true - in: path - x-example: '2' - responses: - '200': - description: OK - schema: - type: object - properties: - 'yes': - type: string - example: '0.0000000000' - abstain: - type: string - example: '0.0000000000' - 'no': - type: string - example: '0.0000000000' - no_with_veto: - type: string - example: '0.0000000000' - '400': - description: Invalid proposal id - '500': - description: Internal Server Error - /gov/parameters/deposit: - get: - deprecated: true - summary: Query governance deposit parameters - description: >- - Query governance deposit parameters. The max_deposit_period units are in - nanoseconds. - produces: - - application/json - tags: - - Governance - responses: - '200': - description: OK - schema: - type: object - properties: - min_deposit: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - max_deposit_period: - type: string - example: '86400000000000' - '400': - description: is not a valid query request path - '404': - description: Found no deposit parameters - '500': - description: Internal Server Error - /gov/parameters/tallying: - get: - deprecated: true - summary: Query governance tally parameters - description: Query governance tally parameters - produces: - - application/json - tags: - - Governance - responses: - '200': - description: OK - schema: - properties: - threshold: - type: string - example: '0.5000000000' - veto: - type: string - example: '0.3340000000' - governance_penalty: - type: string - example: '0.0100000000' - '400': - description: is not a valid query request path - '404': - description: Found no tally parameters - '500': - description: Internal Server Error - /gov/parameters/voting: - get: - deprecated: true - summary: Query governance voting parameters - description: >- - Query governance voting parameters. The voting_period units are in - nanoseconds. - produces: - - application/json - tags: - - Governance - responses: - '200': - description: OK - schema: - properties: - voting_period: - type: string - example: '86400000000000' - '400': - description: is not a valid query request path - '404': - description: Found no voting parameters - '500': - description: Internal Server Error - '/distribution/delegators/{delegatorAddr}/rewards': - parameters: - - in: path - name: delegatorAddr - description: Bech32 AccAddress of Delegator - required: true - type: string - x-example: cosmos167w96tdvmazakdwkw2u57227eduula2cy572lf - get: - deprecated: true - summary: Get the total rewards balance from all delegations - description: >- - Get the sum of all the rewards earned by delegations by a single - delegator - produces: - - application/json - tags: - - Distribution - responses: - '200': - description: OK - schema: - type: object - properties: - rewards: - type: array - items: - type: object - properties: - validator_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - reward: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - total: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - '400': - description: Invalid delegator address - '500': - description: Internal Server Error - post: - deprecated: true - summary: Withdraw all the delegator's delegation rewards - description: Withdraw all the delegator's delegation rewards - tags: - - Distribution - consumes: - - application/json - produces: - - application/json - parameters: - - in: body - name: Withdraw request body - schema: - properties: - base_req: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in - conjunction with generate_only) - responses: - '200': - description: OK - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid delegator address - '401': - description: Key password is wrong - '500': - description: Internal Server Error - '/distribution/delegators/{delegatorAddr}/rewards/{validatorAddr}': - parameters: - - in: path - name: delegatorAddr - description: Bech32 AccAddress of Delegator - required: true - type: string - x-example: cosmos16xyempempp92x9hyzz9wrgf94r6j9h5f06pxxv - - in: path - name: validatorAddr - description: Bech32 OperatorAddress of validator - required: true - type: string - x-example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - get: - deprecated: true - summary: Query a delegation reward - description: Query a single delegation reward by a delegator - tags: - - Distribution - produces: - - application/json - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - '400': - description: Invalid delegator address - '500': - description: Internal Server Error - post: - deprecated: true - summary: Withdraw a delegation reward - description: Withdraw a delegator's delegation reward from a single validator - tags: - - Distribution - consumes: - - application/json - produces: - - application/json - parameters: - - in: body - name: Withdraw request body - schema: - properties: - base_req: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in - conjunction with generate_only) - responses: - '200': - description: OK - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid delegator address or delegation body - '401': - description: Key password is wrong - '500': - description: Internal Server Error - '/distribution/delegators/{delegatorAddr}/withdraw_address': - parameters: - - in: path - name: delegatorAddr - description: Bech32 AccAddress of Delegator - required: true - type: string - x-example: cosmos167w96tdvmazakdwkw2u57227eduula2cy572lf - get: - deprecated: true - summary: Get the rewards withdrawal address - description: >- - Get the delegations' rewards withdrawal address. This is the address in - which the user will receive the reward funds - tags: - - Distribution - produces: - - application/json - responses: - '200': - description: OK - schema: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - '400': - description: Invalid delegator address - '500': - description: Internal Server Error - post: - deprecated: true - summary: Replace the rewards withdrawal address - description: Replace the delegations' rewards withdrawal address for a new one. - tags: - - Distribution - consumes: - - application/json - produces: - - application/json - parameters: - - in: body - name: Withdraw request body - schema: - properties: - base_req: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in - conjunction with generate_only) - withdraw_address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - responses: - '200': - description: OK - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid delegator or withdraw address - '401': - description: Key password is wrong - '500': - description: Internal Server Error - '/distribution/validators/{validatorAddr}': - parameters: - - in: path - name: validatorAddr - description: Bech32 OperatorAddress of validator - required: true - type: string - x-example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - get: - deprecated: true - summary: Validator distribution information - description: Query the distribution information of a single validator - tags: - - Distribution - produces: - - application/json - responses: - '200': - description: OK - schema: - type: object - properties: - operator_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - self_bond_rewards: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - val_commission: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - '400': - description: Invalid validator address - '500': - description: Internal Server Error - '/distribution/validators/{validatorAddr}/outstanding_rewards': - parameters: - - in: path - name: validatorAddr - description: Bech32 OperatorAddress of validator - required: true - type: string - x-example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - get: - deprecated: true - summary: Fee distribution outstanding rewards of a single validator - tags: - - Distribution - produces: - - application/json - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - '500': - description: Internal Server Error - '/distribution/validators/{validatorAddr}/rewards': - parameters: - - in: path - name: validatorAddr - description: Bech32 OperatorAddress of validator - required: true - type: string - x-example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - get: - deprecated: true - summary: Commission and self-delegation rewards of a single validator - description: Query the commission and self-delegation rewards of validator. - tags: - - Distribution - produces: - - application/json - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - '400': - description: Invalid validator address - '500': - description: Internal Server Error - post: - deprecated: true - summary: Withdraw the validator's rewards - description: Withdraw the validator's self-delegation and commissions rewards - tags: - - Distribution - consumes: - - application/json - produces: - - application/json - parameters: - - in: body - name: Withdraw request body - schema: - properties: - base_req: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in - conjunction with generate_only) - responses: - '200': - description: OK - schema: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - '400': - description: Invalid validator address - '401': - description: Key password is wrong - '500': - description: Internal Server Error - /distribution/community_pool: - get: - deprecated: true - summary: Community pool parameters - tags: - - Distribution - produces: - - application/json - responses: - '200': - description: OK - schema: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - '500': - description: Internal Server Error - /distribution/parameters: - get: - deprecated: true - summary: Fee distribution parameters - tags: - - Distribution - produces: - - application/json - responses: - '200': - description: OK - schema: - properties: - base_proposer_reward: - type: string - bonus_proposer_reward: - type: string - community_tax: - type: string - '500': - description: Internal Server Error - /minting/parameters: - get: - deprecated: true - summary: Minting module parameters - tags: - - Mint - produces: - - application/json - responses: - '200': - description: OK - schema: - properties: - mint_denom: - type: string - inflation_rate_change: - type: string - inflation_max: - type: string - inflation_min: - type: string - goal_bonded: - type: string - blocks_per_year: - type: string - '500': - description: Internal Server Error - /minting/inflation: - get: - deprecated: true - summary: Current minting inflation value - tags: - - Mint - produces: - - application/json - responses: - '200': - description: OK - schema: - type: string - '500': - description: Internal Server Error - /minting/annual-provisions: - get: - deprecated: true - summary: Current minting annual provisions value - tags: - - Mint - produces: - - application/json - responses: - '200': - description: OK - schema: - type: string - '500': - description: Internal Server Error - /cosmos/auth/v1beta1/accounts: - get: - summary: Accounts returns all the existing accounts - operationId: Accounts - responses: - '200': - description: A successful response. - schema: - type: object - properties: - accounts: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: accounts are the existing accounts - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryAccountsResponse is the response type for the Query/Accounts - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/auth/v1beta1/accounts/{address}': - get: - summary: Account returns account details based on address. - operationId: Account - responses: - '200': - description: A successful response. - schema: - type: object - properties: - account: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - description: >- - QueryAccountResponse is the response type for the Query/Account - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: address - description: address defines the address to query for. - in: path - required: true - type: string - tags: - - Query - /cosmos/auth/v1beta1/params: - get: - summary: Params queries all parameters. - operationId: AuthParams - responses: - '200': - description: A successful response. - schema: - type: object - properties: - params: - description: params defines the parameters of the module. - type: object - properties: - max_memo_characters: - type: string - format: uint64 - tx_sig_limit: - type: string - format: uint64 - tx_size_cost_per_byte: - type: string - format: uint64 - sig_verify_cost_ed25519: - type: string - format: uint64 - sig_verify_cost_secp256k1: - type: string - format: uint64 - description: >- - QueryParamsResponse is the response type for the Query/Params RPC - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - tags: - - Query - '/cosmos/bank/v1beta1/balances/{address}': - get: - summary: AllBalances queries the balance of all coins for a single account. - operationId: AllBalances - responses: - '200': - description: A successful response. - schema: - type: object - properties: - balances: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - description: balances is the balances of all the coins. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryAllBalancesResponse is the response type for the - Query/AllBalances RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: address - description: address is the address to query balances for. - in: path - required: true - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/bank/v1beta1/balances/{address}/{denom}': - get: - summary: Balance queries the balance of a single coin for a single account. - operationId: Balance - responses: - '200': - description: A successful response. - schema: - type: object - properties: - balance: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - description: >- - QueryBalanceResponse is the response type for the Query/Balance - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: address - description: address is the address to query balances for. - in: path - required: true - type: string - - name: denom - description: denom is the coin denom to query balances for. - in: path - required: true - type: string - tags: - - Query - '/cosmos/bank/v1beta1/denom_owners/{denom}': - get: - summary: >- - DenomOwners queries for all account addresses that own a particular - token - - denomination. - operationId: DenomOwners - responses: - '200': - description: A successful response. - schema: - type: object - properties: - denom_owners: - type: array - items: - type: object - properties: - address: - type: string - description: >- - address defines the address that owns a particular - denomination. - balance: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the - custom method - - signatures required by gogoproto. - description: >- - DenomOwner defines structure representing an account that - owns or holds a - - particular denominated token. It contains the account - address and account - - balance of the denominated token. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryDenomOwnersResponse defines the RPC response of a DenomOwners - RPC query. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: denom - description: >- - denom defines the coin denomination to query all account holders - for. - in: path - required: true - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - /cosmos/bank/v1beta1/denoms_metadata: - get: - summary: |- - DenomsMetadata queries the client metadata for all registered coin - denominations. - operationId: DenomsMetadata - responses: - '200': - description: A successful response. - schema: - type: object - properties: - metadatas: - type: array - items: - type: object - properties: - description: - type: string - denom_units: - type: array - items: - type: object - properties: - denom: - type: string - description: >- - denom represents the string name of the given - denom unit (e.g uatom). - exponent: - type: integer - format: int64 - description: >- - exponent represents power of 10 exponent that one - must - - raise the base_denom to in order to equal the - given DenomUnit's denom - - 1 denom = 1^exponent base_denom - - (e.g. with a base_denom of uatom, one can create a - DenomUnit of 'atom' with - - exponent = 6, thus: 1 atom = 10^6 uatom). - aliases: - type: array - items: - type: string - title: >- - aliases is a list of string aliases for the given - denom - description: |- - DenomUnit represents a struct that describes a given - denomination unit of the basic token. - title: >- - denom_units represents the list of DenomUnit's for a - given coin - base: - type: string - description: >- - base represents the base denom (should be the DenomUnit - with exponent = 0). - display: - type: string - description: |- - display indicates the suggested denom that should be - displayed in clients. - name: - type: string - title: 'name defines the name of the token (eg: Cosmos Atom)' - symbol: - type: string - description: >- - symbol is the token symbol usually shown on exchanges - (eg: ATOM). This can - - be the same as the display. - uri: - type: string - description: >- - URI to a document (on or off-chain) that contains - additional information. Optional. - uri_hash: - type: string - description: >- - URIHash is a sha256 hash of a document pointed by URI. - It's used to verify that - - the document didn't change. Optional. - description: |- - Metadata represents a struct that describes - a basic token. - description: >- - metadata provides the client information for all the - registered tokens. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryDenomsMetadataResponse is the response type for the - Query/DenomsMetadata RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/bank/v1beta1/denoms_metadata/{denom}': - get: - summary: DenomsMetadata queries the client metadata of a given coin denomination. - operationId: DenomMetadata - responses: - '200': - description: A successful response. - schema: - type: object - properties: - metadata: - type: object - properties: - description: - type: string - denom_units: - type: array - items: - type: object - properties: - denom: - type: string - description: >- - denom represents the string name of the given denom - unit (e.g uatom). - exponent: - type: integer - format: int64 - description: >- - exponent represents power of 10 exponent that one - must - - raise the base_denom to in order to equal the given - DenomUnit's denom - - 1 denom = 1^exponent base_denom - - (e.g. with a base_denom of uatom, one can create a - DenomUnit of 'atom' with - - exponent = 6, thus: 1 atom = 10^6 uatom). - aliases: - type: array - items: - type: string - title: >- - aliases is a list of string aliases for the given - denom - description: |- - DenomUnit represents a struct that describes a given - denomination unit of the basic token. - title: >- - denom_units represents the list of DenomUnit's for a given - coin - base: - type: string - description: >- - base represents the base denom (should be the DenomUnit - with exponent = 0). - display: - type: string - description: |- - display indicates the suggested denom that should be - displayed in clients. - name: - type: string - title: 'name defines the name of the token (eg: Cosmos Atom)' - symbol: - type: string - description: >- - symbol is the token symbol usually shown on exchanges (eg: - ATOM). This can - - be the same as the display. - uri: - type: string - description: >- - URI to a document (on or off-chain) that contains - additional information. Optional. - uri_hash: - type: string - description: >- - URIHash is a sha256 hash of a document pointed by URI. - It's used to verify that - - the document didn't change. Optional. - description: |- - Metadata represents a struct that describes - a basic token. - description: >- - QueryDenomMetadataResponse is the response type for the - Query/DenomMetadata RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: denom - description: denom is the coin denom to query the metadata for. - in: path - required: true - type: string - tags: - - Query - /cosmos/bank/v1beta1/params: - get: - summary: Params queries the parameters of x/bank module. - operationId: BankParams - responses: - '200': - description: A successful response. - schema: - type: object - properties: - params: - type: object - properties: - send_enabled: - type: array - items: - type: object - properties: - denom: - type: string - enabled: - type: boolean - format: boolean - description: >- - SendEnabled maps coin denom to a send_enabled status - (whether a denom is - - sendable). - default_send_enabled: - type: boolean - format: boolean - description: Params defines the parameters for the bank module. - description: >- - QueryParamsResponse defines the response type for querying x/bank - parameters. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - tags: - - Query - /cosmos/bank/v1beta1/supply: - get: - summary: TotalSupply queries the total supply of all coins. - operationId: TotalSupply - responses: - '200': - description: A successful response. - schema: - type: object - properties: - supply: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - title: supply is the supply of the coins - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - title: >- - QueryTotalSupplyResponse is the response type for the - Query/TotalSupply RPC - - method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/bank/v1beta1/supply/{denom}': - get: - summary: SupplyOf queries the supply of a single coin. - operationId: SupplyOf - responses: - '200': - description: A successful response. - schema: - type: object - properties: - amount: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - description: >- - QuerySupplyOfResponse is the response type for the Query/SupplyOf - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: denom - description: denom is the coin denom to query balances for. - in: path - required: true - type: string - tags: - - Query - /cosmos/base/tendermint/v1beta1/blocks/latest: - get: - summary: GetLatestBlock returns the latest block. - operationId: GetLatestBlock - responses: - '200': - description: A successful response. - schema: - type: object - properties: - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - block: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing - a block in the blockchain, - - including all blockchain data structures and the rules - of the application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - data: - type: object - properties: - txs: - type: array - items: - type: string - format: byte - description: >- - Txs that will be applied by state @ block.Height+1. - - NOTE: not all txs here are valid. We're just agreeing - on the order first. - - This means that block.AppHash does not include these - txs. - title: >- - Data contains the set of transactions included in the - block - evidence: - type: object - properties: - evidence: - type: array - items: - type: object - properties: - duplicate_vote_evidence: - type: object - properties: - vote_a: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: >- - SignedMsgType is a type of signed - message in the consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or - commit vote from validators for - - consensus. - vote_b: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: >- - SignedMsgType is a type of signed - message in the consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or - commit vote from validators for - - consensus. - total_voting_power: - type: string - format: int64 - validator_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - DuplicateVoteEvidence contains evidence of a - validator signed two conflicting votes. - light_client_attack_evidence: - type: object - properties: - conflicting_block: - type: object - properties: - signed_header: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules - for processing a block in the - blockchain, - - including all blockchain data structures - and the rules of the application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: >- - hashes from the app output from the prev - block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: >- - Header defines the structure of a - Tendermint block header. - commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: >- - BlockIdFlag indicates which BlcokID the - signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: >- - CommitSig is a part of the Vote included - in a Commit. - description: >- - Commit contains the evidence that a - block was committed by a set of - validators. - validator_set: - type: object - properties: - validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for - use with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - proposer: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for - use with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - common_height: - type: string - format: int64 - byzantine_validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for - use with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - LightClientAttackEvidence contains evidence of a - set of validators attempting to mislead a light - client. - last_commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: >- - BlockIdFlag indicates which BlcokID the - signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: >- - CommitSig is a part of the Vote included in a - Commit. - description: >- - Commit contains the evidence that a block was committed by - a set of validators. - description: >- - GetLatestBlockResponse is the response type for the - Query/GetLatestBlock RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - tags: - - Service - '/cosmos/base/tendermint/v1beta1/blocks/{height}': - get: - summary: GetBlockByHeight queries block for given height. - operationId: GetBlockByHeight - responses: - '200': - description: A successful response. - schema: - type: object - properties: - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - block: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing - a block in the blockchain, - - including all blockchain data structures and the rules - of the application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - data: - type: object - properties: - txs: - type: array - items: - type: string - format: byte - description: >- - Txs that will be applied by state @ block.Height+1. - - NOTE: not all txs here are valid. We're just agreeing - on the order first. - - This means that block.AppHash does not include these - txs. - title: >- - Data contains the set of transactions included in the - block - evidence: - type: object - properties: - evidence: - type: array - items: - type: object - properties: - duplicate_vote_evidence: - type: object - properties: - vote_a: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: >- - SignedMsgType is a type of signed - message in the consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or - commit vote from validators for - - consensus. - vote_b: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: >- - SignedMsgType is a type of signed - message in the consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or - commit vote from validators for - - consensus. - total_voting_power: - type: string - format: int64 - validator_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - DuplicateVoteEvidence contains evidence of a - validator signed two conflicting votes. - light_client_attack_evidence: - type: object - properties: - conflicting_block: - type: object - properties: - signed_header: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules - for processing a block in the - blockchain, - - including all blockchain data structures - and the rules of the application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: >- - hashes from the app output from the prev - block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: >- - Header defines the structure of a - Tendermint block header. - commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: >- - BlockIdFlag indicates which BlcokID the - signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: >- - CommitSig is a part of the Vote included - in a Commit. - description: >- - Commit contains the evidence that a - block was committed by a set of - validators. - validator_set: - type: object - properties: - validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for - use with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - proposer: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for - use with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - common_height: - type: string - format: int64 - byzantine_validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for - use with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - LightClientAttackEvidence contains evidence of a - set of validators attempting to mislead a light - client. - last_commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: >- - BlockIdFlag indicates which BlcokID the - signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: >- - CommitSig is a part of the Vote included in a - Commit. - description: >- - Commit contains the evidence that a block was committed by - a set of validators. - description: >- - GetBlockByHeightResponse is the response type for the - Query/GetBlockByHeight RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: height - in: path - required: true - type: string - format: int64 - tags: - - Service - /cosmos/base/tendermint/v1beta1/node_info: - get: - summary: GetNodeInfo queries the current node info. - operationId: GetNodeInfo - responses: - '200': - description: A successful response. - schema: - type: object - properties: - default_node_info: - type: object - properties: - protocol_version: - type: object - properties: - p2p: - type: string - format: uint64 - block: - type: string - format: uint64 - app: - type: string - format: uint64 - default_node_id: - type: string - listen_addr: - type: string - network: - type: string - version: - type: string - channels: - type: string - format: byte - moniker: - type: string - other: - type: object - properties: - tx_index: - type: string - rpc_address: - type: string - application_version: - type: object - properties: - name: - type: string - app_name: - type: string - version: - type: string - git_commit: - type: string - build_tags: - type: string - go_version: - type: string - build_deps: - type: array - items: - type: object - properties: - path: - type: string - title: module path - version: - type: string - title: module version - sum: - type: string - title: checksum - title: Module is the type for VersionInfo - cosmos_sdk_version: - type: string - description: VersionInfo is the type for the GetNodeInfoResponse message. - description: >- - GetNodeInfoResponse is the request type for the Query/GetNodeInfo - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - tags: - - Service - /cosmos/base/tendermint/v1beta1/syncing: - get: - summary: GetSyncing queries node syncing. - operationId: GetSyncing - responses: - '200': - description: A successful response. - schema: - type: object - properties: - syncing: - type: boolean - format: boolean - description: >- - GetSyncingResponse is the response type for the Query/GetSyncing - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - tags: - - Service - /cosmos/base/tendermint/v1beta1/validatorsets/latest: - get: - summary: GetLatestValidatorSet queries latest validator-set. - operationId: GetLatestValidatorSet - responses: - '200': - description: A successful response. - schema: - type: object - properties: - block_height: - type: string - format: int64 - validators: - type: array - items: - type: object - properties: - address: - type: string - pub_key: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the - type of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's - path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the - binary all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available - in the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the - regular - - representation of the deserialized, embedded message, - with an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message - [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - description: Validator is the type for the validator-set. - pagination: - description: pagination defines an pagination for the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - GetLatestValidatorSetResponse is the response type for the - Query/GetValidatorSetByHeight RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Service - '/cosmos/base/tendermint/v1beta1/validatorsets/{height}': - get: - summary: GetValidatorSetByHeight queries validator-set at a given height. - operationId: GetValidatorSetByHeight - responses: - '200': - description: A successful response. - schema: - type: object - properties: - block_height: - type: string - format: int64 - validators: - type: array - items: - type: object - properties: - address: - type: string - pub_key: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the - type of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's - path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the - binary all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available - in the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the - regular - - representation of the deserialized, embedded message, - with an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message - [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - description: Validator is the type for the validator-set. - pagination: - description: pagination defines an pagination for the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - GetValidatorSetByHeightResponse is the response type for the - Query/GetValidatorSetByHeight RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: height - in: path - required: true - type: string - format: int64 - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Service - /cosmos/distribution/v1beta1/community_pool: - get: - summary: CommunityPool queries the community pool coins. - operationId: CommunityPool - responses: - '200': - description: A successful response. - schema: - type: object - properties: - pool: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - DecCoin defines a token with a denomination and a decimal - amount. - - - NOTE: The amount field is an Dec which implements the custom - method - - signatures required by gogoproto. - description: pool defines community pool's coins. - description: >- - QueryCommunityPoolResponse is the response type for the - Query/CommunityPool - - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - tags: - - Query - '/cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards': - get: - summary: |- - DelegationTotalRewards queries the total rewards accrued by a each - validator. - operationId: DelegationTotalRewards - responses: - '200': - description: A successful response. - schema: - type: object - properties: - rewards: - type: array - items: - type: object - properties: - validator_address: - type: string - reward: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - DecCoin defines a token with a denomination and a - decimal amount. - - - NOTE: The amount field is an Dec which implements the - custom method - - signatures required by gogoproto. - description: |- - DelegationDelegatorReward represents the properties - of a delegator's delegation reward. - description: rewards defines all the rewards accrued by a delegator. - total: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - DecCoin defines a token with a denomination and a decimal - amount. - - - NOTE: The amount field is an Dec which implements the custom - method - - signatures required by gogoproto. - description: total defines the sum of all the rewards. - description: |- - QueryDelegationTotalRewardsResponse is the response type for the - Query/DelegationTotalRewards RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: delegator_address - description: delegator_address defines the delegator address to query for. - in: path - required: true - type: string - tags: - - Query - '/cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards/{validator_address}': - get: - summary: DelegationRewards queries the total rewards accrued by a delegation. - operationId: DelegationRewards - responses: - '200': - description: A successful response. - schema: - type: object - properties: - rewards: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - DecCoin defines a token with a denomination and a decimal - amount. - - - NOTE: The amount field is an Dec which implements the custom - method - - signatures required by gogoproto. - description: rewards defines the rewards accrued by a delegation. - description: |- - QueryDelegationRewardsResponse is the response type for the - Query/DelegationRewards RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: delegator_address - description: delegator_address defines the delegator address to query for. - in: path - required: true - type: string - - name: validator_address - description: validator_address defines the validator address to query for. - in: path - required: true - type: string - tags: - - Query - '/cosmos/distribution/v1beta1/delegators/{delegator_address}/validators': - get: - summary: DelegatorValidators queries the validators of a delegator. - operationId: DelegatorValidators - responses: - '200': - description: A successful response. - schema: - type: object - properties: - validators: - type: array - items: - type: string - description: >- - validators defines the validators a delegator is delegating - for. - description: |- - QueryDelegatorValidatorsResponse is the response type for the - Query/DelegatorValidators RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: delegator_address - description: delegator_address defines the delegator address to query for. - in: path - required: true - type: string - tags: - - Query - '/cosmos/distribution/v1beta1/delegators/{delegator_address}/withdraw_address': - get: - summary: DelegatorWithdrawAddress queries withdraw address of a delegator. - operationId: DelegatorWithdrawAddress - responses: - '200': - description: A successful response. - schema: - type: object - properties: - withdraw_address: - type: string - description: withdraw_address defines the delegator address to query for. - description: |- - QueryDelegatorWithdrawAddressResponse is the response type for the - Query/DelegatorWithdrawAddress RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: delegator_address - description: delegator_address defines the delegator address to query for. - in: path - required: true - type: string - tags: - - Query - /cosmos/distribution/v1beta1/params: - get: - summary: Params queries params of the distribution module. - operationId: DistributionParams - responses: - '200': - description: A successful response. - schema: - type: object - properties: - params: - description: params defines the parameters of the module. - type: object - properties: - community_tax: - type: string - base_proposer_reward: - type: string - bonus_proposer_reward: - type: string - withdraw_addr_enabled: - type: boolean - format: boolean - description: >- - QueryParamsResponse is the response type for the Query/Params RPC - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - tags: - - Query - '/cosmos/distribution/v1beta1/validators/{validator_address}/commission': - get: - summary: ValidatorCommission queries accumulated commission for a validator. - operationId: ValidatorCommission - responses: - '200': - description: A successful response. - schema: - type: object - properties: - commission: - description: commission defines the commision the validator received. - type: object - properties: - commission: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - DecCoin defines a token with a denomination and a - decimal amount. - - - NOTE: The amount field is an Dec which implements the - custom method - - signatures required by gogoproto. - title: |- - QueryValidatorCommissionResponse is the response type for the - Query/ValidatorCommission RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: validator_address - description: validator_address defines the validator address to query for. - in: path - required: true - type: string - tags: - - Query - '/cosmos/distribution/v1beta1/validators/{validator_address}/outstanding_rewards': - get: - summary: ValidatorOutstandingRewards queries rewards of a validator address. - operationId: ValidatorOutstandingRewards - responses: - '200': - description: A successful response. - schema: - type: object - properties: - rewards: - type: object - properties: - rewards: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - DecCoin defines a token with a denomination and a - decimal amount. - - - NOTE: The amount field is an Dec which implements the - custom method - - signatures required by gogoproto. - description: >- - ValidatorOutstandingRewards represents outstanding - (un-withdrawn) rewards - - for a validator inexpensive to track, allows simple sanity - checks. - description: >- - QueryValidatorOutstandingRewardsResponse is the response type for - the - - Query/ValidatorOutstandingRewards RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: validator_address - description: validator_address defines the validator address to query for. - in: path - required: true - type: string - tags: - - Query - '/cosmos/distribution/v1beta1/validators/{validator_address}/slashes': - get: - summary: ValidatorSlashes queries slash events of a validator. - operationId: ValidatorSlashes - responses: - '200': - description: A successful response. - schema: - type: object - properties: - slashes: - type: array - items: - type: object - properties: - validator_period: - type: string - format: uint64 - fraction: - type: string - description: >- - ValidatorSlashEvent represents a validator slash event. - - Height is implicit within the store key. - - This is needed to calculate appropriate amount of staking - tokens - - for delegations which are withdrawn after a slash has - occurred. - description: slashes defines the slashes the validator received. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - QueryValidatorSlashesResponse is the response type for the - Query/ValidatorSlashes RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: validator_address - description: validator_address defines the validator address to query for. - in: path - required: true - type: string - - name: starting_height - description: >- - starting_height defines the optional starting height to query the - slashes. - in: query - required: false - type: string - format: uint64 - - name: ending_height - description: >- - starting_height defines the optional ending height to query the - slashes. - in: query - required: false - type: string - format: uint64 - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - /cosmos/evidence/v1beta1/evidence: - get: - summary: AllEvidence queries all evidence. - operationId: AllEvidence - responses: - '200': - description: A successful response. - schema: - type: object - properties: - evidence: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - description: evidence returns all evidences. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryAllEvidenceResponse is the response type for the - Query/AllEvidence RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/evidence/v1beta1/evidence/{evidence_hash}': - get: - summary: Evidence queries evidence based on evidence hash. - operationId: Evidence - responses: - '200': - description: A successful response. - schema: - type: object - properties: - evidence: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - description: >- - QueryEvidenceResponse is the response type for the Query/Evidence - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: evidence_hash - description: evidence_hash defines the hash of the requested evidence. - in: path - required: true - type: string - format: byte - tags: - - Query - '/cosmos/gov/v1beta1/params/{params_type}': - get: - summary: Params queries all parameters of the gov module. - operationId: GovParams - responses: - '200': - description: A successful response. - schema: - type: object - properties: - voting_params: - description: voting_params defines the parameters related to voting. - type: object - properties: - voting_period: - type: string - description: Length of the voting period. - deposit_params: - description: deposit_params defines the parameters related to deposit. - type: object - properties: - min_deposit: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the - custom method - - signatures required by gogoproto. - description: Minimum deposit for a proposal to enter voting period. - max_deposit_period: - type: string - description: >- - Maximum period for Atom holders to deposit on a proposal. - Initial value: 2 - months. - tally_params: - description: tally_params defines the parameters related to tally. - type: object - properties: - quorum: - type: string - format: byte - description: >- - Minimum percentage of total stake needed to vote for a - result to be - considered valid. - threshold: - type: string - format: byte - description: >- - Minimum proportion of Yes votes for proposal to pass. - Default value: 0.5. - veto_threshold: - type: string - format: byte - description: >- - Minimum value of Veto votes to Total votes ratio for - proposal to be - vetoed. Default value: 1/3. - description: >- - QueryParamsResponse is the response type for the Query/Params RPC - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: params_type - description: >- - params_type defines which parameters to query for, can be one of - "voting", - - "tallying" or "deposit". - in: path - required: true - type: string - tags: - - Query - /cosmos/gov/v1beta1/proposals: - get: - summary: Proposals queries all proposals based on given status. - operationId: Proposals - responses: - '200': - description: A successful response. - schema: - type: object - properties: - proposals: - type: array - items: - type: object - properties: - proposal_id: - type: string - format: uint64 - content: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the - type of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's - path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the - binary all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available - in the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the - regular - - representation of the deserialized, embedded message, - with an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message - [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - status: - type: string - enum: - - PROPOSAL_STATUS_UNSPECIFIED - - PROPOSAL_STATUS_DEPOSIT_PERIOD - - PROPOSAL_STATUS_VOTING_PERIOD - - PROPOSAL_STATUS_PASSED - - PROPOSAL_STATUS_REJECTED - - PROPOSAL_STATUS_FAILED - default: PROPOSAL_STATUS_UNSPECIFIED - description: >- - ProposalStatus enumerates the valid statuses of a - proposal. - - - PROPOSAL_STATUS_UNSPECIFIED: PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. - - PROPOSAL_STATUS_DEPOSIT_PERIOD: PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - period. - - PROPOSAL_STATUS_VOTING_PERIOD: PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - period. - - PROPOSAL_STATUS_PASSED: PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - passed. - - PROPOSAL_STATUS_REJECTED: PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - been rejected. - - PROPOSAL_STATUS_FAILED: PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - failed. - final_tally_result: - type: object - properties: - 'yes': - type: string - abstain: - type: string - 'no': - type: string - no_with_veto: - type: string - description: >- - TallyResult defines a standard tally for a governance - proposal. - submit_time: - type: string - format: date-time - deposit_end_time: - type: string - format: date-time - total_deposit: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an - amount. - - - NOTE: The amount field is an Int which implements the - custom method - - signatures required by gogoproto. - voting_start_time: - type: string - format: date-time - voting_end_time: - type: string - format: date-time - description: >- - Proposal defines the core field members of a governance - proposal. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryProposalsResponse is the response type for the - Query/Proposals RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: proposal_status - description: |- - proposal_status defines the status of the proposals. - - - PROPOSAL_STATUS_UNSPECIFIED: PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. - - PROPOSAL_STATUS_DEPOSIT_PERIOD: PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - period. - - PROPOSAL_STATUS_VOTING_PERIOD: PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - period. - - PROPOSAL_STATUS_PASSED: PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - passed. - - PROPOSAL_STATUS_REJECTED: PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - been rejected. - - PROPOSAL_STATUS_FAILED: PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - failed. - in: query - required: false - type: string - enum: - - PROPOSAL_STATUS_UNSPECIFIED - - PROPOSAL_STATUS_DEPOSIT_PERIOD - - PROPOSAL_STATUS_VOTING_PERIOD - - PROPOSAL_STATUS_PASSED - - PROPOSAL_STATUS_REJECTED - - PROPOSAL_STATUS_FAILED - default: PROPOSAL_STATUS_UNSPECIFIED - - name: voter - description: voter defines the voter address for the proposals. - in: query - required: false - type: string - - name: depositor - description: depositor defines the deposit addresses from the proposals. - in: query - required: false - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/gov/v1beta1/proposals/{proposal_id}': - get: - summary: Proposal queries proposal details based on ProposalID. - operationId: Proposal - responses: - '200': - description: A successful response. - schema: - type: object - properties: - proposal: - type: object - properties: - proposal_id: - type: string - format: uint64 - content: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type - of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - status: - type: string - enum: - - PROPOSAL_STATUS_UNSPECIFIED - - PROPOSAL_STATUS_DEPOSIT_PERIOD - - PROPOSAL_STATUS_VOTING_PERIOD - - PROPOSAL_STATUS_PASSED - - PROPOSAL_STATUS_REJECTED - - PROPOSAL_STATUS_FAILED - default: PROPOSAL_STATUS_UNSPECIFIED - description: >- - ProposalStatus enumerates the valid statuses of a - proposal. - - - PROPOSAL_STATUS_UNSPECIFIED: PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. - - PROPOSAL_STATUS_DEPOSIT_PERIOD: PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - period. - - PROPOSAL_STATUS_VOTING_PERIOD: PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - period. - - PROPOSAL_STATUS_PASSED: PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - passed. - - PROPOSAL_STATUS_REJECTED: PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - been rejected. - - PROPOSAL_STATUS_FAILED: PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - failed. - final_tally_result: - type: object - properties: - 'yes': - type: string - abstain: - type: string - 'no': - type: string - no_with_veto: - type: string - description: >- - TallyResult defines a standard tally for a governance - proposal. - submit_time: - type: string - format: date-time - deposit_end_time: - type: string - format: date-time - total_deposit: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the - custom method - - signatures required by gogoproto. - voting_start_time: - type: string - format: date-time - voting_end_time: - type: string - format: date-time - description: >- - Proposal defines the core field members of a governance - proposal. - description: >- - QueryProposalResponse is the response type for the Query/Proposal - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: proposal_id - description: proposal_id defines the unique id of the proposal. - in: path - required: true - type: string - format: uint64 - tags: - - Query - '/cosmos/gov/v1beta1/proposals/{proposal_id}/deposits': - get: - summary: Deposits queries all deposits of a single proposal. - operationId: Deposits - responses: - '200': - description: A successful response. - schema: - type: object - properties: - deposits: - type: array - items: - type: object - properties: - proposal_id: - type: string - format: uint64 - depositor: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an - amount. - - - NOTE: The amount field is an Int which implements the - custom method - - signatures required by gogoproto. - description: >- - Deposit defines an amount deposited by an account address to - an active - - proposal. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryDepositsResponse is the response type for the Query/Deposits - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: proposal_id - description: proposal_id defines the unique id of the proposal. - in: path - required: true - type: string - format: uint64 - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/gov/v1beta1/proposals/{proposal_id}/deposits/{depositor}': - get: - summary: >- - Deposit queries single deposit information based proposalID, - depositAddr. - operationId: Deposit - responses: - '200': - description: A successful response. - schema: - type: object - properties: - deposit: - type: object - properties: - proposal_id: - type: string - format: uint64 - depositor: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the - custom method - - signatures required by gogoproto. - description: >- - Deposit defines an amount deposited by an account address to - an active - - proposal. - description: >- - QueryDepositResponse is the response type for the Query/Deposit - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: proposal_id - description: proposal_id defines the unique id of the proposal. - in: path - required: true - type: string - format: uint64 - - name: depositor - description: depositor defines the deposit addresses from the proposals. - in: path - required: true - type: string - tags: - - Query - '/cosmos/gov/v1beta1/proposals/{proposal_id}/tally': - get: - summary: TallyResult queries the tally of a proposal vote. - operationId: TallyResult - responses: - '200': - description: A successful response. - schema: - type: object - properties: - tally: - type: object - properties: - 'yes': - type: string - abstain: - type: string - 'no': - type: string - no_with_veto: - type: string - description: >- - TallyResult defines a standard tally for a governance - proposal. - description: >- - QueryTallyResultResponse is the response type for the Query/Tally - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: proposal_id - description: proposal_id defines the unique id of the proposal. - in: path - required: true - type: string - format: uint64 - tags: - - Query - '/cosmos/gov/v1beta1/proposals/{proposal_id}/votes': - get: - summary: Votes queries votes of a given proposal. - operationId: Votes - responses: - '200': - description: A successful response. - schema: - type: object - properties: - votes: - type: array - items: - type: object - properties: - proposal_id: - type: string - format: uint64 - voter: - type: string - option: - description: >- - Deprecated: Prefer to use `options` instead. This field - is set in queries - - if and only if `len(options) == 1` and that option has - weight 1. In all - - other cases, this field will default to - VOTE_OPTION_UNSPECIFIED. - type: string - enum: - - VOTE_OPTION_UNSPECIFIED - - VOTE_OPTION_YES - - VOTE_OPTION_ABSTAIN - - VOTE_OPTION_NO - - VOTE_OPTION_NO_WITH_VETO - default: VOTE_OPTION_UNSPECIFIED - options: - type: array - items: - type: object - properties: - option: - type: string - enum: - - VOTE_OPTION_UNSPECIFIED - - VOTE_OPTION_YES - - VOTE_OPTION_ABSTAIN - - VOTE_OPTION_NO - - VOTE_OPTION_NO_WITH_VETO - default: VOTE_OPTION_UNSPECIFIED - description: >- - VoteOption enumerates the valid vote options for a - given governance proposal. - - - VOTE_OPTION_UNSPECIFIED: VOTE_OPTION_UNSPECIFIED defines a no-op vote option. - - VOTE_OPTION_YES: VOTE_OPTION_YES defines a yes vote option. - - VOTE_OPTION_ABSTAIN: VOTE_OPTION_ABSTAIN defines an abstain vote option. - - VOTE_OPTION_NO: VOTE_OPTION_NO defines a no vote option. - - VOTE_OPTION_NO_WITH_VETO: VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. - weight: - type: string - description: >- - WeightedVoteOption defines a unit of vote for vote - split. - description: >- - Vote defines a vote on a governance proposal. - - A Vote consists of a proposal ID, the voter, and the vote - option. - description: votes defined the queried votes. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryVotesResponse is the response type for the Query/Votes RPC - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: proposal_id - description: proposal_id defines the unique id of the proposal. - in: path - required: true - type: string - format: uint64 - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/gov/v1beta1/proposals/{proposal_id}/votes/{voter}': - get: - summary: 'Vote queries voted information based on proposalID, voterAddr.' - operationId: Vote - responses: - '200': - description: A successful response. - schema: - type: object - properties: - vote: - type: object - properties: - proposal_id: - type: string - format: uint64 - voter: - type: string - option: - description: >- - Deprecated: Prefer to use `options` instead. This field is - set in queries - - if and only if `len(options) == 1` and that option has - weight 1. In all - - other cases, this field will default to - VOTE_OPTION_UNSPECIFIED. - type: string - enum: - - VOTE_OPTION_UNSPECIFIED - - VOTE_OPTION_YES - - VOTE_OPTION_ABSTAIN - - VOTE_OPTION_NO - - VOTE_OPTION_NO_WITH_VETO - default: VOTE_OPTION_UNSPECIFIED - options: - type: array - items: - type: object - properties: - option: - type: string - enum: - - VOTE_OPTION_UNSPECIFIED - - VOTE_OPTION_YES - - VOTE_OPTION_ABSTAIN - - VOTE_OPTION_NO - - VOTE_OPTION_NO_WITH_VETO - default: VOTE_OPTION_UNSPECIFIED - description: >- - VoteOption enumerates the valid vote options for a - given governance proposal. - - - VOTE_OPTION_UNSPECIFIED: VOTE_OPTION_UNSPECIFIED defines a no-op vote option. - - VOTE_OPTION_YES: VOTE_OPTION_YES defines a yes vote option. - - VOTE_OPTION_ABSTAIN: VOTE_OPTION_ABSTAIN defines an abstain vote option. - - VOTE_OPTION_NO: VOTE_OPTION_NO defines a no vote option. - - VOTE_OPTION_NO_WITH_VETO: VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. - weight: - type: string - description: >- - WeightedVoteOption defines a unit of vote for vote - split. - description: >- - Vote defines a vote on a governance proposal. - - A Vote consists of a proposal ID, the voter, and the vote - option. - description: >- - QueryVoteResponse is the response type for the Query/Vote RPC - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: proposal_id - description: proposal_id defines the unique id of the proposal. - in: path - required: true - type: string - format: uint64 - - name: voter - description: voter defines the oter address for the proposals. - in: path - required: true - type: string - tags: - - Query - /cosmos/mint/v1beta1/annual_provisions: - get: - summary: AnnualProvisions current minting annual provisions value. - operationId: AnnualProvisions - responses: - '200': - description: A successful response. - schema: - type: object - properties: - annual_provisions: - type: string - format: byte - description: >- - annual_provisions is the current minting annual provisions - value. - description: |- - QueryAnnualProvisionsResponse is the response type for the - Query/AnnualProvisions RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - tags: - - Query - /cosmos/mint/v1beta1/inflation: - get: - summary: Inflation returns the current minting inflation value. - operationId: Inflation - responses: - '200': - description: A successful response. - schema: - type: object - properties: - inflation: - type: string - format: byte - description: inflation is the current minting inflation value. - description: >- - QueryInflationResponse is the response type for the - Query/Inflation RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - tags: - - Query - /cosmos/mint/v1beta1/params: - get: - summary: Params returns the total set of minting parameters. - operationId: MintParams - responses: - '200': - description: A successful response. - schema: - type: object - properties: - params: - description: params defines the parameters of the module. - type: object - properties: - mint_denom: - type: string - title: type of coin to mint - inflation_rate_change: - type: string - title: maximum annual change in inflation rate - inflation_max: - type: string - title: maximum inflation rate - inflation_min: - type: string - title: minimum inflation rate - goal_bonded: - type: string - title: goal of percent bonded atoms - blocks_per_year: - type: string - format: uint64 - title: expected blocks per year - description: >- - QueryParamsResponse is the response type for the Query/Params RPC - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - tags: - - Query - /cosmos/params/v1beta1/params: - get: - summary: |- - Params queries a specific parameter of a module, given its subspace and - key. - operationId: Params - responses: - '200': - description: A successful response. - schema: - type: object - properties: - param: - description: param defines the queried parameter. - type: object - properties: - subspace: - type: string - key: - type: string - value: - type: string - description: >- - QueryParamsResponse is response type for the Query/Params RPC - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: subspace - description: subspace defines the module to query the parameter for. - in: query - required: false - type: string - - name: key - description: key defines the key of the parameter in the subspace. - in: query - required: false - type: string - tags: - - Query - /cosmos/slashing/v1beta1/params: - get: - summary: Params queries the parameters of slashing module - operationId: SlashingParams - responses: - '200': - description: A successful response. - schema: - type: object - properties: - params: - type: object - properties: - signed_blocks_window: - type: string - format: int64 - min_signed_per_window: - type: string - format: byte - downtime_jail_duration: - type: string - slash_fraction_double_sign: - type: string - format: byte - slash_fraction_downtime: - type: string - format: byte - description: >- - Params represents the parameters used for by the slashing - module. - title: >- - QueryParamsResponse is the response type for the Query/Params RPC - method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - tags: - - Query - /cosmos/slashing/v1beta1/signing_infos: - get: - summary: SigningInfos queries signing info of all validators - operationId: SigningInfos - responses: - '200': - description: A successful response. - schema: - type: object - properties: - info: - type: array - items: - type: object - properties: - address: - type: string - start_height: - type: string - format: int64 - title: >- - Height at which validator was first a candidate OR was - unjailed - index_offset: - type: string - format: int64 - description: >- - Index which is incremented each time the validator was a - bonded - - in a block and may have signed a precommit or not. This - in conjunction with the - - `SignedBlocksWindow` param determines the index in the - `MissedBlocksBitArray`. - jailed_until: - type: string - format: date-time - description: >- - Timestamp until which the validator is jailed due to - liveness downtime. - tombstoned: - type: boolean - format: boolean - description: >- - Whether or not a validator has been tombstoned (killed - out of validator set). It is set - - once the validator commits an equivocation or for any - other configured misbehiavor. - missed_blocks_counter: - type: string - format: int64 - description: >- - A counter kept to avoid unnecessary array reads. - - Note that `Sum(MissedBlocksBitArray)` always equals - `MissedBlocksCounter`. - description: >- - ValidatorSigningInfo defines a validator's signing info for - monitoring their - - liveness activity. - title: info is the signing info of all validators - pagination: - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - PageResponse is to be embedded in gRPC response messages where - the - - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - title: >- - QuerySigningInfosResponse is the response type for the - Query/SigningInfos RPC - - method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/slashing/v1beta1/signing_infos/{cons_address}': - get: - summary: SigningInfo queries the signing info of given cons address - operationId: SigningInfo - responses: - '200': - description: A successful response. - schema: - type: object - properties: - val_signing_info: - type: object - properties: - address: - type: string - start_height: - type: string - format: int64 - title: >- - Height at which validator was first a candidate OR was - unjailed - index_offset: - type: string - format: int64 - description: >- - Index which is incremented each time the validator was a - bonded - - in a block and may have signed a precommit or not. This in - conjunction with the - - `SignedBlocksWindow` param determines the index in the - `MissedBlocksBitArray`. - jailed_until: - type: string - format: date-time - description: >- - Timestamp until which the validator is jailed due to - liveness downtime. - tombstoned: - type: boolean - format: boolean - description: >- - Whether or not a validator has been tombstoned (killed out - of validator set). It is set - - once the validator commits an equivocation or for any - other configured misbehiavor. - missed_blocks_counter: - type: string - format: int64 - description: >- - A counter kept to avoid unnecessary array reads. - - Note that `Sum(MissedBlocksBitArray)` always equals - `MissedBlocksCounter`. - description: >- - ValidatorSigningInfo defines a validator's signing info for - monitoring their - - liveness activity. - title: >- - val_signing_info is the signing info of requested val cons - address - title: >- - QuerySigningInfoResponse is the response type for the - Query/SigningInfo RPC - - method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - value: - type: string - format: byte - parameters: - - name: cons_address - description: cons_address is the address to query signing info of - in: path - required: true - type: string - tags: - - Query - '/cosmos/staking/v1beta1/delegations/{delegator_addr}': - get: - summary: >- - DelegatorDelegations queries all delegations of a given delegator - address. - operationId: DelegatorDelegations - responses: - '200': - description: A successful response. - schema: - type: object - properties: - delegation_responses: - type: array - items: - type: object - properties: - delegation: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of - the delegator. - validator_address: - type: string - description: >- - validator_address is the bech32-encoded address of - the validator. - shares: - type: string - description: shares define the delegation shares received. - description: >- - Delegation represents the bond with tokens held by an - account. It is - - owned by one delegator, and is associated with the - voting power of one - - validator. - balance: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the - custom method - - signatures required by gogoproto. - description: >- - DelegationResponse is equivalent to Delegation except that - it contains a - - balance in addition to shares which is more suitable for - client responses. - description: >- - delegation_responses defines all the delegations' info of a - delegator. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - QueryDelegatorDelegationsResponse is response type for the - Query/DelegatorDelegations RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: delegator_addr - description: delegator_addr defines the delegator address to query for. - in: path - required: true - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/staking/v1beta1/delegators/{delegator_addr}/redelegations': - get: - summary: Redelegations queries redelegations of given address. - operationId: Redelegations - responses: - '200': - description: A successful response. - schema: - type: object - properties: - redelegation_responses: - type: array - items: - type: object - properties: - redelegation: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of - the delegator. - validator_src_address: - type: string - description: >- - validator_src_address is the validator redelegation - source operator address. - validator_dst_address: - type: string - description: >- - validator_dst_address is the validator redelegation - destination operator address. - entries: - type: array - items: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height defines the height which the - redelegation took place. - completion_time: - type: string - format: date-time - description: >- - completion_time defines the unix time for - redelegation completion. - initial_balance: - type: string - description: >- - initial_balance defines the initial balance - when redelegation started. - shares_dst: - type: string - description: >- - shares_dst is the amount of - destination-validator shares created by - redelegation. - description: >- - RedelegationEntry defines a redelegation object - with relevant metadata. - description: entries are the redelegation entries. - description: >- - Redelegation contains the list of a particular - delegator's redelegating bonds - - from a particular source validator to a particular - destination validator. - entries: - type: array - items: - type: object - properties: - redelegation_entry: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height defines the height which the - redelegation took place. - completion_time: - type: string - format: date-time - description: >- - completion_time defines the unix time for - redelegation completion. - initial_balance: - type: string - description: >- - initial_balance defines the initial balance - when redelegation started. - shares_dst: - type: string - description: >- - shares_dst is the amount of - destination-validator shares created by - redelegation. - description: >- - RedelegationEntry defines a redelegation object - with relevant metadata. - balance: - type: string - description: >- - RedelegationEntryResponse is equivalent to a - RedelegationEntry except that it - - contains a balance in addition to shares which is more - suitable for client - - responses. - description: >- - RedelegationResponse is equivalent to a Redelegation except - that its entries - - contain a balance in addition to shares which is more - suitable for client - - responses. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryRedelegationsResponse is response type for the - Query/Redelegations RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: delegator_addr - description: delegator_addr defines the delegator address to query for. - in: path - required: true - type: string - - name: src_validator_addr - description: src_validator_addr defines the validator address to redelegate from. - in: query - required: false - type: string - - name: dst_validator_addr - description: dst_validator_addr defines the validator address to redelegate to. - in: query - required: false - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations': - get: - summary: >- - DelegatorUnbondingDelegations queries all unbonding delegations of a - given - - delegator address. - operationId: DelegatorUnbondingDelegations - responses: - '200': - description: A successful response. - schema: - type: object - properties: - unbonding_responses: - type: array - items: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of the - delegator. - validator_address: - type: string - description: >- - validator_address is the bech32-encoded address of the - validator. - entries: - type: array - items: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height is the height which the unbonding - took place. - completion_time: - type: string - format: date-time - description: >- - completion_time is the unix time for unbonding - completion. - initial_balance: - type: string - description: >- - initial_balance defines the tokens initially - scheduled to receive at completion. - balance: - type: string - description: >- - balance defines the tokens to receive at - completion. - description: >- - UnbondingDelegationEntry defines an unbonding object - with relevant metadata. - description: entries are the unbonding delegation entries. - description: >- - UnbondingDelegation stores all of a single delegator's - unbonding bonds - - for a single validator in an time-ordered list. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryUnbondingDelegatorDelegationsResponse is response type for - the - - Query/UnbondingDelegatorDelegations RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: delegator_addr - description: delegator_addr defines the delegator address to query for. - in: path - required: true - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators': - get: - summary: |- - DelegatorValidators queries all validators info for given delegator - address. - operationId: StakingDelegatorValidators - responses: - '200': - description: A successful response. - schema: - type: object - properties: - validators: - type: array - items: - type: object - properties: - operator_address: - type: string - description: >- - operator_address defines the address of the validator's - operator; bech encoded in JSON. - consensus_pubkey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the - type of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's - path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the - binary all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available - in the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the - regular - - representation of the deserialized, embedded message, - with an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message - [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - jailed: - type: boolean - format: boolean - description: >- - jailed defined whether the validator has been jailed - from bonded status or not. - status: - description: >- - status is the validator status - (bonded/unbonding/unbonded). - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - tokens: - type: string - description: >- - tokens define the delegated tokens (incl. - self-delegation). - delegator_shares: - type: string - description: >- - delegator_shares defines total shares issued to a - validator's delegators. - description: - description: >- - description defines the description terms for the - validator. - type: object - properties: - moniker: - type: string - description: >- - moniker defines a human-readable name for the - validator. - identity: - type: string - description: >- - identity defines an optional identity signature (ex. - UPort or Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: >- - security_contact defines an optional email for - security contact. - details: - type: string - description: details define other optional details. - unbonding_height: - type: string - format: int64 - description: >- - unbonding_height defines, if unbonding, the height at - which this validator has begun unbonding. - unbonding_time: - type: string - format: date-time - description: >- - unbonding_time defines, if unbonding, the min time for - the validator to complete unbonding. - commission: - description: commission defines the commission parameters. - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission - rates to be used for creating a validator. - type: object - properties: - rate: - type: string - description: >- - rate is the commission rate charged to - delegators, as a fraction. - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate - which validator can ever charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily - increase of the validator commission, as a - fraction. - update_time: - type: string - format: date-time - description: >- - update_time is the last time the commission rate was - changed. - min_self_delegation: - type: string - description: >- - min_self_delegation is the validator's self declared - minimum self delegation. - description: >- - Validator defines a validator, together with the total - amount of the - - Validator's bond shares and their exchange rate to coins. - Slashing results in - - a decrease in the exchange rate, allowing correct - calculation of future - - undelegations without iterating over delegators. When coins - are delegated to - - this validator, the validator is credited with a delegation - whose number of - - bond shares is based on the amount of coins delegated - divided by the current - - exchange rate. Voting power can be calculated as total - bonded shares - - multiplied by exchange rate. - description: validators defines the the validators' info of a delegator. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - QueryDelegatorValidatorsResponse is response type for the - Query/DelegatorValidators RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: delegator_addr - description: delegator_addr defines the delegator address to query for. - in: path - required: true - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators/{validator_addr}': - get: - summary: |- - DelegatorValidator queries validator info for given delegator validator - pair. - operationId: DelegatorValidator - responses: - '200': - description: A successful response. - schema: - type: object - properties: - validator: - type: object - properties: - operator_address: - type: string - description: >- - operator_address defines the address of the validator's - operator; bech encoded in JSON. - consensus_pubkey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type - of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - jailed: - type: boolean - format: boolean - description: >- - jailed defined whether the validator has been jailed from - bonded status or not. - status: - description: >- - status is the validator status - (bonded/unbonding/unbonded). - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - tokens: - type: string - description: >- - tokens define the delegated tokens (incl. - self-delegation). - delegator_shares: - type: string - description: >- - delegator_shares defines total shares issued to a - validator's delegators. - description: - description: >- - description defines the description terms for the - validator. - type: object - properties: - moniker: - type: string - description: >- - moniker defines a human-readable name for the - validator. - identity: - type: string - description: >- - identity defines an optional identity signature (ex. - UPort or Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: >- - security_contact defines an optional email for - security contact. - details: - type: string - description: details define other optional details. - unbonding_height: - type: string - format: int64 - description: >- - unbonding_height defines, if unbonding, the height at - which this validator has begun unbonding. - unbonding_time: - type: string - format: date-time - description: >- - unbonding_time defines, if unbonding, the min time for the - validator to complete unbonding. - commission: - description: commission defines the commission parameters. - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission rates - to be used for creating a validator. - type: object - properties: - rate: - type: string - description: >- - rate is the commission rate charged to delegators, - as a fraction. - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate which - validator can ever charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily increase - of the validator commission, as a fraction. - update_time: - type: string - format: date-time - description: >- - update_time is the last time the commission rate was - changed. - min_self_delegation: - type: string - description: >- - min_self_delegation is the validator's self declared - minimum self delegation. - description: >- - Validator defines a validator, together with the total amount - of the - - Validator's bond shares and their exchange rate to coins. - Slashing results in - - a decrease in the exchange rate, allowing correct calculation - of future - - undelegations without iterating over delegators. When coins - are delegated to - - this validator, the validator is credited with a delegation - whose number of - - bond shares is based on the amount of coins delegated divided - by the current - - exchange rate. Voting power can be calculated as total bonded - shares - - multiplied by exchange rate. - description: |- - QueryDelegatorValidatorResponse response type for the - Query/DelegatorValidator RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: delegator_addr - description: delegator_addr defines the delegator address to query for. - in: path - required: true - type: string - - name: validator_addr - description: validator_addr defines the validator address to query for. - in: path - required: true - type: string - tags: - - Query - '/cosmos/staking/v1beta1/historical_info/{height}': - get: - summary: HistoricalInfo queries the historical info for given height. - operationId: HistoricalInfo - responses: - '200': - description: A successful response. - schema: - type: object - properties: - hist: - description: hist defines the historical info at the given height. - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing - a block in the blockchain, - - including all blockchain data structures and the rules - of the application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - title: prev block info - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - valset: - type: array - items: - type: object - properties: - operator_address: - type: string - description: >- - operator_address defines the address of the - validator's operator; bech encoded in JSON. - consensus_pubkey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the - type of the serialized - - protocol buffer message. This string must - contain at least - - one "/" character. The last segment of the URL's - path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name - should be in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the - binary all types that they - - expect it to use in the context of Any. However, - for URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message - definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup - results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently - available in the official - - protobuf release, and it is not used for type - URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of - the above specified type. - description: >- - `Any` contains an arbitrary serialized protocol - buffer message along with a - - URL that describes the type of the serialized - message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods - of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will - by default use - - 'type.googleapis.com/full.type.name' as the type URL - and the unpack - - methods only use the fully qualified type name after - the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" - will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the - regular - - representation of the deserialized, embedded - message, with an - - additional field `@type` which contains the type - URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to - the `@type` - - field. Example (for message - [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - jailed: - type: boolean - format: boolean - description: >- - jailed defined whether the validator has been jailed - from bonded status or not. - status: - description: >- - status is the validator status - (bonded/unbonding/unbonded). - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - tokens: - type: string - description: >- - tokens define the delegated tokens (incl. - self-delegation). - delegator_shares: - type: string - description: >- - delegator_shares defines total shares issued to a - validator's delegators. - description: - description: >- - description defines the description terms for the - validator. - type: object - properties: - moniker: - type: string - description: >- - moniker defines a human-readable name for the - validator. - identity: - type: string - description: >- - identity defines an optional identity signature - (ex. UPort or Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: >- - security_contact defines an optional email for - security contact. - details: - type: string - description: details define other optional details. - unbonding_height: - type: string - format: int64 - description: >- - unbonding_height defines, if unbonding, the height - at which this validator has begun unbonding. - unbonding_time: - type: string - format: date-time - description: >- - unbonding_time defines, if unbonding, the min time - for the validator to complete unbonding. - commission: - description: commission defines the commission parameters. - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission - rates to be used for creating a validator. - type: object - properties: - rate: - type: string - description: >- - rate is the commission rate charged to - delegators, as a fraction. - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate - which validator can ever charge, as a - fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily - increase of the validator commission, as a - fraction. - update_time: - type: string - format: date-time - description: >- - update_time is the last time the commission rate - was changed. - min_self_delegation: - type: string - description: >- - min_self_delegation is the validator's self declared - minimum self delegation. - description: >- - Validator defines a validator, together with the total - amount of the - - Validator's bond shares and their exchange rate to - coins. Slashing results in - - a decrease in the exchange rate, allowing correct - calculation of future - - undelegations without iterating over delegators. When - coins are delegated to - - this validator, the validator is credited with a - delegation whose number of - - bond shares is based on the amount of coins delegated - divided by the current - - exchange rate. Voting power can be calculated as total - bonded shares - - multiplied by exchange rate. - description: >- - QueryHistoricalInfoResponse is response type for the - Query/HistoricalInfo RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: height - description: height defines at which height to query the historical info. - in: path - required: true - type: string - format: int64 - tags: - - Query - /cosmos/staking/v1beta1/params: - get: - summary: Parameters queries the staking parameters. - operationId: StakingParams - responses: - '200': - description: A successful response. - schema: - type: object - properties: - params: - description: params holds all the parameters of this module. - type: object - properties: - unbonding_time: - type: string - description: unbonding_time is the time duration of unbonding. - max_validators: - type: integer - format: int64 - description: max_validators is the maximum number of validators. - max_entries: - type: integer - format: int64 - description: >- - max_entries is the max entries for either unbonding - delegation or redelegation (per pair/trio). - historical_entries: - type: integer - format: int64 - description: >- - historical_entries is the number of historical entries to - persist. - bond_denom: - type: string - description: bond_denom defines the bondable coin denomination. - description: >- - QueryParamsResponse is response type for the Query/Params RPC - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - tags: - - Query - /cosmos/staking/v1beta1/pool: - get: - summary: Pool queries the pool info. - operationId: Pool - responses: - '200': - description: A successful response. - schema: - type: object - properties: - pool: - description: pool defines the pool info. - type: object - properties: - not_bonded_tokens: - type: string - bonded_tokens: - type: string - description: QueryPoolResponse is response type for the Query/Pool RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - tags: - - Query - /cosmos/staking/v1beta1/validators: - get: - summary: Validators queries all validators that match the given status. - operationId: Validators - responses: - '200': - description: A successful response. - schema: - type: object - properties: - validators: - type: array - items: - type: object - properties: - operator_address: - type: string - description: >- - operator_address defines the address of the validator's - operator; bech encoded in JSON. - consensus_pubkey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the - type of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's - path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the - binary all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available - in the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the - regular - - representation of the deserialized, embedded message, - with an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message - [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - jailed: - type: boolean - format: boolean - description: >- - jailed defined whether the validator has been jailed - from bonded status or not. - status: - description: >- - status is the validator status - (bonded/unbonding/unbonded). - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - tokens: - type: string - description: >- - tokens define the delegated tokens (incl. - self-delegation). - delegator_shares: - type: string - description: >- - delegator_shares defines total shares issued to a - validator's delegators. - description: - description: >- - description defines the description terms for the - validator. - type: object - properties: - moniker: - type: string - description: >- - moniker defines a human-readable name for the - validator. - identity: - type: string - description: >- - identity defines an optional identity signature (ex. - UPort or Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: >- - security_contact defines an optional email for - security contact. - details: - type: string - description: details define other optional details. - unbonding_height: - type: string - format: int64 - description: >- - unbonding_height defines, if unbonding, the height at - which this validator has begun unbonding. - unbonding_time: - type: string - format: date-time - description: >- - unbonding_time defines, if unbonding, the min time for - the validator to complete unbonding. - commission: - description: commission defines the commission parameters. - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission - rates to be used for creating a validator. - type: object - properties: - rate: - type: string - description: >- - rate is the commission rate charged to - delegators, as a fraction. - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate - which validator can ever charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily - increase of the validator commission, as a - fraction. - update_time: - type: string - format: date-time - description: >- - update_time is the last time the commission rate was - changed. - min_self_delegation: - type: string - description: >- - min_self_delegation is the validator's self declared - minimum self delegation. - description: >- - Validator defines a validator, together with the total - amount of the - - Validator's bond shares and their exchange rate to coins. - Slashing results in - - a decrease in the exchange rate, allowing correct - calculation of future - - undelegations without iterating over delegators. When coins - are delegated to - - this validator, the validator is credited with a delegation - whose number of - - bond shares is based on the amount of coins delegated - divided by the current - - exchange rate. Voting power can be calculated as total - bonded shares - - multiplied by exchange rate. - description: validators contains all the queried validators. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - title: >- - QueryValidatorsResponse is response type for the Query/Validators - RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: status - description: status enables to query for validators matching a given status. - in: query - required: false - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/staking/v1beta1/validators/{validator_addr}': - get: - summary: Validator queries validator info for given validator address. - operationId: Validator - responses: - '200': - description: A successful response. - schema: - type: object - properties: - validator: - type: object - properties: - operator_address: - type: string - description: >- - operator_address defines the address of the validator's - operator; bech encoded in JSON. - consensus_pubkey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type - of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - jailed: - type: boolean - format: boolean - description: >- - jailed defined whether the validator has been jailed from - bonded status or not. - status: - description: >- - status is the validator status - (bonded/unbonding/unbonded). - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - tokens: - type: string - description: >- - tokens define the delegated tokens (incl. - self-delegation). - delegator_shares: - type: string - description: >- - delegator_shares defines total shares issued to a - validator's delegators. - description: - description: >- - description defines the description terms for the - validator. - type: object - properties: - moniker: - type: string - description: >- - moniker defines a human-readable name for the - validator. - identity: - type: string - description: >- - identity defines an optional identity signature (ex. - UPort or Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: >- - security_contact defines an optional email for - security contact. - details: - type: string - description: details define other optional details. - unbonding_height: - type: string - format: int64 - description: >- - unbonding_height defines, if unbonding, the height at - which this validator has begun unbonding. - unbonding_time: - type: string - format: date-time - description: >- - unbonding_time defines, if unbonding, the min time for the - validator to complete unbonding. - commission: - description: commission defines the commission parameters. - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission rates - to be used for creating a validator. - type: object - properties: - rate: - type: string - description: >- - rate is the commission rate charged to delegators, - as a fraction. - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate which - validator can ever charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily increase - of the validator commission, as a fraction. - update_time: - type: string - format: date-time - description: >- - update_time is the last time the commission rate was - changed. - min_self_delegation: - type: string - description: >- - min_self_delegation is the validator's self declared - minimum self delegation. - description: >- - Validator defines a validator, together with the total amount - of the - - Validator's bond shares and their exchange rate to coins. - Slashing results in - - a decrease in the exchange rate, allowing correct calculation - of future - - undelegations without iterating over delegators. When coins - are delegated to - - this validator, the validator is credited with a delegation - whose number of - - bond shares is based on the amount of coins delegated divided - by the current - - exchange rate. Voting power can be calculated as total bonded - shares - - multiplied by exchange rate. - title: >- - QueryValidatorResponse is response type for the Query/Validator - RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: validator_addr - description: validator_addr defines the validator address to query for. - in: path - required: true - type: string - tags: - - Query - '/cosmos/staking/v1beta1/validators/{validator_addr}/delegations': - get: - summary: ValidatorDelegations queries delegate info for given validator. - operationId: ValidatorDelegations - responses: - '200': - description: A successful response. - schema: - type: object - properties: - delegation_responses: - type: array - items: - type: object - properties: - delegation: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of - the delegator. - validator_address: - type: string - description: >- - validator_address is the bech32-encoded address of - the validator. - shares: - type: string - description: shares define the delegation shares received. - description: >- - Delegation represents the bond with tokens held by an - account. It is - - owned by one delegator, and is associated with the - voting power of one - - validator. - balance: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the - custom method - - signatures required by gogoproto. - description: >- - DelegationResponse is equivalent to Delegation except that - it contains a - - balance in addition to shares which is more suitable for - client responses. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - title: |- - QueryValidatorDelegationsResponse is response type for the - Query/ValidatorDelegations RPC method - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: validator_addr - description: validator_addr defines the validator address to query for. - in: path - required: true - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/{delegator_addr}': - get: - summary: Delegation queries delegate info for given validator delegator pair. - operationId: Delegation - responses: - '200': - description: A successful response. - schema: - type: object - properties: - delegation_response: - type: object - properties: - delegation: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of the - delegator. - validator_address: - type: string - description: >- - validator_address is the bech32-encoded address of the - validator. - shares: - type: string - description: shares define the delegation shares received. - description: >- - Delegation represents the bond with tokens held by an - account. It is - - owned by one delegator, and is associated with the voting - power of one - - validator. - balance: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the - custom method - - signatures required by gogoproto. - description: >- - DelegationResponse is equivalent to Delegation except that it - contains a - - balance in addition to shares which is more suitable for - client responses. - description: >- - QueryDelegationResponse is response type for the Query/Delegation - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: validator_addr - description: validator_addr defines the validator address to query for. - in: path - required: true - type: string - - name: delegator_addr - description: delegator_addr defines the delegator address to query for. - in: path - required: true - type: string - tags: - - Query - '/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/{delegator_addr}/unbonding_delegation': - get: - summary: |- - UnbondingDelegation queries unbonding info for given validator delegator - pair. - operationId: UnbondingDelegation - responses: - '200': - description: A successful response. - schema: - type: object - properties: - unbond: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of the - delegator. - validator_address: - type: string - description: >- - validator_address is the bech32-encoded address of the - validator. - entries: - type: array - items: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height is the height which the unbonding - took place. - completion_time: - type: string - format: date-time - description: >- - completion_time is the unix time for unbonding - completion. - initial_balance: - type: string - description: >- - initial_balance defines the tokens initially - scheduled to receive at completion. - balance: - type: string - description: balance defines the tokens to receive at completion. - description: >- - UnbondingDelegationEntry defines an unbonding object - with relevant metadata. - description: entries are the unbonding delegation entries. - description: >- - UnbondingDelegation stores all of a single delegator's - unbonding bonds - - for a single validator in an time-ordered list. - description: >- - QueryDelegationResponse is response type for the - Query/UnbondingDelegation - - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: validator_addr - description: validator_addr defines the validator address to query for. - in: path - required: true - type: string - - name: delegator_addr - description: delegator_addr defines the delegator address to query for. - in: path - required: true - type: string - tags: - - Query - '/cosmos/staking/v1beta1/validators/{validator_addr}/unbonding_delegations': - get: - summary: >- - ValidatorUnbondingDelegations queries unbonding delegations of a - validator. - operationId: ValidatorUnbondingDelegations - responses: - '200': - description: A successful response. - schema: - type: object - properties: - unbonding_responses: - type: array - items: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of the - delegator. - validator_address: - type: string - description: >- - validator_address is the bech32-encoded address of the - validator. - entries: - type: array - items: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height is the height which the unbonding - took place. - completion_time: - type: string - format: date-time - description: >- - completion_time is the unix time for unbonding - completion. - initial_balance: - type: string - description: >- - initial_balance defines the tokens initially - scheduled to receive at completion. - balance: - type: string - description: >- - balance defines the tokens to receive at - completion. - description: >- - UnbondingDelegationEntry defines an unbonding object - with relevant metadata. - description: entries are the unbonding delegation entries. - description: >- - UnbondingDelegation stores all of a single delegator's - unbonding bonds - - for a single validator in an time-ordered list. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryValidatorUnbondingDelegationsResponse is response type for - the - - Query/ValidatorUnbondingDelegations RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: validator_addr - description: validator_addr defines the validator address to query for. - in: path - required: true - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - /cosmos/tx/v1beta1/simulate: - post: - summary: Simulate simulates executing a transaction for estimating gas usage. - operationId: Simulate - responses: - '200': - description: A successful response. - schema: - type: object - properties: - gas_info: - description: gas_info is the information about gas used in the simulation. - type: object - properties: - gas_wanted: - type: string - format: uint64 - description: >- - GasWanted is the maximum units of work we allow this tx to - perform. - gas_used: - type: string - format: uint64 - description: GasUsed is the amount of gas actually consumed. - result: - description: result is the result of the simulation. - type: object - properties: - data: - type: string - format: byte - description: >- - Data is any data returned from message or handler - execution. It MUST be - - length prefixed in order to separate data from multiple - message executions. - log: - type: string - description: >- - Log contains the log information from message or handler - execution. - events: - type: array - items: - type: object - properties: - type: - type: string - attributes: - type: array - items: - type: object - properties: - key: - type: string - format: byte - value: - type: string - format: byte - index: - type: boolean - format: boolean - description: >- - EventAttribute is a single key-value pair, - associated with an event. - description: >- - Event allows application developers to attach additional - information to - - ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx - and ResponseDeliverTx. - - Later, transactions may be queried using these events. - description: >- - Events contains a slice of Event objects that were emitted - during message - - or handler execution. - description: |- - SimulateResponse is the response type for the - Service.SimulateRPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: body - in: body - required: true - schema: - $ref: '#/definitions/cosmos.tx.v1beta1.SimulateRequest' - tags: - - Service - /cosmos/tx/v1beta1/txs: - get: - summary: GetTxsEvent fetches txs by event. - operationId: GetTxsEvent - responses: - '200': - description: A successful response. - schema: - $ref: '#/definitions/cosmos.tx.v1beta1.GetTxsEventResponse' - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: events - description: events is the list of transaction event type. - in: query - required: false - type: array - items: - type: string - collectionFormat: multi - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - - name: order_by - description: |2- - - ORDER_BY_UNSPECIFIED: ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults to ASC in this case. - - ORDER_BY_ASC: ORDER_BY_ASC defines ascending order - - ORDER_BY_DESC: ORDER_BY_DESC defines descending order - in: query - required: false - type: string - enum: - - ORDER_BY_UNSPECIFIED - - ORDER_BY_ASC - - ORDER_BY_DESC - default: ORDER_BY_UNSPECIFIED - tags: - - Service - post: - summary: BroadcastTx broadcast transaction. - operationId: BroadcastTx - responses: - '200': - description: A successful response. - schema: - type: object - properties: - tx_response: - type: object - properties: - height: - type: string - format: int64 - title: The block height - txhash: - type: string - description: The transaction hash. - codespace: - type: string - title: Namespace for the Code - code: - type: integer - format: int64 - description: Response code. - data: - type: string - description: 'Result bytes, if any.' - raw_log: - type: string - description: >- - The output of the application's logger (raw string). May - be - - non-deterministic. - logs: - type: array - items: - type: object - properties: - msg_index: - type: integer - format: int64 - log: - type: string - events: - type: array - items: - type: object - properties: - type: - type: string - attributes: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - description: >- - Attribute defines an attribute wrapper where - the key and value are - - strings instead of raw bytes. - description: >- - StringEvent defines en Event object wrapper where - all the attributes - - contain key/value pairs that are strings instead - of raw bytes. - description: >- - Events contains a slice of Event objects that were - emitted during some - - execution. - description: >- - ABCIMessageLog defines a structure containing an indexed - tx ABCI message log. - description: >- - The output of the application's logger (typed). May be - non-deterministic. - info: - type: string - description: Additional information. May be non-deterministic. - gas_wanted: - type: string - format: int64 - description: Amount of gas requested for transaction. - gas_used: - type: string - format: int64 - description: Amount of gas consumed by transaction. - tx: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type - of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - timestamp: - type: string - description: >- - Time of the previous block. For heights > 1, it's the - weighted median of - - the timestamps of the valid votes in the block.LastCommit. - For height == 1, - - it's genesis time. - description: >- - TxResponse defines a structure containing relevant tx data and - metadata. The - - tags are stringified and the log is JSON decoded. - description: |- - BroadcastTxResponse is the response type for the - Service.BroadcastTx method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: body - in: body - required: true - schema: - type: object - properties: - tx_bytes: - type: string - format: byte - description: tx_bytes is the raw transaction. - mode: - type: string - enum: - - BROADCAST_MODE_UNSPECIFIED - - BROADCAST_MODE_BLOCK - - BROADCAST_MODE_SYNC - - BROADCAST_MODE_ASYNC - default: BROADCAST_MODE_UNSPECIFIED - description: >- - BroadcastMode specifies the broadcast mode for the - TxService.Broadcast RPC method. - - - BROADCAST_MODE_UNSPECIFIED: zero-value for mode ordering - - BROADCAST_MODE_BLOCK: BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for - the tx to be committed in a block. - - BROADCAST_MODE_SYNC: BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for - a CheckTx execution response only. - - BROADCAST_MODE_ASYNC: BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns - immediately. - description: >- - BroadcastTxRequest is the request type for the - Service.BroadcastTxRequest - - RPC method. - tags: - - Service - '/cosmos/tx/v1beta1/txs/{hash}': - get: - summary: GetTx fetches a tx by hash. - operationId: GetTx - responses: - '200': - description: A successful response. - schema: - $ref: '#/definitions/cosmos.tx.v1beta1.GetTxResponse' - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: hash - description: 'hash is the tx hash to query, encoded as a hex string.' - in: path - required: true - type: string - tags: - - Service - '/cosmos/upgrade/v1beta1/applied_plan/{name}': - get: - summary: AppliedPlan queries a previously applied upgrade plan by its name. - operationId: AppliedPlan - responses: - '200': - description: A successful response. - schema: - type: object - properties: - height: - type: string - format: int64 - description: height is the block height at which the plan was applied. - description: >- - QueryAppliedPlanResponse is the response type for the - Query/AppliedPlan RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: name - description: name is the name of the applied plan to query for. - in: path - required: true - type: string - tags: - - Query - /cosmos/upgrade/v1beta1/current_plan: - get: - summary: CurrentPlan queries the current upgrade plan. - operationId: CurrentPlan - responses: - '200': - description: A successful response. - schema: - type: object - properties: - plan: - description: plan is the current upgrade plan. - type: object - properties: - name: - type: string - description: >- - Sets the name for the upgrade. This name will be used by - the upgraded - - version of the software to apply any special "on-upgrade" - commands during - - the first BeginBlock method after the upgrade is applied. - It is also used - - to detect whether a software version can handle a given - upgrade. If no - - upgrade handler with this name has been set in the - software, it will be - - assumed that the software is out-of-date when the upgrade - Time or Height is - - reached and the software will exit. - time: - type: string - format: date-time - description: >- - Deprecated: Time based upgrades have been deprecated. Time - based upgrade logic - - has been removed from the SDK. - - If this field is not empty, an error will be thrown. - height: - type: string - format: int64 - description: |- - The height at which the upgrade must be performed. - Only used if Time is not set. - info: - type: string - title: >- - Any application specific upgrade info to be included - on-chain - - such as a git commit that validators could automatically - upgrade to - upgraded_client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type - of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - description: >- - QueryCurrentPlanResponse is the response type for the - Query/CurrentPlan RPC - - method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - tags: - - Query - /cosmos/upgrade/v1beta1/module_versions: - get: - summary: ModuleVersions queries the list of module versions from state. - operationId: ModuleVersions - responses: - '200': - description: A successful response. - schema: - type: object - properties: - module_versions: - type: array - items: - type: object - properties: - name: - type: string - title: name of the app module - version: - type: string - format: uint64 - title: consensus version of the app module - description: ModuleVersion specifies a module and its consensus version. - description: >- - module_versions is a list of module names with their consensus - versions. - description: >- - QueryModuleVersionsResponse is the response type for the - Query/ModuleVersions - - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: module_name - description: |- - module_name is a field to query a specific module - consensus version from state. Leaving this empty will - fetch the full list of module versions from state. - in: query - required: false - type: string - tags: - - Query - '/cosmos/upgrade/v1beta1/upgraded_consensus_state/{last_height}': - get: - summary: |- - UpgradedConsensusState queries the consensus state that will serve - as a trusted kernel for the next version of this chain. It will only be - stored at the last height of this chain. - UpgradedConsensusState RPC not supported with legacy querier - operationId: UpgradedConsensusState - responses: - '200': - description: A successful response. - schema: - type: object - properties: - upgraded_consensus_state: - type: string - format: byte - description: >- - QueryUpgradedConsensusStateResponse is the response type for the - Query/UpgradedConsensusState - - RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: last_height - description: |- - last height of the current chain must be sent in request - as this is the height under which next consensus state is stored - in: path - required: true - type: string - format: int64 - tags: - - Query - /cosmos/authz/v1beta1/grants: - get: - summary: 'Returns list of `Authorization`, granted to the grantee by the granter.' - operationId: Grants - responses: - '200': - description: A successful response. - schema: - type: object - properties: - grants: - type: array - items: - type: object - properties: - authorization: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the - type of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's - path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the - binary all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available - in the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any - values in the form - - of utility functions or additional generated methods of - the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and - the unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will - yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the - regular - - representation of the deserialized, embedded message, - with an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a - custom JSON - - representation, that representation will be embedded - adding a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message - [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - expiration: - type: string - format: date-time - description: |- - Grant gives permissions to execute - the provide method with expiration time. - description: >- - authorizations is a list of grants granted for grantee by - granter. - pagination: - description: pagination defines an pagination for the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryGrantsResponse is the response type for the - Query/Authorizations RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: granter - in: query - required: false - type: string - - name: grantee - in: query - required: false - type: string - - name: msg_type_url - description: >- - Optional, msg_type_url, when set, will query only grants matching - given msg type. - in: query - required: false - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query - '/cosmos/feegrant/v1beta1/allowance/{granter}/{grantee}': - get: - summary: Allowance returns fee granted to the grantee by the granter. - operationId: Allowance - responses: - '200': - description: A successful response. - schema: - type: object - properties: - allowance: - description: allowance is a allowance granted for grantee by granter. - type: object - properties: - granter: - type: string - description: >- - granter is the address of the user granting an allowance - of their funds. - grantee: - type: string - description: >- - grantee is the address of the user being granted an - allowance of another user's funds. - allowance: - description: allowance can be any of basic and filtered fee allowance. - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type - of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - title: >- - Grant is stored in the KVStore to record a grant with full - context - description: >- - QueryAllowanceResponse is the response type for the - Query/Allowance RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: granter - description: >- - granter is the address of the user granting an allowance of their - funds. - in: path - required: true - type: string - - name: grantee - description: >- - grantee is the address of the user being granted an allowance of - another user's funds. - in: path - required: true - type: string - tags: - - Query - '/cosmos/feegrant/v1beta1/allowances/{grantee}': - get: - summary: Allowances returns all the grants for address. - operationId: Allowances - responses: - '200': - description: A successful response. - schema: - type: object - properties: - allowances: - type: array - items: - type: object - properties: - granter: - type: string - description: >- - granter is the address of the user granting an allowance - of their funds. - grantee: - type: string - description: >- - grantee is the address of the user being granted an - allowance of another user's funds. - allowance: - description: >- - allowance can be any of basic and filtered fee - allowance. - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the - type of the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's - path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be - in a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the - binary all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can - optionally set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results - based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available - in the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty - scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the - above specified type. - title: >- - Grant is stored in the KVStore to record a grant with full - context - description: allowances are allowance's granted for grantee by granter. - pagination: - description: pagination defines an pagination for the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryAllowancesResponse is the response type for the - Query/Allowances RPC method. - default: - description: An unexpected error response - schema: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - parameters: - - name: grantee - in: path - required: true - type: string - - name: pagination.key - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - in: query - required: false - type: string - format: byte - - name: pagination.offset - description: >- - offset is a numeric offset that can be used when key is unavailable. - - It is less efficient than using key. Only one of offset or key - should - - be set. - in: query - required: false - type: string - format: uint64 - - name: pagination.limit - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - in: query - required: false - type: string - format: uint64 - - name: pagination.count_total - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in - UIs. - - count_total is only respected when offset is used. It is ignored - when key - - is set. - in: query - required: false - type: boolean - format: boolean - - name: pagination.reverse - description: >- - reverse is set to true if results are to be returned in the - descending order. - in: query - required: false - type: boolean - format: boolean - tags: - - Query -securityDefinitions: - kms: - type: basic -definitions: - CheckTxResult: - type: object - properties: - code: - type: integer - data: - type: string - gas_used: - type: integer - gas_wanted: - type: integer - info: - type: string - log: - type: string - tags: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - example: - code: 0 - data: data - log: log - gas_used: 5000 - gas_wanted: 10000 - info: info - tags: - - '' - - '' - DeliverTxResult: - type: object - properties: - code: - type: integer - data: - type: string - gas_used: - type: integer - gas_wanted: - type: integer - info: - type: string - log: - type: string - tags: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - example: - code: 5 - data: data - log: log - gas_used: 5000 - gas_wanted: 10000 - info: info - tags: - - '' - - '' - BroadcastTxCommitResult: - type: object - properties: - check_tx: - type: object - properties: - code: - type: integer - data: - type: string - gas_used: - type: integer - gas_wanted: - type: integer - info: - type: string - log: - type: string - tags: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - example: - code: 0 - data: data - log: log - gas_used: 5000 - gas_wanted: 10000 - info: info - tags: - - '' - - '' - deliver_tx: - type: object - properties: - code: - type: integer - data: - type: string - gas_used: - type: integer - gas_wanted: - type: integer - info: - type: string - log: - type: string - tags: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - example: - code: 5 - data: data - log: log - gas_used: 5000 - gas_wanted: 10000 - info: info - tags: - - '' - - '' - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - height: - type: integer - KVPair: - type: object - properties: - key: - type: string - value: - type: string - Msg: - type: string - Address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - ValidatorAddress: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - Coin: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - Hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - TxQuery: - type: object - properties: - hash: - type: string - example: D085138D913993919295FF4B0A9107F1F2CDE0D37A87CE0644E217CBF3B49656 - height: - type: number - example: 368 - tx: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - result: - type: object - properties: - log: - type: string - gas_wanted: - type: string - example: '200000' - gas_used: - type: string - example: '26354' - tags: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - PaginatedQueryTxs: - type: object - properties: - total_count: - type: number - example: 1 - count: - type: number - example: 1 - page_number: - type: number - example: 1 - page_total: - type: number - example: 1 - limit: - type: number - example: 30 - txs: - type: array - items: - type: object - properties: - hash: - type: string - example: D085138D913993919295FF4B0A9107F1F2CDE0D37A87CE0644E217CBF3B49656 - height: - type: number - example: 368 - tx: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - result: - type: object - properties: - log: - type: string - gas_wanted: - type: string - example: '200000' - gas_used: - type: string - example: '26354' - tags: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - StdTx: - type: object - properties: - msg: - type: array - items: - type: string - fee: - type: object - properties: - gas: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - memo: - type: string - signature: - type: object - properties: - signature: - type: string - example: >- - MEUCIQD02fsDPra8MtbRsyB1w7bqTM55Wu138zQbFcWx4+CFyAIge5WNPfKIuvzBZ69MyqHsqD8S1IwiEp+iUb6VSdtlpgY= - pub_key: - type: object - properties: - type: - type: string - example: tendermint/PubKeySecp256k1 - value: - type: string - example: Avz04VhtKJh8ACCVzlI8aTosGy0ikFXKIVHQ3jKMrosH - account_number: - type: string - example: '0' - sequence: - type: string - example: '0' - BlockID: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - BlockHeader: - type: object - properties: - chain_id: - type: string - example: cosmoshub-2 - height: - type: number - example: 1 - time: - type: string - example: '2017-12-30T05:53:09.287+01:00' - num_txs: - type: number - example: 0 - last_block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - total_txs: - type: number - example: 35 - last_commit_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - data_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - next_validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - consensus_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - app_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - last_results_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - evidence_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - proposer_address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - version: - type: object - properties: - block: - type: string - example: 10 - app: - type: string - example: 0 - Block: - type: object - properties: - header: - type: object - properties: - chain_id: - type: string - example: cosmoshub-2 - height: - type: number - example: 1 - time: - type: string - example: '2017-12-30T05:53:09.287+01:00' - num_txs: - type: number - example: 0 - last_block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - total_txs: - type: number - example: 35 - last_commit_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - data_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - next_validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - consensus_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - app_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - last_results_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - evidence_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - proposer_address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - version: - type: object - properties: - block: - type: string - example: 10 - app: - type: string - example: 0 - txs: - type: array - items: - type: string - evidence: - type: array - items: - type: string - last_commit: - type: object - properties: - block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - precommits: - type: array - items: - type: object - properties: - validator_address: - type: string - validator_index: - type: string - example: '0' - height: - type: string - example: '0' - round: - type: string - example: '0' - timestamp: - type: string - example: '2017-12-30T05:53:09.287+01:00' - type: - type: number - example: 2 - block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - signature: - type: string - example: >- - 7uTC74QlknqYWEwg7Vn6M8Om7FuZ0EO4bjvuj6rwH1mTUJrRuMMZvAAqT9VjNgP0RA/TDp6u/92AqrZfXJSpBQ== - BlockQuery: - type: object - properties: - block_meta: - type: object - properties: - header: - type: object - properties: - chain_id: - type: string - example: cosmoshub-2 - height: - type: number - example: 1 - time: - type: string - example: '2017-12-30T05:53:09.287+01:00' - num_txs: - type: number - example: 0 - last_block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - total_txs: - type: number - example: 35 - last_commit_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - data_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - next_validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - consensus_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - app_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - last_results_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - evidence_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - proposer_address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - version: - type: object - properties: - block: - type: string - example: 10 - app: - type: string - example: 0 - block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - block: - type: object - properties: - header: - type: object - properties: - chain_id: - type: string - example: cosmoshub-2 - height: - type: number - example: 1 - time: - type: string - example: '2017-12-30T05:53:09.287+01:00' - num_txs: - type: number - example: 0 - last_block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - total_txs: - type: number - example: 35 - last_commit_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - data_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - next_validators_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - consensus_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - app_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - last_results_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - evidence_hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - proposer_address: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - version: - type: object - properties: - block: - type: string - example: 10 - app: - type: string - example: 0 - txs: - type: array - items: - type: string - evidence: - type: array - items: - type: string - last_commit: - type: object - properties: - block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - precommits: - type: array - items: - type: object - properties: - validator_address: - type: string - validator_index: - type: string - example: '0' - height: - type: string - example: '0' - round: - type: string - example: '0' - timestamp: - type: string - example: '2017-12-30T05:53:09.287+01:00' - type: - type: number - example: 2 - block_id: - type: object - properties: - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - parts: - type: object - properties: - total: - type: number - example: 0 - hash: - type: string - example: EE5F3404034C524501629B56E0DDC38FAD651F04 - signature: - type: string - example: >- - 7uTC74QlknqYWEwg7Vn6M8Om7FuZ0EO4bjvuj6rwH1mTUJrRuMMZvAAqT9VjNgP0RA/TDp6u/92AqrZfXJSpBQ== - DelegationDelegatorReward: - type: object - properties: - validator_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - reward: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - DelegatorTotalRewards: - type: object - properties: - rewards: - type: array - items: - type: object - properties: - validator_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - reward: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - total: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - BaseReq: - type: object - properties: - from: - type: string - example: cosmos1g9ahr6xhht5rmqven628nklxluzyv8z9jqjcmc - description: Sender address or Keybase name to generate a transaction - memo: - type: string - example: "Sent via Cosmos Voyager \U0001F680" - chain_id: - type: string - example: Cosmos-Hub - account_number: - type: string - example: '0' - sequence: - type: string - example: '1' - gas: - type: string - example: '200000' - gas_adjustment: - type: string - example: '1.2' - fees: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - simulate: - type: boolean - example: false - description: >- - Estimate gas for a transaction (cannot be used in conjunction with - generate_only) - TendermintValidator: - type: object - properties: - address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - pub_key: - type: string - example: >- - cosmosvalconspub1zcjduepq0vu2zgkgk49efa0nqwzndanq5m4c7pa3u4apz4g2r9gspqg6g9cs3k9cuf - voting_power: - type: string - example: '1000' - proposer_priority: - type: string - example: '1000' - TextProposal: - type: object - properties: - proposal_id: - type: integer - title: - type: string - description: - type: string - proposal_type: - type: string - proposal_status: - type: string - final_tally_result: - type: object - properties: - 'yes': - type: string - example: '0.0000000000' - abstain: - type: string - example: '0.0000000000' - 'no': - type: string - example: '0.0000000000' - no_with_veto: - type: string - example: '0.0000000000' - submit_time: - type: string - total_deposit: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - voting_start_time: - type: string - Proposer: - type: object - properties: - proposal_id: - type: string - proposer: - type: string - Deposit: - type: object - properties: - amount: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - proposal_id: - type: string - depositor: - type: string - description: bech32 encoded address - example: cosmos1depk54cuajgkzea6zpgkq36tnjwdzv4afc3d27 - TallyResult: - type: object - properties: - 'yes': - type: string - example: '0.0000000000' - abstain: - type: string - example: '0.0000000000' - 'no': - type: string - example: '0.0000000000' - no_with_veto: - type: string - example: '0.0000000000' - Vote: - type: object - properties: - voter: - type: string - proposal_id: - type: string - option: - type: string - Validator: - type: object - properties: - operator_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - consensus_pubkey: - type: string - example: >- - cosmosvalconspub1zcjduepq0vu2zgkgk49efa0nqwzndanq5m4c7pa3u4apz4g2r9gspqg6g9cs3k9cuf - jailed: - type: boolean - status: - type: integer - tokens: - type: string - delegator_shares: - type: string - description: - type: object - properties: - moniker: - type: string - identity: - type: string - website: - type: string - security_contact: - type: string - details: - type: string - bond_height: - type: string - example: '0' - bond_intra_tx_counter: - type: integer - example: 0 - unbonding_height: - type: string - example: '0' - unbonding_time: - type: string - example: '1970-01-01T00:00:00Z' - commission: - type: object - properties: - rate: - type: string - example: '0' - max_rate: - type: string - example: '0' - max_change_rate: - type: string - example: '0' - update_time: - type: string - example: '1970-01-01T00:00:00Z' - Delegation: - type: object - properties: - delegator_address: - type: string - validator_address: - type: string - shares: - type: string - balance: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - UnbondingDelegationPair: - type: object - properties: - delegator_address: - type: string - validator_address: - type: string - entries: - type: array - items: - type: object - properties: - initial_balance: - type: string - balance: - type: string - creation_height: - type: string - min_time: - type: string - UnbondingEntries: - type: object - properties: - initial_balance: - type: string - balance: - type: string - creation_height: - type: string - min_time: - type: string - UnbondingDelegation: - type: object - properties: - delegator_address: - type: string - validator_address: - type: string - initial_balance: - type: string - balance: - type: string - creation_height: - type: integer - min_time: - type: integer - Redelegation: - type: object - properties: - delegator_address: - type: string - validator_src_address: - type: string - validator_dst_address: - type: string - entries: - type: array - items: - $ref: '#/definitions/Redelegation' - RedelegationEntry: - type: object - properties: - creation_height: - type: integer - completion_time: - type: integer - initial_balance: - type: string - balance: - type: string - shares_dst: - type: string - ValidatorDistInfo: - type: object - properties: - operator_address: - type: string - description: bech32 encoded address - example: cosmosvaloper16xyempempp92x9hyzz9wrgf94r6j9h5f2w4n2l - self_bond_rewards: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - val_commission: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - PublicKey: - type: object - properties: - type: - type: string - value: - type: string - SigningInfo: - type: object - properties: - start_height: - type: string - index_offset: - type: string - jailed_until: - type: string - missed_blocks_counter: - type: string - ParamChange: - type: object - properties: - subspace: - type: string - example: staking - key: - type: string - example: MaxValidators - subkey: - type: string - example: '' - value: - type: object - Supply: - type: object - properties: - total: - type: array - items: - type: object - properties: - denom: - type: string - example: stake - amount: - type: string - example: '50' - cosmos.auth.v1beta1.Params: - type: object - properties: - max_memo_characters: - type: string - format: uint64 - tx_sig_limit: - type: string - format: uint64 - tx_size_cost_per_byte: - type: string - format: uint64 - sig_verify_cost_ed25519: - type: string - format: uint64 - sig_verify_cost_secp256k1: - type: string - format: uint64 - description: Params defines the parameters for the auth module. - cosmos.auth.v1beta1.QueryAccountResponse: - type: object - properties: - account: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - description: >- - QueryAccountResponse is the response type for the Query/Account RPC - method. - cosmos.auth.v1beta1.QueryAccountsResponse: - type: object - properties: - accounts: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up - a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: accounts are the existing accounts - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryAccountsResponse is the response type for the Query/Accounts RPC - method. - cosmos.auth.v1beta1.QueryParamsResponse: - type: object - properties: - params: - description: params defines the parameters of the module. - type: object - properties: - max_memo_characters: - type: string - format: uint64 - tx_sig_limit: - type: string - format: uint64 - tx_size_cost_per_byte: - type: string - format: uint64 - sig_verify_cost_ed25519: - type: string - format: uint64 - sig_verify_cost_secp256k1: - type: string - format: uint64 - description: QueryParamsResponse is the response type for the Query/Params RPC method. - cosmos.base.query.v1beta1.PageRequest: - type: object - properties: - key: - type: string - format: byte - description: |- - key is a value returned in PageResponse.next_key to begin - querying the next page most efficiently. Only one of offset or key - should be set. - offset: - type: string - format: uint64 - description: |- - offset is a numeric offset that can be used when key is unavailable. - It is less efficient than using key. Only one of offset or key should - be set. - limit: - type: string - format: uint64 - description: >- - limit is the total number of results to be returned in the result - page. - - If left empty it will default to a value to be set by each app. - count_total: - type: boolean - format: boolean - description: >- - count_total is set to true to indicate that the result set should - include - - a count of the total number of items available for pagination in UIs. - - count_total is only respected when offset is used. It is ignored when - key - - is set. - reverse: - type: boolean - format: boolean - description: >- - reverse is set to true if results are to be returned in the descending - order. - description: |- - message SomeRequest { - Foo some_parameter = 1; - PageRequest pagination = 2; - } - title: |- - PageRequest is to be embedded in gRPC request messages for efficient - pagination. Ex: - cosmos.base.query.v1beta1.PageResponse: - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: |- - total is total number of results available if PageRequest.count_total - was set, its value is undefined otherwise - description: |- - PageResponse is to be embedded in gRPC response messages where the - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - google.protobuf.Any: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a canonical - form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types that - they - - expect it to use in the context of Any. However, for URLs which use - the - - scheme `http`, `https`, or no scheme, one can optionally set up a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along with - a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - grpc.gateway.runtime.Error: - type: object - properties: - error: - type: string - code: - type: integer - format: int32 - message: - type: string - details: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up - a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - cosmos.bank.v1beta1.DenomOwner: - type: object - properties: - address: - type: string - description: address defines the address that owns a particular denomination. - balance: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - Coin defines a token with a denomination and an amount. - - NOTE: The amount field is an Int which implements the custom method - signatures required by gogoproto. - description: |- - DenomOwner defines structure representing an account that owns or holds a - particular denominated token. It contains the account address and account - balance of the denominated token. - cosmos.bank.v1beta1.DenomUnit: - type: object - properties: - denom: - type: string - description: denom represents the string name of the given denom unit (e.g uatom). - exponent: - type: integer - format: int64 - description: >- - exponent represents power of 10 exponent that one must - - raise the base_denom to in order to equal the given DenomUnit's denom - - 1 denom = 1^exponent base_denom - - (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' - with - - exponent = 6, thus: 1 atom = 10^6 uatom). - aliases: - type: array - items: - type: string - title: aliases is a list of string aliases for the given denom - description: |- - DenomUnit represents a struct that describes a given - denomination unit of the basic token. - cosmos.bank.v1beta1.Metadata: - type: object - properties: - description: - type: string - denom_units: - type: array - items: - type: object - properties: - denom: - type: string - description: >- - denom represents the string name of the given denom unit (e.g - uatom). - exponent: - type: integer - format: int64 - description: >- - exponent represents power of 10 exponent that one must - - raise the base_denom to in order to equal the given DenomUnit's - denom - - 1 denom = 1^exponent base_denom - - (e.g. with a base_denom of uatom, one can create a DenomUnit of - 'atom' with - - exponent = 6, thus: 1 atom = 10^6 uatom). - aliases: - type: array - items: - type: string - title: aliases is a list of string aliases for the given denom - description: |- - DenomUnit represents a struct that describes a given - denomination unit of the basic token. - title: denom_units represents the list of DenomUnit's for a given coin - base: - type: string - description: >- - base represents the base denom (should be the DenomUnit with exponent - = 0). - display: - type: string - description: |- - display indicates the suggested denom that should be - displayed in clients. - name: - type: string - title: 'name defines the name of the token (eg: Cosmos Atom)' - symbol: - type: string - description: >- - symbol is the token symbol usually shown on exchanges (eg: ATOM). This - can - - be the same as the display. - uri: - type: string - description: >- - URI to a document (on or off-chain) that contains additional - information. Optional. - uri_hash: - type: string - description: >- - URIHash is a sha256 hash of a document pointed by URI. It's used to - verify that - - the document didn't change. Optional. - description: |- - Metadata represents a struct that describes - a basic token. - cosmos.bank.v1beta1.Params: - type: object - properties: - send_enabled: - type: array - items: - type: object - properties: - denom: - type: string - enabled: - type: boolean - format: boolean - description: >- - SendEnabled maps coin denom to a send_enabled status (whether a - denom is - - sendable). - default_send_enabled: - type: boolean - format: boolean - description: Params defines the parameters for the bank module. - cosmos.bank.v1beta1.QueryAllBalancesResponse: - type: object - properties: - balances: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - Coin defines a token with a denomination and an amount. - - NOTE: The amount field is an Int which implements the custom method - signatures required by gogoproto. - description: balances is the balances of all the coins. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryAllBalancesResponse is the response type for the Query/AllBalances - RPC - - method. - cosmos.bank.v1beta1.QueryBalanceResponse: - type: object - properties: - balance: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - Coin defines a token with a denomination and an amount. - - NOTE: The amount field is an Int which implements the custom method - signatures required by gogoproto. - description: >- - QueryBalanceResponse is the response type for the Query/Balance RPC - method. - cosmos.bank.v1beta1.QueryDenomMetadataResponse: - type: object - properties: - metadata: - type: object - properties: - description: - type: string - denom_units: - type: array - items: - type: object - properties: - denom: - type: string - description: >- - denom represents the string name of the given denom unit - (e.g uatom). - exponent: - type: integer - format: int64 - description: >- - exponent represents power of 10 exponent that one must - - raise the base_denom to in order to equal the given - DenomUnit's denom - - 1 denom = 1^exponent base_denom - - (e.g. with a base_denom of uatom, one can create a DenomUnit - of 'atom' with - - exponent = 6, thus: 1 atom = 10^6 uatom). - aliases: - type: array - items: - type: string - title: aliases is a list of string aliases for the given denom - description: |- - DenomUnit represents a struct that describes a given - denomination unit of the basic token. - title: denom_units represents the list of DenomUnit's for a given coin - base: - type: string - description: >- - base represents the base denom (should be the DenomUnit with - exponent = 0). - display: - type: string - description: |- - display indicates the suggested denom that should be - displayed in clients. - name: - type: string - title: 'name defines the name of the token (eg: Cosmos Atom)' - symbol: - type: string - description: >- - symbol is the token symbol usually shown on exchanges (eg: ATOM). - This can - - be the same as the display. - uri: - type: string - description: >- - URI to a document (on or off-chain) that contains additional - information. Optional. - uri_hash: - type: string - description: >- - URIHash is a sha256 hash of a document pointed by URI. It's used - to verify that - - the document didn't change. Optional. - description: |- - Metadata represents a struct that describes - a basic token. - description: >- - QueryDenomMetadataResponse is the response type for the - Query/DenomMetadata RPC - - method. - cosmos.bank.v1beta1.QueryDenomOwnersResponse: - type: object - properties: - denom_owners: - type: array - items: - type: object - properties: - address: - type: string - description: address defines the address that owns a particular denomination. - balance: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - description: >- - DenomOwner defines structure representing an account that owns or - holds a - - particular denominated token. It contains the account address and - account - - balance of the denominated token. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC - query. - cosmos.bank.v1beta1.QueryDenomsMetadataResponse: - type: object - properties: - metadatas: - type: array - items: - type: object - properties: - description: - type: string - denom_units: - type: array - items: - type: object - properties: - denom: - type: string - description: >- - denom represents the string name of the given denom unit - (e.g uatom). - exponent: - type: integer - format: int64 - description: >- - exponent represents power of 10 exponent that one must - - raise the base_denom to in order to equal the given - DenomUnit's denom - - 1 denom = 1^exponent base_denom - - (e.g. with a base_denom of uatom, one can create a - DenomUnit of 'atom' with - - exponent = 6, thus: 1 atom = 10^6 uatom). - aliases: - type: array - items: - type: string - title: aliases is a list of string aliases for the given denom - description: |- - DenomUnit represents a struct that describes a given - denomination unit of the basic token. - title: denom_units represents the list of DenomUnit's for a given coin - base: - type: string - description: >- - base represents the base denom (should be the DenomUnit with - exponent = 0). - display: - type: string - description: |- - display indicates the suggested denom that should be - displayed in clients. - name: - type: string - title: 'name defines the name of the token (eg: Cosmos Atom)' - symbol: - type: string - description: >- - symbol is the token symbol usually shown on exchanges (eg: - ATOM). This can - - be the same as the display. - uri: - type: string - description: >- - URI to a document (on or off-chain) that contains additional - information. Optional. - uri_hash: - type: string - description: >- - URIHash is a sha256 hash of a document pointed by URI. It's used - to verify that - - the document didn't change. Optional. - description: |- - Metadata represents a struct that describes - a basic token. - description: >- - metadata provides the client information for all the registered - tokens. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryDenomsMetadataResponse is the response type for the - Query/DenomsMetadata RPC - - method. - cosmos.bank.v1beta1.QueryParamsResponse: - type: object - properties: - params: - type: object - properties: - send_enabled: - type: array - items: - type: object - properties: - denom: - type: string - enabled: - type: boolean - format: boolean - description: >- - SendEnabled maps coin denom to a send_enabled status (whether a - denom is - - sendable). - default_send_enabled: - type: boolean - format: boolean - description: Params defines the parameters for the bank module. - description: >- - QueryParamsResponse defines the response type for querying x/bank - parameters. - cosmos.bank.v1beta1.QuerySupplyOfResponse: - type: object - properties: - amount: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - Coin defines a token with a denomination and an amount. - - NOTE: The amount field is an Int which implements the custom method - signatures required by gogoproto. - description: >- - QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC - method. - cosmos.bank.v1beta1.QueryTotalSupplyResponse: - type: object - properties: - supply: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - Coin defines a token with a denomination and an amount. - - NOTE: The amount field is an Int which implements the custom method - signatures required by gogoproto. - title: supply is the supply of the coins - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - title: >- - QueryTotalSupplyResponse is the response type for the Query/TotalSupply - RPC - - method - cosmos.bank.v1beta1.SendEnabled: - type: object - properties: - denom: - type: string - enabled: - type: boolean - format: boolean - description: |- - SendEnabled maps coin denom to a send_enabled status (whether a denom is - sendable). - cosmos.base.v1beta1.Coin: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - Coin defines a token with a denomination and an amount. - - NOTE: The amount field is an Int which implements the custom method - signatures required by gogoproto. - cosmos.base.tendermint.v1beta1.GetBlockByHeightResponse: - type: object - properties: - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - block: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing a block - in the blockchain, - - including all blockchain data structures and the rules of the - application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - data: - type: object - properties: - txs: - type: array - items: - type: string - format: byte - description: >- - Txs that will be applied by state @ block.Height+1. - - NOTE: not all txs here are valid. We're just agreeing on the - order first. - - This means that block.AppHash does not include these txs. - title: Data contains the set of transactions included in the block - evidence: - type: object - properties: - evidence: - type: array - items: - type: object - properties: - duplicate_vote_evidence: - type: object - properties: - vote_a: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: >- - SignedMsgType is a type of signed message in the - consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or commit vote - from validators for - - consensus. - vote_b: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: >- - SignedMsgType is a type of signed message in the - consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or commit vote - from validators for - - consensus. - total_voting_power: - type: string - format: int64 - validator_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - DuplicateVoteEvidence contains evidence of a validator - signed two conflicting votes. - light_client_attack_evidence: - type: object - properties: - conflicting_block: - type: object - properties: - signed_header: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules - for processing a block in the - blockchain, - - including all blockchain data structures - and the rules of the application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: >- - hashes from the app output from the prev - block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: >- - Header defines the structure of a Tendermint - block header. - commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: >- - BlockIdFlag indicates which BlcokID the - signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: >- - CommitSig is a part of the Vote included - in a Commit. - description: >- - Commit contains the evidence that a block - was committed by a set of validators. - validator_set: - type: object - properties: - validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for - use with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - proposer: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for - use with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - common_height: - type: string - format: int64 - byzantine_validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use - with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - LightClientAttackEvidence contains evidence of a set of - validators attempting to mislead a light client. - last_commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: BlockIdFlag indicates which BlcokID the signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: CommitSig is a part of the Vote included in a Commit. - description: >- - Commit contains the evidence that a block was committed by a set - of validators. - description: >- - GetBlockByHeightResponse is the response type for the - Query/GetBlockByHeight RPC method. - cosmos.base.tendermint.v1beta1.GetLatestBlockResponse: - type: object - properties: - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - block: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing a block - in the blockchain, - - including all blockchain data structures and the rules of the - application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - data: - type: object - properties: - txs: - type: array - items: - type: string - format: byte - description: >- - Txs that will be applied by state @ block.Height+1. - - NOTE: not all txs here are valid. We're just agreeing on the - order first. - - This means that block.AppHash does not include these txs. - title: Data contains the set of transactions included in the block - evidence: - type: object - properties: - evidence: - type: array - items: - type: object - properties: - duplicate_vote_evidence: - type: object - properties: - vote_a: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: >- - SignedMsgType is a type of signed message in the - consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or commit vote - from validators for - - consensus. - vote_b: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: >- - SignedMsgType is a type of signed message in the - consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or commit vote - from validators for - - consensus. - total_voting_power: - type: string - format: int64 - validator_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - DuplicateVoteEvidence contains evidence of a validator - signed two conflicting votes. - light_client_attack_evidence: - type: object - properties: - conflicting_block: - type: object - properties: - signed_header: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules - for processing a block in the - blockchain, - - including all blockchain data structures - and the rules of the application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: >- - hashes from the app output from the prev - block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: >- - Header defines the structure of a Tendermint - block header. - commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: >- - BlockIdFlag indicates which BlcokID the - signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: >- - CommitSig is a part of the Vote included - in a Commit. - description: >- - Commit contains the evidence that a block - was committed by a set of validators. - validator_set: - type: object - properties: - validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for - use with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - proposer: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for - use with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - common_height: - type: string - format: int64 - byzantine_validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use - with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - LightClientAttackEvidence contains evidence of a set of - validators attempting to mislead a light client. - last_commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: BlockIdFlag indicates which BlcokID the signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: CommitSig is a part of the Vote included in a Commit. - description: >- - Commit contains the evidence that a block was committed by a set - of validators. - description: >- - GetLatestBlockResponse is the response type for the Query/GetLatestBlock - RPC method. - cosmos.base.tendermint.v1beta1.GetLatestValidatorSetResponse: - type: object - properties: - block_height: - type: string - format: int64 - validators: - type: array - items: - type: object - properties: - address: - type: string - pub_key: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - description: Validator is the type for the validator-set. - pagination: - description: pagination defines an pagination for the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - GetLatestValidatorSetResponse is the response type for the - Query/GetValidatorSetByHeight RPC method. - cosmos.base.tendermint.v1beta1.GetNodeInfoResponse: - type: object - properties: - default_node_info: - type: object - properties: - protocol_version: - type: object - properties: - p2p: - type: string - format: uint64 - block: - type: string - format: uint64 - app: - type: string - format: uint64 - default_node_id: - type: string - listen_addr: - type: string - network: - type: string - version: - type: string - channels: - type: string - format: byte - moniker: - type: string - other: - type: object - properties: - tx_index: - type: string - rpc_address: - type: string - application_version: - type: object - properties: - name: - type: string - app_name: - type: string - version: - type: string - git_commit: - type: string - build_tags: - type: string - go_version: - type: string - build_deps: - type: array - items: - type: object - properties: - path: - type: string - title: module path - version: - type: string - title: module version - sum: - type: string - title: checksum - title: Module is the type for VersionInfo - cosmos_sdk_version: - type: string - description: VersionInfo is the type for the GetNodeInfoResponse message. - description: >- - GetNodeInfoResponse is the request type for the Query/GetNodeInfo RPC - method. - cosmos.base.tendermint.v1beta1.GetSyncingResponse: - type: object - properties: - syncing: - type: boolean - format: boolean - description: >- - GetSyncingResponse is the response type for the Query/GetSyncing RPC - method. - cosmos.base.tendermint.v1beta1.GetValidatorSetByHeightResponse: - type: object - properties: - block_height: - type: string - format: int64 - validators: - type: array - items: - type: object - properties: - address: - type: string - pub_key: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - description: Validator is the type for the validator-set. - pagination: - description: pagination defines an pagination for the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - GetValidatorSetByHeightResponse is the response type for the - Query/GetValidatorSetByHeight RPC method. - cosmos.base.tendermint.v1beta1.Module: - type: object - properties: - path: - type: string - title: module path - version: - type: string - title: module version - sum: - type: string - title: checksum - title: Module is the type for VersionInfo - cosmos.base.tendermint.v1beta1.Validator: - type: object - properties: - address: - type: string - pub_key: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - description: Validator is the type for the validator-set. - cosmos.base.tendermint.v1beta1.VersionInfo: - type: object - properties: - name: - type: string - app_name: - type: string - version: - type: string - git_commit: - type: string - build_tags: - type: string - go_version: - type: string - build_deps: - type: array - items: - type: object - properties: - path: - type: string - title: module path - version: - type: string - title: module version - sum: - type: string - title: checksum - title: Module is the type for VersionInfo - cosmos_sdk_version: - type: string - description: VersionInfo is the type for the GetNodeInfoResponse message. - tendermint.crypto.PublicKey: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: PublicKey defines the keys available for use with Tendermint Validators - tendermint.p2p.DefaultNodeInfo: - type: object - properties: - protocol_version: - type: object - properties: - p2p: - type: string - format: uint64 - block: - type: string - format: uint64 - app: - type: string - format: uint64 - default_node_id: - type: string - listen_addr: - type: string - network: - type: string - version: - type: string - channels: - type: string - format: byte - moniker: - type: string - other: - type: object - properties: - tx_index: - type: string - rpc_address: - type: string - tendermint.p2p.DefaultNodeInfoOther: - type: object - properties: - tx_index: - type: string - rpc_address: - type: string - tendermint.p2p.ProtocolVersion: - type: object - properties: - p2p: - type: string - format: uint64 - block: - type: string - format: uint64 - app: - type: string - format: uint64 - tendermint.types.Block: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing a block in - the blockchain, - - including all blockchain data structures and the rules of the - application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - data: - type: object - properties: - txs: - type: array - items: - type: string - format: byte - description: >- - Txs that will be applied by state @ block.Height+1. - - NOTE: not all txs here are valid. We're just agreeing on the - order first. - - This means that block.AppHash does not include these txs. - title: Data contains the set of transactions included in the block - evidence: - type: object - properties: - evidence: - type: array - items: - type: object - properties: - duplicate_vote_evidence: - type: object - properties: - vote_a: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: >- - SignedMsgType is a type of signed message in the - consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or commit vote - from validators for - - consensus. - vote_b: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: >- - SignedMsgType is a type of signed message in the - consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or commit vote - from validators for - - consensus. - total_voting_power: - type: string - format: int64 - validator_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - DuplicateVoteEvidence contains evidence of a validator - signed two conflicting votes. - light_client_attack_evidence: - type: object - properties: - conflicting_block: - type: object - properties: - signed_header: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for - processing a block in the blockchain, - - including all blockchain data structures and - the rules of the application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: >- - hashes from the app output from the prev - block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: >- - Header defines the structure of a Tendermint - block header. - commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: >- - BlockIdFlag indicates which BlcokID the - signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: >- - CommitSig is a part of the Vote included - in a Commit. - description: >- - Commit contains the evidence that a block was - committed by a set of validators. - validator_set: - type: object - properties: - validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for - use with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - proposer: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use - with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - common_height: - type: string - format: int64 - byzantine_validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with - Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - LightClientAttackEvidence contains evidence of a set of - validators attempting to mislead a light client. - last_commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: BlockIdFlag indicates which BlcokID the signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: CommitSig is a part of the Vote included in a Commit. - description: >- - Commit contains the evidence that a block was committed by a set of - validators. - tendermint.types.BlockID: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - tendermint.types.BlockIDFlag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: BlockIdFlag indicates which BlcokID the signature is for - tendermint.types.Commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: BlockIdFlag indicates which BlcokID the signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: CommitSig is a part of the Vote included in a Commit. - description: >- - Commit contains the evidence that a block was committed by a set of - validators. - tendermint.types.CommitSig: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: BlockIdFlag indicates which BlcokID the signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: CommitSig is a part of the Vote included in a Commit. - tendermint.types.Data: - type: object - properties: - txs: - type: array - items: - type: string - format: byte - description: >- - Txs that will be applied by state @ block.Height+1. - - NOTE: not all txs here are valid. We're just agreeing on the order - first. - - This means that block.AppHash does not include these txs. - title: Data contains the set of transactions included in the block - tendermint.types.DuplicateVoteEvidence: - type: object - properties: - vote_a: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: |- - SignedMsgType is a type of signed message in the consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or commit vote from validators - for - - consensus. - vote_b: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: |- - SignedMsgType is a type of signed message in the consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or commit vote from validators - for - - consensus. - total_voting_power: - type: string - format: int64 - validator_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - DuplicateVoteEvidence contains evidence of a validator signed two - conflicting votes. - tendermint.types.Evidence: - type: object - properties: - duplicate_vote_evidence: - type: object - properties: - vote_a: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: |- - SignedMsgType is a type of signed message in the consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or commit vote from - validators for - - consensus. - vote_b: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: |- - SignedMsgType is a type of signed message in the consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or commit vote from - validators for - - consensus. - total_voting_power: - type: string - format: int64 - validator_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - DuplicateVoteEvidence contains evidence of a validator signed two - conflicting votes. - light_client_attack_evidence: - type: object - properties: - conflicting_block: - type: object - properties: - signed_header: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing - a block in the blockchain, - - including all blockchain data structures and the rules - of the application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: >- - BlockIdFlag indicates which BlcokID the - signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: >- - CommitSig is a part of the Vote included in a - Commit. - description: >- - Commit contains the evidence that a block was committed by - a set of validators. - validator_set: - type: object - properties: - validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with - Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - proposer: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with - Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - common_height: - type: string - format: int64 - byzantine_validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with Tendermint - Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - LightClientAttackEvidence contains evidence of a set of validators - attempting to mislead a light client. - tendermint.types.EvidenceList: - type: object - properties: - evidence: - type: array - items: - type: object - properties: - duplicate_vote_evidence: - type: object - properties: - vote_a: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: >- - SignedMsgType is a type of signed message in the - consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or commit vote from - validators for - - consensus. - vote_b: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: >- - SignedMsgType is a type of signed message in the - consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: >- - Vote represents a prevote, precommit, or commit vote from - validators for - - consensus. - total_voting_power: - type: string - format: int64 - validator_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - DuplicateVoteEvidence contains evidence of a validator signed - two conflicting votes. - light_client_attack_evidence: - type: object - properties: - conflicting_block: - type: object - properties: - signed_header: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for - processing a block in the blockchain, - - including all blockchain data structures and the - rules of the application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: >- - Header defines the structure of a Tendermint block - header. - commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: >- - BlockIdFlag indicates which BlcokID the - signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: >- - CommitSig is a part of the Vote included in a - Commit. - description: >- - Commit contains the evidence that a block was - committed by a set of validators. - validator_set: - type: object - properties: - validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use - with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - proposer: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use - with Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - common_height: - type: string - format: int64 - byzantine_validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with - Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - LightClientAttackEvidence contains evidence of a set of - validators attempting to mislead a light client. - tendermint.types.Header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing a block in the - blockchain, - - including all blockchain data structures and the rules of the - application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - tendermint.types.LightBlock: - type: object - properties: - signed_header: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing a block - in the blockchain, - - including all blockchain data structures and the rules of the - application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: BlockIdFlag indicates which BlcokID the signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: CommitSig is a part of the Vote included in a Commit. - description: >- - Commit contains the evidence that a block was committed by a set - of validators. - validator_set: - type: object - properties: - validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with Tendermint - Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - proposer: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with Tendermint - Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - tendermint.types.LightClientAttackEvidence: - type: object - properties: - conflicting_block: - type: object - properties: - signed_header: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing a - block in the blockchain, - - including all blockchain data structures and the rules of - the application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: >- - BlockIdFlag indicates which BlcokID the signature is - for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: CommitSig is a part of the Vote included in a Commit. - description: >- - Commit contains the evidence that a block was committed by a - set of validators. - validator_set: - type: object - properties: - validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with - Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - proposer: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with - Tendermint Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - common_height: - type: string - format: int64 - byzantine_validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with Tendermint - Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - timestamp: - type: string - format: date-time - description: >- - LightClientAttackEvidence contains evidence of a set of validators - attempting to mislead a light client. - tendermint.types.PartSetHeader: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - tendermint.types.SignedHeader: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing a block in - the blockchain, - - including all blockchain data structures and the rules of the - application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - commit: - type: object - properties: - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - signatures: - type: array - items: - type: object - properties: - block_id_flag: - type: string - enum: - - BLOCK_ID_FLAG_UNKNOWN - - BLOCK_ID_FLAG_ABSENT - - BLOCK_ID_FLAG_COMMIT - - BLOCK_ID_FLAG_NIL - default: BLOCK_ID_FLAG_UNKNOWN - title: BlockIdFlag indicates which BlcokID the signature is for - validator_address: - type: string - format: byte - timestamp: - type: string - format: date-time - signature: - type: string - format: byte - description: CommitSig is a part of the Vote included in a Commit. - description: >- - Commit contains the evidence that a block was committed by a set of - validators. - tendermint.types.SignedMsgType: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: |- - SignedMsgType is a type of signed message in the consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - tendermint.types.Validator: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with Tendermint - Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - tendermint.types.ValidatorSet: - type: object - properties: - validators: - type: array - items: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with Tendermint - Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - proposer: - type: object - properties: - address: - type: string - format: byte - pub_key: - type: object - properties: - ed25519: - type: string - format: byte - secp256k1: - type: string - format: byte - title: >- - PublicKey defines the keys available for use with Tendermint - Validators - voting_power: - type: string - format: int64 - proposer_priority: - type: string - format: int64 - total_voting_power: - type: string - format: int64 - tendermint.types.Vote: - type: object - properties: - type: - type: string - enum: - - SIGNED_MSG_TYPE_UNKNOWN - - SIGNED_MSG_TYPE_PREVOTE - - SIGNED_MSG_TYPE_PRECOMMIT - - SIGNED_MSG_TYPE_PROPOSAL - default: SIGNED_MSG_TYPE_UNKNOWN - description: |- - SignedMsgType is a type of signed message in the consensus. - - - SIGNED_MSG_TYPE_PREVOTE: Votes - - SIGNED_MSG_TYPE_PROPOSAL: Proposals - height: - type: string - format: int64 - round: - type: integer - format: int32 - block_id: - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - title: BlockID - timestamp: - type: string - format: date-time - validator_address: - type: string - format: byte - validator_index: - type: integer - format: int32 - signature: - type: string - format: byte - description: |- - Vote represents a prevote, precommit, or commit vote from validators for - consensus. - tendermint.version.Consensus: - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing a block in the - blockchain, - - including all blockchain data structures and the rules of the - application's - - state transition machine. - cosmos.base.v1beta1.DecCoin: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - DecCoin defines a token with a denomination and a decimal amount. - - NOTE: The amount field is an Dec which implements the custom method - signatures required by gogoproto. - cosmos.distribution.v1beta1.DelegationDelegatorReward: - type: object - properties: - validator_address: - type: string - reward: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - DecCoin defines a token with a denomination and a decimal amount. - - NOTE: The amount field is an Dec which implements the custom method - signatures required by gogoproto. - description: |- - DelegationDelegatorReward represents the properties - of a delegator's delegation reward. - cosmos.distribution.v1beta1.Params: - type: object - properties: - community_tax: - type: string - base_proposer_reward: - type: string - bonus_proposer_reward: - type: string - withdraw_addr_enabled: - type: boolean - format: boolean - description: Params defines the set of params for the distribution module. - cosmos.distribution.v1beta1.QueryCommunityPoolResponse: - type: object - properties: - pool: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - DecCoin defines a token with a denomination and a decimal amount. - - NOTE: The amount field is an Dec which implements the custom method - signatures required by gogoproto. - description: pool defines community pool's coins. - description: >- - QueryCommunityPoolResponse is the response type for the - Query/CommunityPool - - RPC method. - cosmos.distribution.v1beta1.QueryDelegationRewardsResponse: - type: object - properties: - rewards: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - DecCoin defines a token with a denomination and a decimal amount. - - NOTE: The amount field is an Dec which implements the custom method - signatures required by gogoproto. - description: rewards defines the rewards accrued by a delegation. - description: |- - QueryDelegationRewardsResponse is the response type for the - Query/DelegationRewards RPC method. - cosmos.distribution.v1beta1.QueryDelegationTotalRewardsResponse: - type: object - properties: - rewards: - type: array - items: - type: object - properties: - validator_address: - type: string - reward: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - DecCoin defines a token with a denomination and a decimal - amount. - - - NOTE: The amount field is an Dec which implements the custom - method - - signatures required by gogoproto. - description: |- - DelegationDelegatorReward represents the properties - of a delegator's delegation reward. - description: rewards defines all the rewards accrued by a delegator. - total: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - DecCoin defines a token with a denomination and a decimal amount. - - NOTE: The amount field is an Dec which implements the custom method - signatures required by gogoproto. - description: total defines the sum of all the rewards. - description: |- - QueryDelegationTotalRewardsResponse is the response type for the - Query/DelegationTotalRewards RPC method. - cosmos.distribution.v1beta1.QueryDelegatorValidatorsResponse: - type: object - properties: - validators: - type: array - items: - type: string - description: validators defines the validators a delegator is delegating for. - description: |- - QueryDelegatorValidatorsResponse is the response type for the - Query/DelegatorValidators RPC method. - cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressResponse: - type: object - properties: - withdraw_address: - type: string - description: withdraw_address defines the delegator address to query for. - description: |- - QueryDelegatorWithdrawAddressResponse is the response type for the - Query/DelegatorWithdrawAddress RPC method. - cosmos.distribution.v1beta1.QueryParamsResponse: - type: object - properties: - params: - description: params defines the parameters of the module. - type: object - properties: - community_tax: - type: string - base_proposer_reward: - type: string - bonus_proposer_reward: - type: string - withdraw_addr_enabled: - type: boolean - format: boolean - description: QueryParamsResponse is the response type for the Query/Params RPC method. - cosmos.distribution.v1beta1.QueryValidatorCommissionResponse: - type: object - properties: - commission: - description: commission defines the commision the validator received. - type: object - properties: - commission: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - DecCoin defines a token with a denomination and a decimal - amount. - - - NOTE: The amount field is an Dec which implements the custom - method - - signatures required by gogoproto. - title: |- - QueryValidatorCommissionResponse is the response type for the - Query/ValidatorCommission RPC method - cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsResponse: - type: object - properties: - rewards: - type: object - properties: - rewards: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - DecCoin defines a token with a denomination and a decimal - amount. - - - NOTE: The amount field is an Dec which implements the custom - method - - signatures required by gogoproto. - description: >- - ValidatorOutstandingRewards represents outstanding (un-withdrawn) - rewards - - for a validator inexpensive to track, allows simple sanity checks. - description: |- - QueryValidatorOutstandingRewardsResponse is the response type for the - Query/ValidatorOutstandingRewards RPC method. - cosmos.distribution.v1beta1.QueryValidatorSlashesResponse: - type: object - properties: - slashes: - type: array - items: - type: object - properties: - validator_period: - type: string - format: uint64 - fraction: - type: string - description: |- - ValidatorSlashEvent represents a validator slash event. - Height is implicit within the store key. - This is needed to calculate appropriate amount of staking tokens - for delegations which are withdrawn after a slash has occurred. - description: slashes defines the slashes the validator received. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - QueryValidatorSlashesResponse is the response type for the - Query/ValidatorSlashes RPC method. - cosmos.distribution.v1beta1.ValidatorAccumulatedCommission: - type: object - properties: - commission: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - DecCoin defines a token with a denomination and a decimal amount. - - NOTE: The amount field is an Dec which implements the custom method - signatures required by gogoproto. - description: |- - ValidatorAccumulatedCommission represents accumulated commission - for a validator kept as a running counter, can be withdrawn at any time. - cosmos.distribution.v1beta1.ValidatorOutstandingRewards: - type: object - properties: - rewards: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - DecCoin defines a token with a denomination and a decimal amount. - - NOTE: The amount field is an Dec which implements the custom method - signatures required by gogoproto. - description: |- - ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards - for a validator inexpensive to track, allows simple sanity checks. - cosmos.distribution.v1beta1.ValidatorSlashEvent: - type: object - properties: - validator_period: - type: string - format: uint64 - fraction: - type: string - description: |- - ValidatorSlashEvent represents a validator slash event. - Height is implicit within the store key. - This is needed to calculate appropriate amount of staking tokens - for delegations which are withdrawn after a slash has occurred. - cosmos.evidence.v1beta1.QueryAllEvidenceResponse: - type: object - properties: - evidence: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up - a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - description: evidence returns all evidences. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryAllEvidenceResponse is the response type for the Query/AllEvidence - RPC - - method. - cosmos.evidence.v1beta1.QueryEvidenceResponse: - type: object - properties: - evidence: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - description: >- - QueryEvidenceResponse is the response type for the Query/Evidence RPC - method. - cosmos.gov.v1beta1.Deposit: - type: object - properties: - proposal_id: - type: string - format: uint64 - depositor: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - Coin defines a token with a denomination and an amount. - - NOTE: The amount field is an Int which implements the custom method - signatures required by gogoproto. - description: |- - Deposit defines an amount deposited by an account address to an active - proposal. - cosmos.gov.v1beta1.DepositParams: - type: object - properties: - min_deposit: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - Coin defines a token with a denomination and an amount. - - NOTE: The amount field is an Int which implements the custom method - signatures required by gogoproto. - description: Minimum deposit for a proposal to enter voting period. - max_deposit_period: - type: string - description: >- - Maximum period for Atom holders to deposit on a proposal. Initial - value: 2 - months. - description: DepositParams defines the params for deposits on governance proposals. - cosmos.gov.v1beta1.Proposal: - type: object - properties: - proposal_id: - type: string - format: uint64 - content: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - status: - type: string - enum: - - PROPOSAL_STATUS_UNSPECIFIED - - PROPOSAL_STATUS_DEPOSIT_PERIOD - - PROPOSAL_STATUS_VOTING_PERIOD - - PROPOSAL_STATUS_PASSED - - PROPOSAL_STATUS_REJECTED - - PROPOSAL_STATUS_FAILED - default: PROPOSAL_STATUS_UNSPECIFIED - description: |- - ProposalStatus enumerates the valid statuses of a proposal. - - - PROPOSAL_STATUS_UNSPECIFIED: PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. - - PROPOSAL_STATUS_DEPOSIT_PERIOD: PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - period. - - PROPOSAL_STATUS_VOTING_PERIOD: PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - period. - - PROPOSAL_STATUS_PASSED: PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - passed. - - PROPOSAL_STATUS_REJECTED: PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - been rejected. - - PROPOSAL_STATUS_FAILED: PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - failed. - final_tally_result: - type: object - properties: - 'yes': - type: string - abstain: - type: string - 'no': - type: string - no_with_veto: - type: string - description: TallyResult defines a standard tally for a governance proposal. - submit_time: - type: string - format: date-time - deposit_end_time: - type: string - format: date-time - total_deposit: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - Coin defines a token with a denomination and an amount. - - NOTE: The amount field is an Int which implements the custom method - signatures required by gogoproto. - voting_start_time: - type: string - format: date-time - voting_end_time: - type: string - format: date-time - description: Proposal defines the core field members of a governance proposal. - cosmos.gov.v1beta1.ProposalStatus: - type: string - enum: - - PROPOSAL_STATUS_UNSPECIFIED - - PROPOSAL_STATUS_DEPOSIT_PERIOD - - PROPOSAL_STATUS_VOTING_PERIOD - - PROPOSAL_STATUS_PASSED - - PROPOSAL_STATUS_REJECTED - - PROPOSAL_STATUS_FAILED - default: PROPOSAL_STATUS_UNSPECIFIED - description: |- - ProposalStatus enumerates the valid statuses of a proposal. - - - PROPOSAL_STATUS_UNSPECIFIED: PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. - - PROPOSAL_STATUS_DEPOSIT_PERIOD: PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - period. - - PROPOSAL_STATUS_VOTING_PERIOD: PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - period. - - PROPOSAL_STATUS_PASSED: PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - passed. - - PROPOSAL_STATUS_REJECTED: PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - been rejected. - - PROPOSAL_STATUS_FAILED: PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - failed. - cosmos.gov.v1beta1.QueryDepositResponse: - type: object - properties: - deposit: - type: object - properties: - proposal_id: - type: string - format: uint64 - depositor: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - description: |- - Deposit defines an amount deposited by an account address to an active - proposal. - description: >- - QueryDepositResponse is the response type for the Query/Deposit RPC - method. - cosmos.gov.v1beta1.QueryDepositsResponse: - type: object - properties: - deposits: - type: array - items: - type: object - properties: - proposal_id: - type: string - format: uint64 - depositor: - type: string - amount: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - description: >- - Deposit defines an amount deposited by an account address to an - active - - proposal. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryDepositsResponse is the response type for the Query/Deposits RPC - method. - cosmos.gov.v1beta1.QueryParamsResponse: - type: object - properties: - voting_params: - description: voting_params defines the parameters related to voting. - type: object - properties: - voting_period: - type: string - description: Length of the voting period. - deposit_params: - description: deposit_params defines the parameters related to deposit. - type: object - properties: - min_deposit: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - description: Minimum deposit for a proposal to enter voting period. - max_deposit_period: - type: string - description: >- - Maximum period for Atom holders to deposit on a proposal. Initial - value: 2 - months. - tally_params: - description: tally_params defines the parameters related to tally. - type: object - properties: - quorum: - type: string - format: byte - description: >- - Minimum percentage of total stake needed to vote for a result to - be - considered valid. - threshold: - type: string - format: byte - description: >- - Minimum proportion of Yes votes for proposal to pass. Default - value: 0.5. - veto_threshold: - type: string - format: byte - description: >- - Minimum value of Veto votes to Total votes ratio for proposal to - be - vetoed. Default value: 1/3. - description: QueryParamsResponse is the response type for the Query/Params RPC method. - cosmos.gov.v1beta1.QueryProposalResponse: - type: object - properties: - proposal: - type: object - properties: - proposal_id: - type: string - format: uint64 - content: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - status: - type: string - enum: - - PROPOSAL_STATUS_UNSPECIFIED - - PROPOSAL_STATUS_DEPOSIT_PERIOD - - PROPOSAL_STATUS_VOTING_PERIOD - - PROPOSAL_STATUS_PASSED - - PROPOSAL_STATUS_REJECTED - - PROPOSAL_STATUS_FAILED - default: PROPOSAL_STATUS_UNSPECIFIED - description: |- - ProposalStatus enumerates the valid statuses of a proposal. - - - PROPOSAL_STATUS_UNSPECIFIED: PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. - - PROPOSAL_STATUS_DEPOSIT_PERIOD: PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - period. - - PROPOSAL_STATUS_VOTING_PERIOD: PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - period. - - PROPOSAL_STATUS_PASSED: PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - passed. - - PROPOSAL_STATUS_REJECTED: PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - been rejected. - - PROPOSAL_STATUS_FAILED: PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - failed. - final_tally_result: - type: object - properties: - 'yes': - type: string - abstain: - type: string - 'no': - type: string - no_with_veto: - type: string - description: TallyResult defines a standard tally for a governance proposal. - submit_time: - type: string - format: date-time - deposit_end_time: - type: string - format: date-time - total_deposit: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - voting_start_time: - type: string - format: date-time - voting_end_time: - type: string - format: date-time - description: Proposal defines the core field members of a governance proposal. - description: >- - QueryProposalResponse is the response type for the Query/Proposal RPC - method. - cosmos.gov.v1beta1.QueryProposalsResponse: - type: object - properties: - proposals: - type: array - items: - type: object - properties: - proposal_id: - type: string - format: uint64 - content: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - status: - type: string - enum: - - PROPOSAL_STATUS_UNSPECIFIED - - PROPOSAL_STATUS_DEPOSIT_PERIOD - - PROPOSAL_STATUS_VOTING_PERIOD - - PROPOSAL_STATUS_PASSED - - PROPOSAL_STATUS_REJECTED - - PROPOSAL_STATUS_FAILED - default: PROPOSAL_STATUS_UNSPECIFIED - description: |- - ProposalStatus enumerates the valid statuses of a proposal. - - - PROPOSAL_STATUS_UNSPECIFIED: PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. - - PROPOSAL_STATUS_DEPOSIT_PERIOD: PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - period. - - PROPOSAL_STATUS_VOTING_PERIOD: PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - period. - - PROPOSAL_STATUS_PASSED: PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - passed. - - PROPOSAL_STATUS_REJECTED: PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - been rejected. - - PROPOSAL_STATUS_FAILED: PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - failed. - final_tally_result: - type: object - properties: - 'yes': - type: string - abstain: - type: string - 'no': - type: string - no_with_veto: - type: string - description: TallyResult defines a standard tally for a governance proposal. - submit_time: - type: string - format: date-time - deposit_end_time: - type: string - format: date-time - total_deposit: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - voting_start_time: - type: string - format: date-time - voting_end_time: - type: string - format: date-time - description: Proposal defines the core field members of a governance proposal. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - QueryProposalsResponse is the response type for the Query/Proposals RPC - method. - cosmos.gov.v1beta1.QueryTallyResultResponse: - type: object - properties: - tally: - type: object - properties: - 'yes': - type: string - abstain: - type: string - 'no': - type: string - no_with_veto: - type: string - description: TallyResult defines a standard tally for a governance proposal. - description: >- - QueryTallyResultResponse is the response type for the Query/Tally RPC - method. - cosmos.gov.v1beta1.QueryVoteResponse: - type: object - properties: - vote: - type: object - properties: - proposal_id: - type: string - format: uint64 - voter: - type: string - option: - description: >- - Deprecated: Prefer to use `options` instead. This field is set in - queries - - if and only if `len(options) == 1` and that option has weight 1. - In all - - other cases, this field will default to VOTE_OPTION_UNSPECIFIED. - type: string - enum: - - VOTE_OPTION_UNSPECIFIED - - VOTE_OPTION_YES - - VOTE_OPTION_ABSTAIN - - VOTE_OPTION_NO - - VOTE_OPTION_NO_WITH_VETO - default: VOTE_OPTION_UNSPECIFIED - options: - type: array - items: - type: object - properties: - option: - type: string - enum: - - VOTE_OPTION_UNSPECIFIED - - VOTE_OPTION_YES - - VOTE_OPTION_ABSTAIN - - VOTE_OPTION_NO - - VOTE_OPTION_NO_WITH_VETO - default: VOTE_OPTION_UNSPECIFIED - description: >- - VoteOption enumerates the valid vote options for a given - governance proposal. - - - VOTE_OPTION_UNSPECIFIED: VOTE_OPTION_UNSPECIFIED defines a no-op vote option. - - VOTE_OPTION_YES: VOTE_OPTION_YES defines a yes vote option. - - VOTE_OPTION_ABSTAIN: VOTE_OPTION_ABSTAIN defines an abstain vote option. - - VOTE_OPTION_NO: VOTE_OPTION_NO defines a no vote option. - - VOTE_OPTION_NO_WITH_VETO: VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. - weight: - type: string - description: WeightedVoteOption defines a unit of vote for vote split. - description: |- - Vote defines a vote on a governance proposal. - A Vote consists of a proposal ID, the voter, and the vote option. - description: QueryVoteResponse is the response type for the Query/Vote RPC method. - cosmos.gov.v1beta1.QueryVotesResponse: - type: object - properties: - votes: - type: array - items: - type: object - properties: - proposal_id: - type: string - format: uint64 - voter: - type: string - option: - description: >- - Deprecated: Prefer to use `options` instead. This field is set - in queries - - if and only if `len(options) == 1` and that option has weight 1. - In all - - other cases, this field will default to VOTE_OPTION_UNSPECIFIED. - type: string - enum: - - VOTE_OPTION_UNSPECIFIED - - VOTE_OPTION_YES - - VOTE_OPTION_ABSTAIN - - VOTE_OPTION_NO - - VOTE_OPTION_NO_WITH_VETO - default: VOTE_OPTION_UNSPECIFIED - options: - type: array - items: - type: object - properties: - option: - type: string - enum: - - VOTE_OPTION_UNSPECIFIED - - VOTE_OPTION_YES - - VOTE_OPTION_ABSTAIN - - VOTE_OPTION_NO - - VOTE_OPTION_NO_WITH_VETO - default: VOTE_OPTION_UNSPECIFIED - description: >- - VoteOption enumerates the valid vote options for a given - governance proposal. - - - VOTE_OPTION_UNSPECIFIED: VOTE_OPTION_UNSPECIFIED defines a no-op vote option. - - VOTE_OPTION_YES: VOTE_OPTION_YES defines a yes vote option. - - VOTE_OPTION_ABSTAIN: VOTE_OPTION_ABSTAIN defines an abstain vote option. - - VOTE_OPTION_NO: VOTE_OPTION_NO defines a no vote option. - - VOTE_OPTION_NO_WITH_VETO: VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. - weight: - type: string - description: WeightedVoteOption defines a unit of vote for vote split. - description: |- - Vote defines a vote on a governance proposal. - A Vote consists of a proposal ID, the voter, and the vote option. - description: votes defined the queried votes. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: QueryVotesResponse is the response type for the Query/Votes RPC method. - cosmos.gov.v1beta1.TallyParams: - type: object - properties: - quorum: - type: string - format: byte - description: |- - Minimum percentage of total stake needed to vote for a result to be - considered valid. - threshold: - type: string - format: byte - description: >- - Minimum proportion of Yes votes for proposal to pass. Default value: - 0.5. - veto_threshold: - type: string - format: byte - description: |- - Minimum value of Veto votes to Total votes ratio for proposal to be - vetoed. Default value: 1/3. - description: TallyParams defines the params for tallying votes on governance proposals. - cosmos.gov.v1beta1.TallyResult: - type: object - properties: - 'yes': - type: string - abstain: - type: string - 'no': - type: string - no_with_veto: - type: string - description: TallyResult defines a standard tally for a governance proposal. - cosmos.gov.v1beta1.Vote: - type: object - properties: - proposal_id: - type: string - format: uint64 - voter: - type: string - option: - description: >- - Deprecated: Prefer to use `options` instead. This field is set in - queries - - if and only if `len(options) == 1` and that option has weight 1. In - all - - other cases, this field will default to VOTE_OPTION_UNSPECIFIED. - type: string - enum: - - VOTE_OPTION_UNSPECIFIED - - VOTE_OPTION_YES - - VOTE_OPTION_ABSTAIN - - VOTE_OPTION_NO - - VOTE_OPTION_NO_WITH_VETO - default: VOTE_OPTION_UNSPECIFIED - options: - type: array - items: - type: object - properties: - option: - type: string - enum: - - VOTE_OPTION_UNSPECIFIED - - VOTE_OPTION_YES - - VOTE_OPTION_ABSTAIN - - VOTE_OPTION_NO - - VOTE_OPTION_NO_WITH_VETO - default: VOTE_OPTION_UNSPECIFIED - description: >- - VoteOption enumerates the valid vote options for a given - governance proposal. - - - VOTE_OPTION_UNSPECIFIED: VOTE_OPTION_UNSPECIFIED defines a no-op vote option. - - VOTE_OPTION_YES: VOTE_OPTION_YES defines a yes vote option. - - VOTE_OPTION_ABSTAIN: VOTE_OPTION_ABSTAIN defines an abstain vote option. - - VOTE_OPTION_NO: VOTE_OPTION_NO defines a no vote option. - - VOTE_OPTION_NO_WITH_VETO: VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. - weight: - type: string - description: WeightedVoteOption defines a unit of vote for vote split. - description: |- - Vote defines a vote on a governance proposal. - A Vote consists of a proposal ID, the voter, and the vote option. - cosmos.gov.v1beta1.VoteOption: - type: string - enum: - - VOTE_OPTION_UNSPECIFIED - - VOTE_OPTION_YES - - VOTE_OPTION_ABSTAIN - - VOTE_OPTION_NO - - VOTE_OPTION_NO_WITH_VETO - default: VOTE_OPTION_UNSPECIFIED - description: >- - VoteOption enumerates the valid vote options for a given governance - proposal. - - - VOTE_OPTION_UNSPECIFIED: VOTE_OPTION_UNSPECIFIED defines a no-op vote option. - - VOTE_OPTION_YES: VOTE_OPTION_YES defines a yes vote option. - - VOTE_OPTION_ABSTAIN: VOTE_OPTION_ABSTAIN defines an abstain vote option. - - VOTE_OPTION_NO: VOTE_OPTION_NO defines a no vote option. - - VOTE_OPTION_NO_WITH_VETO: VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. - cosmos.gov.v1beta1.VotingParams: - type: object - properties: - voting_period: - type: string - description: Length of the voting period. - description: VotingParams defines the params for voting on governance proposals. - cosmos.gov.v1beta1.WeightedVoteOption: - type: object - properties: - option: - type: string - enum: - - VOTE_OPTION_UNSPECIFIED - - VOTE_OPTION_YES - - VOTE_OPTION_ABSTAIN - - VOTE_OPTION_NO - - VOTE_OPTION_NO_WITH_VETO - default: VOTE_OPTION_UNSPECIFIED - description: >- - VoteOption enumerates the valid vote options for a given governance - proposal. - - - VOTE_OPTION_UNSPECIFIED: VOTE_OPTION_UNSPECIFIED defines a no-op vote option. - - VOTE_OPTION_YES: VOTE_OPTION_YES defines a yes vote option. - - VOTE_OPTION_ABSTAIN: VOTE_OPTION_ABSTAIN defines an abstain vote option. - - VOTE_OPTION_NO: VOTE_OPTION_NO defines a no vote option. - - VOTE_OPTION_NO_WITH_VETO: VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. - weight: - type: string - description: WeightedVoteOption defines a unit of vote for vote split. - cosmos.mint.v1beta1.Params: - type: object - properties: - mint_denom: - type: string - title: type of coin to mint - inflation_rate_change: - type: string - title: maximum annual change in inflation rate - inflation_max: - type: string - title: maximum inflation rate - inflation_min: - type: string - title: minimum inflation rate - goal_bonded: - type: string - title: goal of percent bonded atoms - blocks_per_year: - type: string - format: uint64 - title: expected blocks per year - description: Params holds parameters for the mint module. - cosmos.mint.v1beta1.QueryAnnualProvisionsResponse: - type: object - properties: - annual_provisions: - type: string - format: byte - description: annual_provisions is the current minting annual provisions value. - description: |- - QueryAnnualProvisionsResponse is the response type for the - Query/AnnualProvisions RPC method. - cosmos.mint.v1beta1.QueryInflationResponse: - type: object - properties: - inflation: - type: string - format: byte - description: inflation is the current minting inflation value. - description: |- - QueryInflationResponse is the response type for the Query/Inflation RPC - method. - cosmos.mint.v1beta1.QueryParamsResponse: - type: object - properties: - params: - description: params defines the parameters of the module. - type: object - properties: - mint_denom: - type: string - title: type of coin to mint - inflation_rate_change: - type: string - title: maximum annual change in inflation rate - inflation_max: - type: string - title: maximum inflation rate - inflation_min: - type: string - title: minimum inflation rate - goal_bonded: - type: string - title: goal of percent bonded atoms - blocks_per_year: - type: string - format: uint64 - title: expected blocks per year - description: QueryParamsResponse is the response type for the Query/Params RPC method. - cosmos.params.v1beta1.ParamChange: - type: object - properties: - subspace: - type: string - key: - type: string - value: - type: string - description: |- - ParamChange defines an individual parameter change, for use in - ParameterChangeProposal. - cosmos.params.v1beta1.QueryParamsResponse: - type: object - properties: - param: - description: param defines the queried parameter. - type: object - properties: - subspace: - type: string - key: - type: string - value: - type: string - description: QueryParamsResponse is response type for the Query/Params RPC method. - cosmos.slashing.v1beta1.Params: - type: object - properties: - signed_blocks_window: - type: string - format: int64 - min_signed_per_window: - type: string - format: byte - downtime_jail_duration: - type: string - slash_fraction_double_sign: - type: string - format: byte - slash_fraction_downtime: - type: string - format: byte - description: Params represents the parameters used for by the slashing module. - cosmos.slashing.v1beta1.QueryParamsResponse: - type: object - properties: - params: - type: object - properties: - signed_blocks_window: - type: string - format: int64 - min_signed_per_window: - type: string - format: byte - downtime_jail_duration: - type: string - slash_fraction_double_sign: - type: string - format: byte - slash_fraction_downtime: - type: string - format: byte - description: Params represents the parameters used for by the slashing module. - title: QueryParamsResponse is the response type for the Query/Params RPC method - cosmos.slashing.v1beta1.QuerySigningInfoResponse: - type: object - properties: - val_signing_info: - type: object - properties: - address: - type: string - start_height: - type: string - format: int64 - title: Height at which validator was first a candidate OR was unjailed - index_offset: - type: string - format: int64 - description: >- - Index which is incremented each time the validator was a bonded - - in a block and may have signed a precommit or not. This in - conjunction with the - - `SignedBlocksWindow` param determines the index in the - `MissedBlocksBitArray`. - jailed_until: - type: string - format: date-time - description: >- - Timestamp until which the validator is jailed due to liveness - downtime. - tombstoned: - type: boolean - format: boolean - description: >- - Whether or not a validator has been tombstoned (killed out of - validator set). It is set - - once the validator commits an equivocation or for any other - configured misbehiavor. - missed_blocks_counter: - type: string - format: int64 - description: >- - A counter kept to avoid unnecessary array reads. - - Note that `Sum(MissedBlocksBitArray)` always equals - `MissedBlocksCounter`. - description: >- - ValidatorSigningInfo defines a validator's signing info for monitoring - their - - liveness activity. - title: val_signing_info is the signing info of requested val cons address - title: >- - QuerySigningInfoResponse is the response type for the Query/SigningInfo - RPC - - method - cosmos.slashing.v1beta1.QuerySigningInfosResponse: - type: object - properties: - info: - type: array - items: - type: object - properties: - address: - type: string - start_height: - type: string - format: int64 - title: Height at which validator was first a candidate OR was unjailed - index_offset: - type: string - format: int64 - description: >- - Index which is incremented each time the validator was a bonded - - in a block and may have signed a precommit or not. This in - conjunction with the - - `SignedBlocksWindow` param determines the index in the - `MissedBlocksBitArray`. - jailed_until: - type: string - format: date-time - description: >- - Timestamp until which the validator is jailed due to liveness - downtime. - tombstoned: - type: boolean - format: boolean - description: >- - Whether or not a validator has been tombstoned (killed out of - validator set). It is set - - once the validator commits an equivocation or for any other - configured misbehiavor. - missed_blocks_counter: - type: string - format: int64 - description: >- - A counter kept to avoid unnecessary array reads. - - Note that `Sum(MissedBlocksBitArray)` always equals - `MissedBlocksCounter`. - description: >- - ValidatorSigningInfo defines a validator's signing info for - monitoring their - - liveness activity. - title: info is the signing info of all validators - pagination: - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - PageResponse is to be embedded in gRPC response messages where the - corresponding request message has used PageRequest. - - message SomeResponse { - repeated Bar results = 1; - PageResponse page = 2; - } - title: >- - QuerySigningInfosResponse is the response type for the Query/SigningInfos - RPC - - method - cosmos.slashing.v1beta1.ValidatorSigningInfo: - type: object - properties: - address: - type: string - start_height: - type: string - format: int64 - title: Height at which validator was first a candidate OR was unjailed - index_offset: - type: string - format: int64 - description: >- - Index which is incremented each time the validator was a bonded - - in a block and may have signed a precommit or not. This in conjunction - with the - - `SignedBlocksWindow` param determines the index in the - `MissedBlocksBitArray`. - jailed_until: - type: string - format: date-time - description: >- - Timestamp until which the validator is jailed due to liveness - downtime. - tombstoned: - type: boolean - format: boolean - description: >- - Whether or not a validator has been tombstoned (killed out of - validator set). It is set - - once the validator commits an equivocation or for any other configured - misbehiavor. - missed_blocks_counter: - type: string - format: int64 - description: >- - A counter kept to avoid unnecessary array reads. - - Note that `Sum(MissedBlocksBitArray)` always equals - `MissedBlocksCounter`. - description: >- - ValidatorSigningInfo defines a validator's signing info for monitoring - their - - liveness activity. - cosmos.staking.v1beta1.BondStatus: - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - description: |- - BondStatus is the status of a validator. - - - BOND_STATUS_UNSPECIFIED: UNSPECIFIED defines an invalid validator status. - - BOND_STATUS_UNBONDED: UNBONDED defines a validator that is not bonded. - - BOND_STATUS_UNBONDING: UNBONDING defines a validator that is unbonding. - - BOND_STATUS_BONDED: BONDED defines a validator that is bonded. - cosmos.staking.v1beta1.Commission: - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission rates to be used for - creating a validator. - type: object - properties: - rate: - type: string - description: 'rate is the commission rate charged to delegators, as a fraction.' - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate which validator can - ever charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily increase of the - validator commission, as a fraction. - update_time: - type: string - format: date-time - description: update_time is the last time the commission rate was changed. - description: Commission defines commission parameters for a given validator. - cosmos.staking.v1beta1.CommissionRates: - type: object - properties: - rate: - type: string - description: 'rate is the commission rate charged to delegators, as a fraction.' - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate which validator can ever - charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily increase of the validator - commission, as a fraction. - description: >- - CommissionRates defines the initial commission rates to be used for - creating - - a validator. - cosmos.staking.v1beta1.Delegation: - type: object - properties: - delegator_address: - type: string - description: delegator_address is the bech32-encoded address of the delegator. - validator_address: - type: string - description: validator_address is the bech32-encoded address of the validator. - shares: - type: string - description: shares define the delegation shares received. - description: |- - Delegation represents the bond with tokens held by an account. It is - owned by one delegator, and is associated with the voting power of one - validator. - cosmos.staking.v1beta1.DelegationResponse: - type: object - properties: - delegation: - type: object - properties: - delegator_address: - type: string - description: delegator_address is the bech32-encoded address of the delegator. - validator_address: - type: string - description: validator_address is the bech32-encoded address of the validator. - shares: - type: string - description: shares define the delegation shares received. - description: |- - Delegation represents the bond with tokens held by an account. It is - owned by one delegator, and is associated with the voting power of one - validator. - balance: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - Coin defines a token with a denomination and an amount. - - NOTE: The amount field is an Int which implements the custom method - signatures required by gogoproto. - description: |- - DelegationResponse is equivalent to Delegation except that it contains a - balance in addition to shares which is more suitable for client responses. - cosmos.staking.v1beta1.Description: - type: object - properties: - moniker: - type: string - description: moniker defines a human-readable name for the validator. - identity: - type: string - description: >- - identity defines an optional identity signature (ex. UPort or - Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: security_contact defines an optional email for security contact. - details: - type: string - description: details define other optional details. - description: Description defines a validator description. - cosmos.staking.v1beta1.HistoricalInfo: - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing a block in - the blockchain, - - including all blockchain data structures and the rules of the - application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - title: prev block info - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - valset: - type: array - items: - type: object - properties: - operator_address: - type: string - description: >- - operator_address defines the address of the validator's - operator; bech encoded in JSON. - consensus_pubkey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - jailed: - type: boolean - format: boolean - description: >- - jailed defined whether the validator has been jailed from bonded - status or not. - status: - description: status is the validator status (bonded/unbonding/unbonded). - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - tokens: - type: string - description: tokens define the delegated tokens (incl. self-delegation). - delegator_shares: - type: string - description: >- - delegator_shares defines total shares issued to a validator's - delegators. - description: - description: description defines the description terms for the validator. - type: object - properties: - moniker: - type: string - description: moniker defines a human-readable name for the validator. - identity: - type: string - description: >- - identity defines an optional identity signature (ex. UPort - or Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: >- - security_contact defines an optional email for security - contact. - details: - type: string - description: details define other optional details. - unbonding_height: - type: string - format: int64 - description: >- - unbonding_height defines, if unbonding, the height at which this - validator has begun unbonding. - unbonding_time: - type: string - format: date-time - description: >- - unbonding_time defines, if unbonding, the min time for the - validator to complete unbonding. - commission: - description: commission defines the commission parameters. - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission rates to be - used for creating a validator. - type: object - properties: - rate: - type: string - description: >- - rate is the commission rate charged to delegators, as a - fraction. - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate which - validator can ever charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily increase of - the validator commission, as a fraction. - update_time: - type: string - format: date-time - description: >- - update_time is the last time the commission rate was - changed. - min_self_delegation: - type: string - description: >- - min_self_delegation is the validator's self declared minimum - self delegation. - description: >- - Validator defines a validator, together with the total amount of the - - Validator's bond shares and their exchange rate to coins. Slashing - results in - - a decrease in the exchange rate, allowing correct calculation of - future - - undelegations without iterating over delegators. When coins are - delegated to - - this validator, the validator is credited with a delegation whose - number of - - bond shares is based on the amount of coins delegated divided by the - current - - exchange rate. Voting power can be calculated as total bonded shares - - multiplied by exchange rate. - description: >- - HistoricalInfo contains header and validator information for a given - block. - - It is stored as part of staking module's state, which persists the `n` - most - - recent HistoricalInfo - - (`n` is set by the staking module's `historical_entries` parameter). - cosmos.staking.v1beta1.Params: - type: object - properties: - unbonding_time: - type: string - description: unbonding_time is the time duration of unbonding. - max_validators: - type: integer - format: int64 - description: max_validators is the maximum number of validators. - max_entries: - type: integer - format: int64 - description: >- - max_entries is the max entries for either unbonding delegation or - redelegation (per pair/trio). - historical_entries: - type: integer - format: int64 - description: historical_entries is the number of historical entries to persist. - bond_denom: - type: string - description: bond_denom defines the bondable coin denomination. - description: Params defines the parameters for the staking module. - cosmos.staking.v1beta1.Pool: - type: object - properties: - not_bonded_tokens: - type: string - bonded_tokens: - type: string - description: |- - Pool is used for tracking bonded and not-bonded token supply of the bond - denomination. - cosmos.staking.v1beta1.QueryDelegationResponse: - type: object - properties: - delegation_response: - type: object - properties: - delegation: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of the - delegator. - validator_address: - type: string - description: >- - validator_address is the bech32-encoded address of the - validator. - shares: - type: string - description: shares define the delegation shares received. - description: >- - Delegation represents the bond with tokens held by an account. It - is - - owned by one delegator, and is associated with the voting power of - one - - validator. - balance: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - description: >- - DelegationResponse is equivalent to Delegation except that it contains - a - - balance in addition to shares which is more suitable for client - responses. - description: >- - QueryDelegationResponse is response type for the Query/Delegation RPC - method. - cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse: - type: object - properties: - delegation_responses: - type: array - items: - type: object - properties: - delegation: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of the - delegator. - validator_address: - type: string - description: >- - validator_address is the bech32-encoded address of the - validator. - shares: - type: string - description: shares define the delegation shares received. - description: >- - Delegation represents the bond with tokens held by an account. - It is - - owned by one delegator, and is associated with the voting power - of one - - validator. - balance: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - description: >- - DelegationResponse is equivalent to Delegation except that it - contains a - - balance in addition to shares which is more suitable for client - responses. - description: delegation_responses defines all the delegations' info of a delegator. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - QueryDelegatorDelegationsResponse is response type for the - Query/DelegatorDelegations RPC method. - cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse: - type: object - properties: - unbonding_responses: - type: array - items: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of the - delegator. - validator_address: - type: string - description: >- - validator_address is the bech32-encoded address of the - validator. - entries: - type: array - items: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height is the height which the unbonding took - place. - completion_time: - type: string - format: date-time - description: completion_time is the unix time for unbonding completion. - initial_balance: - type: string - description: >- - initial_balance defines the tokens initially scheduled to - receive at completion. - balance: - type: string - description: balance defines the tokens to receive at completion. - description: >- - UnbondingDelegationEntry defines an unbonding object with - relevant metadata. - description: entries are the unbonding delegation entries. - description: >- - UnbondingDelegation stores all of a single delegator's unbonding - bonds - - for a single validator in an time-ordered list. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - QueryUnbondingDelegatorDelegationsResponse is response type for the - Query/UnbondingDelegatorDelegations RPC method. - cosmos.staking.v1beta1.QueryDelegatorValidatorResponse: - type: object - properties: - validator: - type: object - properties: - operator_address: - type: string - description: >- - operator_address defines the address of the validator's operator; - bech encoded in JSON. - consensus_pubkey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - jailed: - type: boolean - format: boolean - description: >- - jailed defined whether the validator has been jailed from bonded - status or not. - status: - description: status is the validator status (bonded/unbonding/unbonded). - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - tokens: - type: string - description: tokens define the delegated tokens (incl. self-delegation). - delegator_shares: - type: string - description: >- - delegator_shares defines total shares issued to a validator's - delegators. - description: - description: description defines the description terms for the validator. - type: object - properties: - moniker: - type: string - description: moniker defines a human-readable name for the validator. - identity: - type: string - description: >- - identity defines an optional identity signature (ex. UPort or - Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: >- - security_contact defines an optional email for security - contact. - details: - type: string - description: details define other optional details. - unbonding_height: - type: string - format: int64 - description: >- - unbonding_height defines, if unbonding, the height at which this - validator has begun unbonding. - unbonding_time: - type: string - format: date-time - description: >- - unbonding_time defines, if unbonding, the min time for the - validator to complete unbonding. - commission: - description: commission defines the commission parameters. - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission rates to be - used for creating a validator. - type: object - properties: - rate: - type: string - description: >- - rate is the commission rate charged to delegators, as a - fraction. - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate which - validator can ever charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily increase of the - validator commission, as a fraction. - update_time: - type: string - format: date-time - description: update_time is the last time the commission rate was changed. - min_self_delegation: - type: string - description: >- - min_self_delegation is the validator's self declared minimum self - delegation. - description: >- - Validator defines a validator, together with the total amount of the - - Validator's bond shares and their exchange rate to coins. Slashing - results in - - a decrease in the exchange rate, allowing correct calculation of - future - - undelegations without iterating over delegators. When coins are - delegated to - - this validator, the validator is credited with a delegation whose - number of - - bond shares is based on the amount of coins delegated divided by the - current - - exchange rate. Voting power can be calculated as total bonded shares - - multiplied by exchange rate. - description: |- - QueryDelegatorValidatorResponse response type for the - Query/DelegatorValidator RPC method. - cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse: - type: object - properties: - validators: - type: array - items: - type: object - properties: - operator_address: - type: string - description: >- - operator_address defines the address of the validator's - operator; bech encoded in JSON. - consensus_pubkey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - jailed: - type: boolean - format: boolean - description: >- - jailed defined whether the validator has been jailed from bonded - status or not. - status: - description: status is the validator status (bonded/unbonding/unbonded). - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - tokens: - type: string - description: tokens define the delegated tokens (incl. self-delegation). - delegator_shares: - type: string - description: >- - delegator_shares defines total shares issued to a validator's - delegators. - description: - description: description defines the description terms for the validator. - type: object - properties: - moniker: - type: string - description: moniker defines a human-readable name for the validator. - identity: - type: string - description: >- - identity defines an optional identity signature (ex. UPort - or Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: >- - security_contact defines an optional email for security - contact. - details: - type: string - description: details define other optional details. - unbonding_height: - type: string - format: int64 - description: >- - unbonding_height defines, if unbonding, the height at which this - validator has begun unbonding. - unbonding_time: - type: string - format: date-time - description: >- - unbonding_time defines, if unbonding, the min time for the - validator to complete unbonding. - commission: - description: commission defines the commission parameters. - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission rates to be - used for creating a validator. - type: object - properties: - rate: - type: string - description: >- - rate is the commission rate charged to delegators, as a - fraction. - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate which - validator can ever charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily increase of - the validator commission, as a fraction. - update_time: - type: string - format: date-time - description: >- - update_time is the last time the commission rate was - changed. - min_self_delegation: - type: string - description: >- - min_self_delegation is the validator's self declared minimum - self delegation. - description: >- - Validator defines a validator, together with the total amount of the - - Validator's bond shares and their exchange rate to coins. Slashing - results in - - a decrease in the exchange rate, allowing correct calculation of - future - - undelegations without iterating over delegators. When coins are - delegated to - - this validator, the validator is credited with a delegation whose - number of - - bond shares is based on the amount of coins delegated divided by the - current - - exchange rate. Voting power can be calculated as total bonded shares - - multiplied by exchange rate. - description: validators defines the the validators' info of a delegator. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - QueryDelegatorValidatorsResponse is response type for the - Query/DelegatorValidators RPC method. - cosmos.staking.v1beta1.QueryHistoricalInfoResponse: - type: object - properties: - hist: - description: hist defines the historical info at the given height. - type: object - properties: - header: - type: object - properties: - version: - title: basic block info - type: object - properties: - block: - type: string - format: uint64 - app: - type: string - format: uint64 - description: >- - Consensus captures the consensus rules for processing a block - in the blockchain, - - including all blockchain data structures and the rules of the - application's - - state transition machine. - chain_id: - type: string - height: - type: string - format: int64 - time: - type: string - format: date-time - last_block_id: - title: prev block info - type: object - properties: - hash: - type: string - format: byte - part_set_header: - type: object - properties: - total: - type: integer - format: int64 - hash: - type: string - format: byte - title: PartsetHeader - last_commit_hash: - type: string - format: byte - title: hashes of block data - data_hash: - type: string - format: byte - validators_hash: - type: string - format: byte - title: hashes from the app output from the prev block - next_validators_hash: - type: string - format: byte - consensus_hash: - type: string - format: byte - app_hash: - type: string - format: byte - last_results_hash: - type: string - format: byte - evidence_hash: - type: string - format: byte - title: consensus info - proposer_address: - type: string - format: byte - description: Header defines the structure of a Tendermint block header. - valset: - type: array - items: - type: object - properties: - operator_address: - type: string - description: >- - operator_address defines the address of the validator's - operator; bech encoded in JSON. - consensus_pubkey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of - the serialized - - protocol buffer message. This string must contain at - least - - one "/" character. The last segment of the URL's path - must represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in - a canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary - all types that they - - expect it to use in the context of Any. However, for - URLs which use the - - scheme `http`, `https`, or no scheme, one can optionally - set up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based - on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in - the official - - protobuf release, and it is not used for type URLs - beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer - message along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values - in the form - - of utility functions or additional generated methods of the - Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by - default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the - last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield - type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with - an - - additional field `@type` which contains the type URL. - Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom - JSON - - representation, that representation will be embedded adding - a field - - `value` which holds the custom JSON in addition to the - `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - jailed: - type: boolean - format: boolean - description: >- - jailed defined whether the validator has been jailed from - bonded status or not. - status: - description: status is the validator status (bonded/unbonding/unbonded). - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - tokens: - type: string - description: tokens define the delegated tokens (incl. self-delegation). - delegator_shares: - type: string - description: >- - delegator_shares defines total shares issued to a - validator's delegators. - description: - description: description defines the description terms for the validator. - type: object - properties: - moniker: - type: string - description: moniker defines a human-readable name for the validator. - identity: - type: string - description: >- - identity defines an optional identity signature (ex. - UPort or Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: >- - security_contact defines an optional email for security - contact. - details: - type: string - description: details define other optional details. - unbonding_height: - type: string - format: int64 - description: >- - unbonding_height defines, if unbonding, the height at which - this validator has begun unbonding. - unbonding_time: - type: string - format: date-time - description: >- - unbonding_time defines, if unbonding, the min time for the - validator to complete unbonding. - commission: - description: commission defines the commission parameters. - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission rates to - be used for creating a validator. - type: object - properties: - rate: - type: string - description: >- - rate is the commission rate charged to delegators, - as a fraction. - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate which - validator can ever charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily increase - of the validator commission, as a fraction. - update_time: - type: string - format: date-time - description: >- - update_time is the last time the commission rate was - changed. - min_self_delegation: - type: string - description: >- - min_self_delegation is the validator's self declared minimum - self delegation. - description: >- - Validator defines a validator, together with the total amount of - the - - Validator's bond shares and their exchange rate to coins. - Slashing results in - - a decrease in the exchange rate, allowing correct calculation of - future - - undelegations without iterating over delegators. When coins are - delegated to - - this validator, the validator is credited with a delegation - whose number of - - bond shares is based on the amount of coins delegated divided by - the current - - exchange rate. Voting power can be calculated as total bonded - shares - - multiplied by exchange rate. - description: >- - QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo - RPC - - method. - cosmos.staking.v1beta1.QueryParamsResponse: - type: object - properties: - params: - description: params holds all the parameters of this module. - type: object - properties: - unbonding_time: - type: string - description: unbonding_time is the time duration of unbonding. - max_validators: - type: integer - format: int64 - description: max_validators is the maximum number of validators. - max_entries: - type: integer - format: int64 - description: >- - max_entries is the max entries for either unbonding delegation or - redelegation (per pair/trio). - historical_entries: - type: integer - format: int64 - description: historical_entries is the number of historical entries to persist. - bond_denom: - type: string - description: bond_denom defines the bondable coin denomination. - description: QueryParamsResponse is response type for the Query/Params RPC method. - cosmos.staking.v1beta1.QueryPoolResponse: - type: object - properties: - pool: - description: pool defines the pool info. - type: object - properties: - not_bonded_tokens: - type: string - bonded_tokens: - type: string - description: QueryPoolResponse is response type for the Query/Pool RPC method. - cosmos.staking.v1beta1.QueryRedelegationsResponse: - type: object - properties: - redelegation_responses: - type: array - items: - type: object - properties: - redelegation: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of the - delegator. - validator_src_address: - type: string - description: >- - validator_src_address is the validator redelegation source - operator address. - validator_dst_address: - type: string - description: >- - validator_dst_address is the validator redelegation - destination operator address. - entries: - type: array - items: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height defines the height which the - redelegation took place. - completion_time: - type: string - format: date-time - description: >- - completion_time defines the unix time for redelegation - completion. - initial_balance: - type: string - description: >- - initial_balance defines the initial balance when - redelegation started. - shares_dst: - type: string - description: >- - shares_dst is the amount of destination-validator - shares created by redelegation. - description: >- - RedelegationEntry defines a redelegation object with - relevant metadata. - description: entries are the redelegation entries. - description: >- - Redelegation contains the list of a particular delegator's - redelegating bonds - - from a particular source validator to a particular destination - validator. - entries: - type: array - items: - type: object - properties: - redelegation_entry: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height defines the height which the - redelegation took place. - completion_time: - type: string - format: date-time - description: >- - completion_time defines the unix time for redelegation - completion. - initial_balance: - type: string - description: >- - initial_balance defines the initial balance when - redelegation started. - shares_dst: - type: string - description: >- - shares_dst is the amount of destination-validator - shares created by redelegation. - description: >- - RedelegationEntry defines a redelegation object with - relevant metadata. - balance: - type: string - description: >- - RedelegationEntryResponse is equivalent to a RedelegationEntry - except that it - - contains a balance in addition to shares which is more - suitable for client - - responses. - description: >- - RedelegationResponse is equivalent to a Redelegation except that its - entries - - contain a balance in addition to shares which is more suitable for - client - - responses. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryRedelegationsResponse is response type for the Query/Redelegations - RPC - - method. - cosmos.staking.v1beta1.QueryUnbondingDelegationResponse: - type: object - properties: - unbond: - type: object - properties: - delegator_address: - type: string - description: delegator_address is the bech32-encoded address of the delegator. - validator_address: - type: string - description: validator_address is the bech32-encoded address of the validator. - entries: - type: array - items: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height is the height which the unbonding took - place. - completion_time: - type: string - format: date-time - description: completion_time is the unix time for unbonding completion. - initial_balance: - type: string - description: >- - initial_balance defines the tokens initially scheduled to - receive at completion. - balance: - type: string - description: balance defines the tokens to receive at completion. - description: >- - UnbondingDelegationEntry defines an unbonding object with - relevant metadata. - description: entries are the unbonding delegation entries. - description: |- - UnbondingDelegation stores all of a single delegator's unbonding bonds - for a single validator in an time-ordered list. - description: |- - QueryDelegationResponse is response type for the Query/UnbondingDelegation - RPC method. - cosmos.staking.v1beta1.QueryValidatorDelegationsResponse: - type: object - properties: - delegation_responses: - type: array - items: - type: object - properties: - delegation: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of the - delegator. - validator_address: - type: string - description: >- - validator_address is the bech32-encoded address of the - validator. - shares: - type: string - description: shares define the delegation shares received. - description: >- - Delegation represents the bond with tokens held by an account. - It is - - owned by one delegator, and is associated with the voting power - of one - - validator. - balance: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - description: >- - DelegationResponse is equivalent to Delegation except that it - contains a - - balance in addition to shares which is more suitable for client - responses. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - title: |- - QueryValidatorDelegationsResponse is response type for the - Query/ValidatorDelegations RPC method - cosmos.staking.v1beta1.QueryValidatorResponse: - type: object - properties: - validator: - type: object - properties: - operator_address: - type: string - description: >- - operator_address defines the address of the validator's operator; - bech encoded in JSON. - consensus_pubkey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - jailed: - type: boolean - format: boolean - description: >- - jailed defined whether the validator has been jailed from bonded - status or not. - status: - description: status is the validator status (bonded/unbonding/unbonded). - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - tokens: - type: string - description: tokens define the delegated tokens (incl. self-delegation). - delegator_shares: - type: string - description: >- - delegator_shares defines total shares issued to a validator's - delegators. - description: - description: description defines the description terms for the validator. - type: object - properties: - moniker: - type: string - description: moniker defines a human-readable name for the validator. - identity: - type: string - description: >- - identity defines an optional identity signature (ex. UPort or - Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: >- - security_contact defines an optional email for security - contact. - details: - type: string - description: details define other optional details. - unbonding_height: - type: string - format: int64 - description: >- - unbonding_height defines, if unbonding, the height at which this - validator has begun unbonding. - unbonding_time: - type: string - format: date-time - description: >- - unbonding_time defines, if unbonding, the min time for the - validator to complete unbonding. - commission: - description: commission defines the commission parameters. - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission rates to be - used for creating a validator. - type: object - properties: - rate: - type: string - description: >- - rate is the commission rate charged to delegators, as a - fraction. - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate which - validator can ever charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily increase of the - validator commission, as a fraction. - update_time: - type: string - format: date-time - description: update_time is the last time the commission rate was changed. - min_self_delegation: - type: string - description: >- - min_self_delegation is the validator's self declared minimum self - delegation. - description: >- - Validator defines a validator, together with the total amount of the - - Validator's bond shares and their exchange rate to coins. Slashing - results in - - a decrease in the exchange rate, allowing correct calculation of - future - - undelegations without iterating over delegators. When coins are - delegated to - - this validator, the validator is credited with a delegation whose - number of - - bond shares is based on the amount of coins delegated divided by the - current - - exchange rate. Voting power can be calculated as total bonded shares - - multiplied by exchange rate. - title: QueryValidatorResponse is response type for the Query/Validator RPC method - cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse: - type: object - properties: - unbonding_responses: - type: array - items: - type: object - properties: - delegator_address: - type: string - description: >- - delegator_address is the bech32-encoded address of the - delegator. - validator_address: - type: string - description: >- - validator_address is the bech32-encoded address of the - validator. - entries: - type: array - items: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height is the height which the unbonding took - place. - completion_time: - type: string - format: date-time - description: completion_time is the unix time for unbonding completion. - initial_balance: - type: string - description: >- - initial_balance defines the tokens initially scheduled to - receive at completion. - balance: - type: string - description: balance defines the tokens to receive at completion. - description: >- - UnbondingDelegationEntry defines an unbonding object with - relevant metadata. - description: entries are the unbonding delegation entries. - description: >- - UnbondingDelegation stores all of a single delegator's unbonding - bonds - - for a single validator in an time-ordered list. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - QueryValidatorUnbondingDelegationsResponse is response type for the - Query/ValidatorUnbondingDelegations RPC method. - cosmos.staking.v1beta1.QueryValidatorsResponse: - type: object - properties: - validators: - type: array - items: - type: object - properties: - operator_address: - type: string - description: >- - operator_address defines the address of the validator's - operator; bech encoded in JSON. - consensus_pubkey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - jailed: - type: boolean - format: boolean - description: >- - jailed defined whether the validator has been jailed from bonded - status or not. - status: - description: status is the validator status (bonded/unbonding/unbonded). - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - tokens: - type: string - description: tokens define the delegated tokens (incl. self-delegation). - delegator_shares: - type: string - description: >- - delegator_shares defines total shares issued to a validator's - delegators. - description: - description: description defines the description terms for the validator. - type: object - properties: - moniker: - type: string - description: moniker defines a human-readable name for the validator. - identity: - type: string - description: >- - identity defines an optional identity signature (ex. UPort - or Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: >- - security_contact defines an optional email for security - contact. - details: - type: string - description: details define other optional details. - unbonding_height: - type: string - format: int64 - description: >- - unbonding_height defines, if unbonding, the height at which this - validator has begun unbonding. - unbonding_time: - type: string - format: date-time - description: >- - unbonding_time defines, if unbonding, the min time for the - validator to complete unbonding. - commission: - description: commission defines the commission parameters. - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission rates to be - used for creating a validator. - type: object - properties: - rate: - type: string - description: >- - rate is the commission rate charged to delegators, as a - fraction. - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate which - validator can ever charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily increase of - the validator commission, as a fraction. - update_time: - type: string - format: date-time - description: >- - update_time is the last time the commission rate was - changed. - min_self_delegation: - type: string - description: >- - min_self_delegation is the validator's self declared minimum - self delegation. - description: >- - Validator defines a validator, together with the total amount of the - - Validator's bond shares and their exchange rate to coins. Slashing - results in - - a decrease in the exchange rate, allowing correct calculation of - future - - undelegations without iterating over delegators. When coins are - delegated to - - this validator, the validator is credited with a delegation whose - number of - - bond shares is based on the amount of coins delegated divided by the - current - - exchange rate. Voting power can be calculated as total bonded shares - - multiplied by exchange rate. - description: validators contains all the queried validators. - pagination: - description: pagination defines the pagination in the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - title: >- - QueryValidatorsResponse is response type for the Query/Validators RPC - method - cosmos.staking.v1beta1.Redelegation: - type: object - properties: - delegator_address: - type: string - description: delegator_address is the bech32-encoded address of the delegator. - validator_src_address: - type: string - description: >- - validator_src_address is the validator redelegation source operator - address. - validator_dst_address: - type: string - description: >- - validator_dst_address is the validator redelegation destination - operator address. - entries: - type: array - items: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height defines the height which the redelegation took - place. - completion_time: - type: string - format: date-time - description: >- - completion_time defines the unix time for redelegation - completion. - initial_balance: - type: string - description: >- - initial_balance defines the initial balance when redelegation - started. - shares_dst: - type: string - description: >- - shares_dst is the amount of destination-validator shares created - by redelegation. - description: >- - RedelegationEntry defines a redelegation object with relevant - metadata. - description: entries are the redelegation entries. - description: >- - Redelegation contains the list of a particular delegator's redelegating - bonds - - from a particular source validator to a particular destination validator. - cosmos.staking.v1beta1.RedelegationEntry: - type: object - properties: - creation_height: - type: string - format: int64 - description: creation_height defines the height which the redelegation took place. - completion_time: - type: string - format: date-time - description: completion_time defines the unix time for redelegation completion. - initial_balance: - type: string - description: initial_balance defines the initial balance when redelegation started. - shares_dst: - type: string - description: >- - shares_dst is the amount of destination-validator shares created by - redelegation. - description: RedelegationEntry defines a redelegation object with relevant metadata. - cosmos.staking.v1beta1.RedelegationEntryResponse: - type: object - properties: - redelegation_entry: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height defines the height which the redelegation took - place. - completion_time: - type: string - format: date-time - description: completion_time defines the unix time for redelegation completion. - initial_balance: - type: string - description: >- - initial_balance defines the initial balance when redelegation - started. - shares_dst: - type: string - description: >- - shares_dst is the amount of destination-validator shares created - by redelegation. - description: >- - RedelegationEntry defines a redelegation object with relevant - metadata. - balance: - type: string - description: >- - RedelegationEntryResponse is equivalent to a RedelegationEntry except that - it - - contains a balance in addition to shares which is more suitable for client - - responses. - cosmos.staking.v1beta1.RedelegationResponse: - type: object - properties: - redelegation: - type: object - properties: - delegator_address: - type: string - description: delegator_address is the bech32-encoded address of the delegator. - validator_src_address: - type: string - description: >- - validator_src_address is the validator redelegation source - operator address. - validator_dst_address: - type: string - description: >- - validator_dst_address is the validator redelegation destination - operator address. - entries: - type: array - items: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height defines the height which the redelegation - took place. - completion_time: - type: string - format: date-time - description: >- - completion_time defines the unix time for redelegation - completion. - initial_balance: - type: string - description: >- - initial_balance defines the initial balance when - redelegation started. - shares_dst: - type: string - description: >- - shares_dst is the amount of destination-validator shares - created by redelegation. - description: >- - RedelegationEntry defines a redelegation object with relevant - metadata. - description: entries are the redelegation entries. - description: >- - Redelegation contains the list of a particular delegator's - redelegating bonds - - from a particular source validator to a particular destination - validator. - entries: - type: array - items: - type: object - properties: - redelegation_entry: - type: object - properties: - creation_height: - type: string - format: int64 - description: >- - creation_height defines the height which the redelegation - took place. - completion_time: - type: string - format: date-time - description: >- - completion_time defines the unix time for redelegation - completion. - initial_balance: - type: string - description: >- - initial_balance defines the initial balance when - redelegation started. - shares_dst: - type: string - description: >- - shares_dst is the amount of destination-validator shares - created by redelegation. - description: >- - RedelegationEntry defines a redelegation object with relevant - metadata. - balance: - type: string - description: >- - RedelegationEntryResponse is equivalent to a RedelegationEntry - except that it - - contains a balance in addition to shares which is more suitable for - client - - responses. - description: >- - RedelegationResponse is equivalent to a Redelegation except that its - entries - - contain a balance in addition to shares which is more suitable for client - - responses. - cosmos.staking.v1beta1.UnbondingDelegation: - type: object - properties: - delegator_address: - type: string - description: delegator_address is the bech32-encoded address of the delegator. - validator_address: - type: string - description: validator_address is the bech32-encoded address of the validator. - entries: - type: array - items: - type: object - properties: - creation_height: - type: string - format: int64 - description: creation_height is the height which the unbonding took place. - completion_time: - type: string - format: date-time - description: completion_time is the unix time for unbonding completion. - initial_balance: - type: string - description: >- - initial_balance defines the tokens initially scheduled to - receive at completion. - balance: - type: string - description: balance defines the tokens to receive at completion. - description: >- - UnbondingDelegationEntry defines an unbonding object with relevant - metadata. - description: entries are the unbonding delegation entries. - description: |- - UnbondingDelegation stores all of a single delegator's unbonding bonds - for a single validator in an time-ordered list. - cosmos.staking.v1beta1.UnbondingDelegationEntry: - type: object - properties: - creation_height: - type: string - format: int64 - description: creation_height is the height which the unbonding took place. - completion_time: - type: string - format: date-time - description: completion_time is the unix time for unbonding completion. - initial_balance: - type: string - description: >- - initial_balance defines the tokens initially scheduled to receive at - completion. - balance: - type: string - description: balance defines the tokens to receive at completion. - description: >- - UnbondingDelegationEntry defines an unbonding object with relevant - metadata. - cosmos.staking.v1beta1.Validator: - type: object - properties: - operator_address: - type: string - description: >- - operator_address defines the address of the validator's operator; bech - encoded in JSON. - consensus_pubkey: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - jailed: - type: boolean - format: boolean - description: >- - jailed defined whether the validator has been jailed from bonded - status or not. - status: - description: status is the validator status (bonded/unbonding/unbonded). - type: string - enum: - - BOND_STATUS_UNSPECIFIED - - BOND_STATUS_UNBONDED - - BOND_STATUS_UNBONDING - - BOND_STATUS_BONDED - default: BOND_STATUS_UNSPECIFIED - tokens: - type: string - description: tokens define the delegated tokens (incl. self-delegation). - delegator_shares: - type: string - description: >- - delegator_shares defines total shares issued to a validator's - delegators. - description: - description: description defines the description terms for the validator. - type: object - properties: - moniker: - type: string - description: moniker defines a human-readable name for the validator. - identity: - type: string - description: >- - identity defines an optional identity signature (ex. UPort or - Keybase). - website: - type: string - description: website defines an optional website link. - security_contact: - type: string - description: security_contact defines an optional email for security contact. - details: - type: string - description: details define other optional details. - unbonding_height: - type: string - format: int64 - description: >- - unbonding_height defines, if unbonding, the height at which this - validator has begun unbonding. - unbonding_time: - type: string - format: date-time - description: >- - unbonding_time defines, if unbonding, the min time for the validator - to complete unbonding. - commission: - description: commission defines the commission parameters. - type: object - properties: - commission_rates: - description: >- - commission_rates defines the initial commission rates to be used - for creating a validator. - type: object - properties: - rate: - type: string - description: >- - rate is the commission rate charged to delegators, as a - fraction. - max_rate: - type: string - description: >- - max_rate defines the maximum commission rate which validator - can ever charge, as a fraction. - max_change_rate: - type: string - description: >- - max_change_rate defines the maximum daily increase of the - validator commission, as a fraction. - update_time: - type: string - format: date-time - description: update_time is the last time the commission rate was changed. - min_self_delegation: - type: string - description: >- - min_self_delegation is the validator's self declared minimum self - delegation. - description: >- - Validator defines a validator, together with the total amount of the - - Validator's bond shares and their exchange rate to coins. Slashing results - in - - a decrease in the exchange rate, allowing correct calculation of future - - undelegations without iterating over delegators. When coins are delegated - to - - this validator, the validator is credited with a delegation whose number - of - - bond shares is based on the amount of coins delegated divided by the - current - - exchange rate. Voting power can be calculated as total bonded shares - - multiplied by exchange rate. - cosmos.base.abci.v1beta1.ABCIMessageLog: - type: object - properties: - msg_index: - type: integer - format: int64 - log: - type: string - events: - type: array - items: - type: object - properties: - type: - type: string - attributes: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - description: >- - Attribute defines an attribute wrapper where the key and value - are - - strings instead of raw bytes. - description: |- - StringEvent defines en Event object wrapper where all the attributes - contain key/value pairs that are strings instead of raw bytes. - description: |- - Events contains a slice of Event objects that were emitted during some - execution. - description: >- - ABCIMessageLog defines a structure containing an indexed tx ABCI message - log. - cosmos.base.abci.v1beta1.Attribute: - type: object - properties: - key: - type: string - value: - type: string - description: |- - Attribute defines an attribute wrapper where the key and value are - strings instead of raw bytes. - cosmos.base.abci.v1beta1.GasInfo: - type: object - properties: - gas_wanted: - type: string - format: uint64 - description: GasWanted is the maximum units of work we allow this tx to perform. - gas_used: - type: string - format: uint64 - description: GasUsed is the amount of gas actually consumed. - description: GasInfo defines tx execution gas context. - cosmos.base.abci.v1beta1.Result: - type: object - properties: - data: - type: string - format: byte - description: >- - Data is any data returned from message or handler execution. It MUST - be - - length prefixed in order to separate data from multiple message - executions. - log: - type: string - description: Log contains the log information from message or handler execution. - events: - type: array - items: - type: object - properties: - type: - type: string - attributes: - type: array - items: - type: object - properties: - key: - type: string - format: byte - value: - type: string - format: byte - index: - type: boolean - format: boolean - description: >- - EventAttribute is a single key-value pair, associated with an - event. - description: >- - Event allows application developers to attach additional information - to - - ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and - ResponseDeliverTx. - - Later, transactions may be queried using these events. - description: >- - Events contains a slice of Event objects that were emitted during - message - - or handler execution. - description: Result is the union of ResponseFormat and ResponseCheckTx. - cosmos.base.abci.v1beta1.StringEvent: - type: object - properties: - type: - type: string - attributes: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - description: |- - Attribute defines an attribute wrapper where the key and value are - strings instead of raw bytes. - description: |- - StringEvent defines en Event object wrapper where all the attributes - contain key/value pairs that are strings instead of raw bytes. - cosmos.base.abci.v1beta1.TxResponse: - type: object - properties: - height: - type: string - format: int64 - title: The block height - txhash: - type: string - description: The transaction hash. - codespace: - type: string - title: Namespace for the Code - code: - type: integer - format: int64 - description: Response code. - data: - type: string - description: 'Result bytes, if any.' - raw_log: - type: string - description: |- - The output of the application's logger (raw string). May be - non-deterministic. - logs: - type: array - items: - type: object - properties: - msg_index: - type: integer - format: int64 - log: - type: string - events: - type: array - items: - type: object - properties: - type: - type: string - attributes: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - description: >- - Attribute defines an attribute wrapper where the key and - value are - - strings instead of raw bytes. - description: >- - StringEvent defines en Event object wrapper where all the - attributes - - contain key/value pairs that are strings instead of raw bytes. - description: >- - Events contains a slice of Event objects that were emitted - during some - - execution. - description: >- - ABCIMessageLog defines a structure containing an indexed tx ABCI - message log. - description: >- - The output of the application's logger (typed). May be - non-deterministic. - info: - type: string - description: Additional information. May be non-deterministic. - gas_wanted: - type: string - format: int64 - description: Amount of gas requested for transaction. - gas_used: - type: string - format: int64 - description: Amount of gas consumed by transaction. - tx: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - timestamp: - type: string - description: >- - Time of the previous block. For heights > 1, it's the weighted median - of - - the timestamps of the valid votes in the block.LastCommit. For height - == 1, - - it's genesis time. - description: >- - TxResponse defines a structure containing relevant tx data and metadata. - The - - tags are stringified and the log is JSON decoded. - cosmos.crypto.multisig.v1beta1.CompactBitArray: - type: object - properties: - extra_bits_stored: - type: integer - format: int64 - elems: - type: string - format: byte - description: |- - CompactBitArray is an implementation of a space efficient bit array. - This is used to ensure that the encoded data takes up a minimal amount of - space after proto encoding. - This is not thread safe, and is not intended for concurrent usage. - cosmos.tx.signing.v1beta1.SignMode: - type: string - enum: - - SIGN_MODE_UNSPECIFIED - - SIGN_MODE_DIRECT - - SIGN_MODE_TEXTUAL - - SIGN_MODE_LEGACY_AMINO_JSON - default: SIGN_MODE_UNSPECIFIED - description: |- - SignMode represents a signing mode with its own security guarantees. - - - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be - rejected - - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is - verified with raw bytes from Tx - - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some - human-readable textual representation on top of the binary representation - from SIGN_MODE_DIRECT - - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses - Amino JSON and will be removed in the future - cosmos.tx.v1beta1.AuthInfo: - type: object - properties: - signer_infos: - type: array - items: - $ref: '#/definitions/cosmos.tx.v1beta1.SignerInfo' - description: >- - signer_infos defines the signing modes for the required signers. The - number - - and order of elements must match the required signers from TxBody's - - messages. The first element is the primary signer and the one which - pays - - the fee. - fee: - description: >- - Fee is the fee and gas limit for the transaction. The first signer is - the - - primary signer and the one which pays the fee. The fee can be - calculated - - based on the cost of evaluating the body and doing signature - verification - - of the signers. This can be estimated via simulation. - type: object - properties: - amount: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: >- - Coin defines a token with a denomination and an amount. - - - NOTE: The amount field is an Int which implements the custom - method - - signatures required by gogoproto. - title: amount is the amount of coins to be paid as a fee - gas_limit: - type: string - format: uint64 - title: >- - gas_limit is the maximum gas that can be used in transaction - processing - - before an out of gas error occurs - payer: - type: string - description: >- - if unset, the first signer is responsible for paying the fees. If - set, the specified account must pay the fees. - - the payer must be a tx signer (and thus have signed this field in - AuthInfo). - - setting this field does *not* change the ordering of required - signers for the transaction. - granter: - type: string - title: >- - if set, the fee payer (either the first signer or the value of the - payer field) requests that a fee grant be used - - to pay fees instead of the fee payer's own balance. If an - appropriate fee grant does not exist or the chain does - - not support fee grants, this will fail - description: |- - AuthInfo describes the fee and signer modes that are used to sign a - transaction. - cosmos.tx.v1beta1.BroadcastMode: - type: string - enum: - - BROADCAST_MODE_UNSPECIFIED - - BROADCAST_MODE_BLOCK - - BROADCAST_MODE_SYNC - - BROADCAST_MODE_ASYNC - default: BROADCAST_MODE_UNSPECIFIED - description: >- - BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC - method. - - - BROADCAST_MODE_UNSPECIFIED: zero-value for mode ordering - - BROADCAST_MODE_BLOCK: BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for - the tx to be committed in a block. - - BROADCAST_MODE_SYNC: BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for - a CheckTx execution response only. - - BROADCAST_MODE_ASYNC: BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns - immediately. - cosmos.tx.v1beta1.BroadcastTxRequest: - type: object - properties: - tx_bytes: - type: string - format: byte - description: tx_bytes is the raw transaction. - mode: - type: string - enum: - - BROADCAST_MODE_UNSPECIFIED - - BROADCAST_MODE_BLOCK - - BROADCAST_MODE_SYNC - - BROADCAST_MODE_ASYNC - default: BROADCAST_MODE_UNSPECIFIED - description: >- - BroadcastMode specifies the broadcast mode for the TxService.Broadcast - RPC method. - - - BROADCAST_MODE_UNSPECIFIED: zero-value for mode ordering - - BROADCAST_MODE_BLOCK: BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for - the tx to be committed in a block. - - BROADCAST_MODE_SYNC: BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for - a CheckTx execution response only. - - BROADCAST_MODE_ASYNC: BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns - immediately. - description: |- - BroadcastTxRequest is the request type for the Service.BroadcastTxRequest - RPC method. - cosmos.tx.v1beta1.BroadcastTxResponse: - type: object - properties: - tx_response: - type: object - properties: - height: - type: string - format: int64 - title: The block height - txhash: - type: string - description: The transaction hash. - codespace: - type: string - title: Namespace for the Code - code: - type: integer - format: int64 - description: Response code. - data: - type: string - description: 'Result bytes, if any.' - raw_log: - type: string - description: |- - The output of the application's logger (raw string). May be - non-deterministic. - logs: - type: array - items: - type: object - properties: - msg_index: - type: integer - format: int64 - log: - type: string - events: - type: array - items: - type: object - properties: - type: - type: string - attributes: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - description: >- - Attribute defines an attribute wrapper where the key - and value are - - strings instead of raw bytes. - description: >- - StringEvent defines en Event object wrapper where all the - attributes - - contain key/value pairs that are strings instead of raw - bytes. - description: >- - Events contains a slice of Event objects that were emitted - during some - - execution. - description: >- - ABCIMessageLog defines a structure containing an indexed tx ABCI - message log. - description: >- - The output of the application's logger (typed). May be - non-deterministic. - info: - type: string - description: Additional information. May be non-deterministic. - gas_wanted: - type: string - format: int64 - description: Amount of gas requested for transaction. - gas_used: - type: string - format: int64 - description: Amount of gas consumed by transaction. - tx: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - timestamp: - type: string - description: >- - Time of the previous block. For heights > 1, it's the weighted - median of - - the timestamps of the valid votes in the block.LastCommit. For - height == 1, - - it's genesis time. - description: >- - TxResponse defines a structure containing relevant tx data and - metadata. The - - tags are stringified and the log is JSON decoded. - description: |- - BroadcastTxResponse is the response type for the - Service.BroadcastTx method. - cosmos.tx.v1beta1.Fee: - type: object - properties: - amount: - type: array - items: - type: object - properties: - denom: - type: string - amount: - type: string - description: |- - Coin defines a token with a denomination and an amount. - - NOTE: The amount field is an Int which implements the custom method - signatures required by gogoproto. - title: amount is the amount of coins to be paid as a fee - gas_limit: - type: string - format: uint64 - title: >- - gas_limit is the maximum gas that can be used in transaction - processing - - before an out of gas error occurs - payer: - type: string - description: >- - if unset, the first signer is responsible for paying the fees. If set, - the specified account must pay the fees. - - the payer must be a tx signer (and thus have signed this field in - AuthInfo). - - setting this field does *not* change the ordering of required signers - for the transaction. - granter: - type: string - title: >- - if set, the fee payer (either the first signer or the value of the - payer field) requests that a fee grant be used - - to pay fees instead of the fee payer's own balance. If an appropriate - fee grant does not exist or the chain does - - not support fee grants, this will fail - description: >- - Fee includes the amount of coins paid in fees and the maximum - - gas to be used by the transaction. The ratio yields an effective - "gasprice", - - which must be above some miminum to be accepted into the mempool. - cosmos.tx.v1beta1.GetTxResponse: - type: object - properties: - tx: - $ref: '#/definitions/cosmos.tx.v1beta1.Tx' - description: tx is the queried transaction. - tx_response: - type: object - properties: - height: - type: string - format: int64 - title: The block height - txhash: - type: string - description: The transaction hash. - codespace: - type: string - title: Namespace for the Code - code: - type: integer - format: int64 - description: Response code. - data: - type: string - description: 'Result bytes, if any.' - raw_log: - type: string - description: |- - The output of the application's logger (raw string). May be - non-deterministic. - logs: - type: array - items: - type: object - properties: - msg_index: - type: integer - format: int64 - log: - type: string - events: - type: array - items: - type: object - properties: - type: - type: string - attributes: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - description: >- - Attribute defines an attribute wrapper where the key - and value are - - strings instead of raw bytes. - description: >- - StringEvent defines en Event object wrapper where all the - attributes - - contain key/value pairs that are strings instead of raw - bytes. - description: >- - Events contains a slice of Event objects that were emitted - during some - - execution. - description: >- - ABCIMessageLog defines a structure containing an indexed tx ABCI - message log. - description: >- - The output of the application's logger (typed). May be - non-deterministic. - info: - type: string - description: Additional information. May be non-deterministic. - gas_wanted: - type: string - format: int64 - description: Amount of gas requested for transaction. - gas_used: - type: string - format: int64 - description: Amount of gas consumed by transaction. - tx: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - timestamp: - type: string - description: >- - Time of the previous block. For heights > 1, it's the weighted - median of - - the timestamps of the valid votes in the block.LastCommit. For - height == 1, - - it's genesis time. - description: >- - TxResponse defines a structure containing relevant tx data and - metadata. The - - tags are stringified and the log is JSON decoded. - description: GetTxResponse is the response type for the Service.GetTx method. - cosmos.tx.v1beta1.GetTxsEventResponse: - type: object - properties: - txs: - type: array - items: - $ref: '#/definitions/cosmos.tx.v1beta1.Tx' - description: txs is the list of queried transactions. - tx_responses: - type: array - items: - type: object - properties: - height: - type: string - format: int64 - title: The block height - txhash: - type: string - description: The transaction hash. - codespace: - type: string - title: Namespace for the Code - code: - type: integer - format: int64 - description: Response code. - data: - type: string - description: 'Result bytes, if any.' - raw_log: - type: string - description: |- - The output of the application's logger (raw string). May be - non-deterministic. - logs: - type: array - items: - type: object - properties: - msg_index: - type: integer - format: int64 - log: - type: string - events: - type: array - items: - type: object - properties: - type: - type: string - attributes: - type: array - items: - type: object - properties: - key: - type: string - value: - type: string - description: >- - Attribute defines an attribute wrapper where the - key and value are - - strings instead of raw bytes. - description: >- - StringEvent defines en Event object wrapper where all - the attributes - - contain key/value pairs that are strings instead of raw - bytes. - description: >- - Events contains a slice of Event objects that were emitted - during some - - execution. - description: >- - ABCIMessageLog defines a structure containing an indexed tx - ABCI message log. - description: >- - The output of the application's logger (typed). May be - non-deterministic. - info: - type: string - description: Additional information. May be non-deterministic. - gas_wanted: - type: string - format: int64 - description: Amount of gas requested for transaction. - gas_used: - type: string - format: int64 - description: Amount of gas consumed by transaction. - tx: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - timestamp: - type: string - description: >- - Time of the previous block. For heights > 1, it's the weighted - median of - - the timestamps of the valid votes in the block.LastCommit. For - height == 1, - - it's genesis time. - description: >- - TxResponse defines a structure containing relevant tx data and - metadata. The - - tags are stringified and the log is JSON decoded. - description: tx_responses is the list of queried TxResponses. - pagination: - description: pagination defines an pagination for the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: |- - GetTxsEventResponse is the response type for the Service.TxsByEvents - RPC method. - cosmos.tx.v1beta1.ModeInfo: - type: object - properties: - single: - title: single represents a single signer - type: object - properties: - mode: - title: mode is the signing mode of the single signer - type: string - enum: - - SIGN_MODE_UNSPECIFIED - - SIGN_MODE_DIRECT - - SIGN_MODE_TEXTUAL - - SIGN_MODE_LEGACY_AMINO_JSON - default: SIGN_MODE_UNSPECIFIED - description: >- - SignMode represents a signing mode with its own security - guarantees. - - - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be - rejected - - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is - verified with raw bytes from Tx - - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some - human-readable textual representation on top of the binary - representation - - from SIGN_MODE_DIRECT - - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses - Amino JSON and will be removed in the future - multi: - $ref: '#/definitions/cosmos.tx.v1beta1.ModeInfo.Multi' - title: multi represents a nested multisig signer - description: ModeInfo describes the signing mode of a single or nested multisig signer. - cosmos.tx.v1beta1.ModeInfo.Multi: - type: object - properties: - bitarray: - title: bitarray specifies which keys within the multisig are signing - type: object - properties: - extra_bits_stored: - type: integer - format: int64 - elems: - type: string - format: byte - description: >- - CompactBitArray is an implementation of a space efficient bit array. - - This is used to ensure that the encoded data takes up a minimal amount - of - - space after proto encoding. - - This is not thread safe, and is not intended for concurrent usage. - mode_infos: - type: array - items: - $ref: '#/definitions/cosmos.tx.v1beta1.ModeInfo' - title: |- - mode_infos is the corresponding modes of the signers of the multisig - which could include nested multisig public keys - title: Multi is the mode info for a multisig public key - cosmos.tx.v1beta1.ModeInfo.Single: - type: object - properties: - mode: - title: mode is the signing mode of the single signer - type: string - enum: - - SIGN_MODE_UNSPECIFIED - - SIGN_MODE_DIRECT - - SIGN_MODE_TEXTUAL - - SIGN_MODE_LEGACY_AMINO_JSON - default: SIGN_MODE_UNSPECIFIED - description: >- - SignMode represents a signing mode with its own security guarantees. - - - SIGN_MODE_UNSPECIFIED: SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be - rejected - - SIGN_MODE_DIRECT: SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is - verified with raw bytes from Tx - - SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some - human-readable textual representation on top of the binary - representation - - from SIGN_MODE_DIRECT - - SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses - Amino JSON and will be removed in the future - title: |- - Single is the mode info for a single signer. It is structured as a message - to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the - future - cosmos.tx.v1beta1.OrderBy: - type: string - enum: - - ORDER_BY_UNSPECIFIED - - ORDER_BY_ASC - - ORDER_BY_DESC - default: ORDER_BY_UNSPECIFIED - description: >- - - ORDER_BY_UNSPECIFIED: ORDER_BY_UNSPECIFIED specifies an unknown sorting - order. OrderBy defaults to ASC in this case. - - ORDER_BY_ASC: ORDER_BY_ASC defines ascending order - - ORDER_BY_DESC: ORDER_BY_DESC defines descending order - title: OrderBy defines the sorting order - cosmos.tx.v1beta1.SignerInfo: - type: object - properties: - public_key: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - mode_info: - $ref: '#/definitions/cosmos.tx.v1beta1.ModeInfo' - title: |- - mode_info describes the signing mode of the signer and is a nested - structure to support nested multisig pubkey's - sequence: - type: string - format: uint64 - description: >- - sequence is the sequence of the account, which describes the - - number of committed transactions signed by a given address. It is used - to - - prevent replay attacks. - description: |- - SignerInfo describes the public key and signing mode of a single top-level - signer. - cosmos.tx.v1beta1.SimulateRequest: - type: object - properties: - tx: - $ref: '#/definitions/cosmos.tx.v1beta1.Tx' - description: |- - tx is the transaction to simulate. - Deprecated. Send raw tx bytes instead. - tx_bytes: - type: string - format: byte - description: tx_bytes is the raw transaction. - description: |- - SimulateRequest is the request type for the Service.Simulate - RPC method. - cosmos.tx.v1beta1.SimulateResponse: - type: object - properties: - gas_info: - description: gas_info is the information about gas used in the simulation. - type: object - properties: - gas_wanted: - type: string - format: uint64 - description: >- - GasWanted is the maximum units of work we allow this tx to - perform. - gas_used: - type: string - format: uint64 - description: GasUsed is the amount of gas actually consumed. - result: - description: result is the result of the simulation. - type: object - properties: - data: - type: string - format: byte - description: >- - Data is any data returned from message or handler execution. It - MUST be - - length prefixed in order to separate data from multiple message - executions. - log: - type: string - description: >- - Log contains the log information from message or handler - execution. - events: - type: array - items: - type: object - properties: - type: - type: string - attributes: - type: array - items: - type: object - properties: - key: - type: string - format: byte - value: - type: string - format: byte - index: - type: boolean - format: boolean - description: >- - EventAttribute is a single key-value pair, associated with - an event. - description: >- - Event allows application developers to attach additional - information to - - ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and - ResponseDeliverTx. - - Later, transactions may be queried using these events. - description: >- - Events contains a slice of Event objects that were emitted during - message - - or handler execution. - description: |- - SimulateResponse is the response type for the - Service.SimulateRPC method. - cosmos.tx.v1beta1.Tx: - type: object - properties: - body: - title: body is the processable content of the transaction - type: object - properties: - messages: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - description: >- - messages is a list of messages to be executed. The required - signers of - - those messages define the number and order of elements in - AuthInfo's - - signer_infos and Tx's signatures. Each required signer address is - added to - - the list only the first time it occurs. - - By convention, the first required signer (usually from the first - message) - - is referred to as the primary signer and pays the fee for the - whole - - transaction. - memo: - type: string - description: >- - memo is any arbitrary note/comment to be added to the transaction. - - WARNING: in clients, any publicly exposed text should not be - called memo, - - but should be called `note` instead (see - https://github.com/cosmos/cosmos-sdk/issues/9122). - timeout_height: - type: string - format: uint64 - title: |- - timeout is the block height after which this transaction will not - be processed by the chain - extension_options: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: >- - extension_options are arbitrary options that can be added by - chains - - when the default options are not sufficient. If any of these are - present - - and can't be handled, the transaction will be rejected - non_critical_extension_options: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: >- - extension_options are arbitrary options that can be added by - chains - - when the default options are not sufficient. If any of these are - present - - and can't be handled, they will be ignored - description: TxBody is the body of a transaction that all signers sign over. - auth_info: - $ref: '#/definitions/cosmos.tx.v1beta1.AuthInfo' - title: |- - auth_info is the authorization related content of the transaction, - specifically signers, signer modes and fee - signatures: - type: array - items: - type: string - format: byte - description: >- - signatures is a list of signatures that matches the length and order - of - - AuthInfo's signer_infos to allow connecting signature meta information - like - - public key and signing mode by position. - description: Tx is the standard type used for broadcasting transactions. - cosmos.tx.v1beta1.TxBody: - type: object - properties: - messages: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up - a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - description: >- - messages is a list of messages to be executed. The required signers of - - those messages define the number and order of elements in AuthInfo's - - signer_infos and Tx's signatures. Each required signer address is - added to - - the list only the first time it occurs. - - By convention, the first required signer (usually from the first - message) - - is referred to as the primary signer and pays the fee for the whole - - transaction. - memo: - type: string - description: >- - memo is any arbitrary note/comment to be added to the transaction. - - WARNING: in clients, any publicly exposed text should not be called - memo, - - but should be called `note` instead (see - https://github.com/cosmos/cosmos-sdk/issues/9122). - timeout_height: - type: string - format: uint64 - title: |- - timeout is the block height after which this transaction will not - be processed by the chain - extension_options: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up - a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: >- - extension_options are arbitrary options that can be added by chains - - when the default options are not sufficient. If any of these are - present - - and can't be handled, the transaction will be rejected - non_critical_extension_options: - type: array - items: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up - a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - title: >- - extension_options are arbitrary options that can be added by chains - - when the default options are not sufficient. If any of these are - present - - and can't be handled, they will be ignored - description: TxBody is the body of a transaction that all signers sign over. - tendermint.abci.Event: - type: object - properties: - type: - type: string - attributes: - type: array - items: - type: object - properties: - key: - type: string - format: byte - value: - type: string - format: byte - index: - type: boolean - format: boolean - description: 'EventAttribute is a single key-value pair, associated with an event.' - description: >- - Event allows application developers to attach additional information to - - ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and - ResponseDeliverTx. - - Later, transactions may be queried using these events. - tendermint.abci.EventAttribute: - type: object - properties: - key: - type: string - format: byte - value: - type: string - format: byte - index: - type: boolean - format: boolean - description: 'EventAttribute is a single key-value pair, associated with an event.' - cosmos.upgrade.v1beta1.ModuleVersion: - type: object - properties: - name: - type: string - title: name of the app module - version: - type: string - format: uint64 - title: consensus version of the app module - description: ModuleVersion specifies a module and its consensus version. - cosmos.upgrade.v1beta1.Plan: - type: object - properties: - name: - type: string - description: >- - Sets the name for the upgrade. This name will be used by the upgraded - - version of the software to apply any special "on-upgrade" commands - during - - the first BeginBlock method after the upgrade is applied. It is also - used - - to detect whether a software version can handle a given upgrade. If no - - upgrade handler with this name has been set in the software, it will - be - - assumed that the software is out-of-date when the upgrade Time or - Height is - - reached and the software will exit. - time: - type: string - format: date-time - description: >- - Deprecated: Time based upgrades have been deprecated. Time based - upgrade logic - - has been removed from the SDK. - - If this field is not empty, an error will be thrown. - height: - type: string - format: int64 - description: |- - The height at which the upgrade must be performed. - Only used if Time is not set. - info: - type: string - title: |- - Any application specific upgrade info to be included on-chain - such as a git commit that validators could automatically upgrade to - upgraded_client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - description: >- - Plan specifies information about a planned upgrade and when it should - occur. - cosmos.upgrade.v1beta1.QueryAppliedPlanResponse: - type: object - properties: - height: - type: string - format: int64 - description: height is the block height at which the plan was applied. - description: >- - QueryAppliedPlanResponse is the response type for the Query/AppliedPlan - RPC - - method. - cosmos.upgrade.v1beta1.QueryCurrentPlanResponse: - type: object - properties: - plan: - description: plan is the current upgrade plan. - type: object - properties: - name: - type: string - description: >- - Sets the name for the upgrade. This name will be used by the - upgraded - - version of the software to apply any special "on-upgrade" commands - during - - the first BeginBlock method after the upgrade is applied. It is - also used - - to detect whether a software version can handle a given upgrade. - If no - - upgrade handler with this name has been set in the software, it - will be - - assumed that the software is out-of-date when the upgrade Time or - Height is - - reached and the software will exit. - time: - type: string - format: date-time - description: >- - Deprecated: Time based upgrades have been deprecated. Time based - upgrade logic - - has been removed from the SDK. - - If this field is not empty, an error will be thrown. - height: - type: string - format: int64 - description: |- - The height at which the upgrade must be performed. - Only used if Time is not set. - info: - type: string - title: >- - Any application specific upgrade info to be included on-chain - - such as a git commit that validators could automatically upgrade - to - upgraded_client_state: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - description: >- - QueryCurrentPlanResponse is the response type for the Query/CurrentPlan - RPC - - method. - cosmos.upgrade.v1beta1.QueryModuleVersionsResponse: - type: object - properties: - module_versions: - type: array - items: - type: object - properties: - name: - type: string - title: name of the app module - version: - type: string - format: uint64 - title: consensus version of the app module - description: ModuleVersion specifies a module and its consensus version. - description: >- - module_versions is a list of module names with their consensus - versions. - description: >- - QueryModuleVersionsResponse is the response type for the - Query/ModuleVersions - - RPC method. - cosmos.upgrade.v1beta1.QueryUpgradedConsensusStateResponse: - type: object - properties: - upgraded_consensus_state: - type: string - format: byte - description: >- - QueryUpgradedConsensusStateResponse is the response type for the - Query/UpgradedConsensusState - - RPC method. - cosmos.authz.v1beta1.Grant: - type: object - properties: - authorization: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message along - with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in the - form - - of utility functions or additional generated methods of the Any type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default use - - 'type.googleapis.com/full.type.name' as the type URL and the unpack - - methods only use the fully qualified type name after the last '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - expiration: - type: string - format: date-time - description: |- - Grant gives permissions to execute - the provide method with expiration time. - cosmos.authz.v1beta1.QueryGrantsResponse: - type: object - properties: - grants: - type: array - items: - type: object - properties: - authorization: - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - description: >- - `Any` contains an arbitrary serialized protocol buffer message - along with a - - URL that describes the type of the serialized message. - - - Protobuf library provides support to pack/unpack Any values in - the form - - of utility functions or additional generated methods of the Any - type. - - - Example 1: Pack and unpack a message in C++. - - Foo foo = ...; - Any any; - any.PackFrom(foo); - ... - if (any.UnpackTo(&foo)) { - ... - } - - Example 2: Pack and unpack a message in Java. - - Foo foo = ...; - Any any = Any.pack(foo); - ... - if (any.is(Foo.class)) { - foo = any.unpack(Foo.class); - } - - Example 3: Pack and unpack a message in Python. - - foo = Foo(...) - any = Any() - any.Pack(foo) - ... - if any.Is(Foo.DESCRIPTOR): - any.Unpack(foo) - ... - - Example 4: Pack and unpack a message in Go - - foo := &pb.Foo{...} - any, err := ptypes.MarshalAny(foo) - ... - foo := &pb.Foo{} - if err := ptypes.UnmarshalAny(any, foo); err != nil { - ... - } - - The pack methods provided by protobuf library will by default - use - - 'type.googleapis.com/full.type.name' as the type URL and the - unpack - - methods only use the fully qualified type name after the last - '/' - - in the type URL, for example "foo.bar.com/x/y.z" will yield type - - name "y.z". - - - - JSON - - ==== - - The JSON representation of an `Any` value uses the regular - - representation of the deserialized, embedded message, with an - - additional field `@type` which contains the type URL. Example: - - package google.profile; - message Person { - string first_name = 1; - string last_name = 2; - } - - { - "@type": "type.googleapis.com/google.profile.Person", - "firstName": , - "lastName": - } - - If the embedded message type is well-known and has a custom JSON - - representation, that representation will be embedded adding a - field - - `value` which holds the custom JSON in addition to the `@type` - - field. Example (for message [google.protobuf.Duration][]): - - { - "@type": "type.googleapis.com/google.protobuf.Duration", - "value": "1.212s" - } - expiration: - type: string - format: date-time - description: |- - Grant gives permissions to execute - the provide method with expiration time. - description: authorizations is a list of grants granted for grantee by granter. - pagination: - description: pagination defines an pagination for the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryGrantsResponse is the response type for the Query/Authorizations RPC - method. - cosmos.feegrant.v1beta1.Grant: - type: object - properties: - granter: - type: string - description: >- - granter is the address of the user granting an allowance of their - funds. - grantee: - type: string - description: >- - grantee is the address of the user being granted an allowance of - another user's funds. - allowance: - description: allowance can be any of basic and filtered fee allowance. - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all types - that they - - expect it to use in the context of Any. However, for URLs which - use the - - scheme `http`, `https`, or no scheme, one can optionally set up a - type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above specified - type. - title: Grant is stored in the KVStore to record a grant with full context - cosmos.feegrant.v1beta1.QueryAllowanceResponse: - type: object - properties: - allowance: - description: allowance is a allowance granted for grantee by granter. - type: object - properties: - granter: - type: string - description: >- - granter is the address of the user granting an allowance of their - funds. - grantee: - type: string - description: >- - grantee is the address of the user being granted an allowance of - another user's funds. - allowance: - description: allowance can be any of basic and filtered fee allowance. - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) might - be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - title: Grant is stored in the KVStore to record a grant with full context - description: >- - QueryAllowanceResponse is the response type for the Query/Allowance RPC - method. - cosmos.feegrant.v1beta1.QueryAllowancesResponse: - type: object - properties: - allowances: - type: array - items: - type: object - properties: - granter: - type: string - description: >- - granter is the address of the user granting an allowance of - their funds. - grantee: - type: string - description: >- - grantee is the address of the user being granted an allowance of - another user's funds. - allowance: - description: allowance can be any of basic and filtered fee allowance. - type: object - properties: - type_url: - type: string - description: >- - A URL/resource name that uniquely identifies the type of the - serialized - - protocol buffer message. This string must contain at least - - one "/" character. The last segment of the URL's path must - represent - - the fully qualified name of the type (as in - - `path/google.protobuf.Duration`). The name should be in a - canonical form - - (e.g., leading "." is not accepted). - - - In practice, teams usually precompile into the binary all - types that they - - expect it to use in the context of Any. However, for URLs - which use the - - scheme `http`, `https`, or no scheme, one can optionally set - up a type - - server that maps type URLs to message definitions as - follows: - - - * If no scheme is provided, `https` is assumed. - - * An HTTP GET on the URL must yield a - [google.protobuf.Type][] - value in binary format, or produce an error. - * Applications are allowed to cache lookup results based on - the - URL, or have them precompiled into a binary to avoid any - lookup. Therefore, binary compatibility needs to be preserved - on changes to types. (Use versioned type names to manage - breaking changes.) - - Note: this functionality is not currently available in the - official - - protobuf release, and it is not used for type URLs beginning - with - - type.googleapis.com. - - - Schemes other than `http`, `https` (or the empty scheme) - might be - - used with implementation specific semantics. - value: - type: string - format: byte - description: >- - Must be a valid serialized protocol buffer of the above - specified type. - title: Grant is stored in the KVStore to record a grant with full context - description: allowances are allowance's granted for grantee by granter. - pagination: - description: pagination defines an pagination for the response. - type: object - properties: - next_key: - type: string - format: byte - title: |- - next_key is the key to be passed to PageRequest.key to - query the next page most efficiently - total: - type: string - format: uint64 - title: >- - total is total number of results available if - PageRequest.count_total - - was set, its value is undefined otherwise - description: >- - QueryAllowancesResponse is the response type for the Query/Allowances RPC - method. diff --git a/swagger/swagger-ui/index.css b/swagger/swagger-ui/index.css deleted file mode 100644 index f2376fda..00000000 --- a/swagger/swagger-ui/index.css +++ /dev/null @@ -1,16 +0,0 @@ -html { - box-sizing: border-box; - overflow: -moz-scrollbars-vertical; - overflow-y: scroll; -} - -*, -*:before, -*:after { - box-sizing: inherit; -} - -body { - margin: 0; - background: #fafafa; -} diff --git a/swagger/swagger-ui/index.html b/swagger/swagger-ui/index.html deleted file mode 100644 index 84ae62d3..00000000 --- a/swagger/swagger-ui/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - Swagger UI - - - - - - - -
- - - - - diff --git a/swagger/swagger-ui/swagger-initializer.js b/swagger/swagger-ui/swagger-initializer.js deleted file mode 100644 index f48f13f5..00000000 --- a/swagger/swagger-ui/swagger-initializer.js +++ /dev/null @@ -1,20 +0,0 @@ -window.onload = function() { - // - - // the following lines will be replaced by docker/configurator, when it runs in a docker-container - window.ui = SwaggerUIBundle({ - url: "swagger.yaml", - dom_id: '#swagger-ui', - deepLinking: true, - presets: [ - SwaggerUIBundle.presets.apis, - SwaggerUIStandalonePreset - ], - plugins: [ - SwaggerUIBundle.plugins.DownloadUrl - ], - layout: "StandaloneLayout" - }); - - // -}; diff --git a/swagger/swagger-ui/swagger-initializer.js.bak b/swagger/swagger-ui/swagger-initializer.js.bak deleted file mode 100644 index f48f13f5..00000000 --- a/swagger/swagger-ui/swagger-initializer.js.bak +++ /dev/null @@ -1,20 +0,0 @@ -window.onload = function() { - // - - // the following lines will be replaced by docker/configurator, when it runs in a docker-container - window.ui = SwaggerUIBundle({ - url: "swagger.yaml", - dom_id: '#swagger-ui', - deepLinking: true, - presets: [ - SwaggerUIBundle.presets.apis, - SwaggerUIStandalonePreset - ], - plugins: [ - SwaggerUIBundle.plugins.DownloadUrl - ], - layout: "StandaloneLayout" - }); - - // -}; diff --git a/swagger/swagger-ui/swagger-ui-bundle.js.map b/swagger/swagger-ui/swagger-ui-bundle.js.map deleted file mode 100644 index 69465269..00000000 --- a/swagger/swagger-ui/swagger-ui-bundle.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"swagger-ui-bundle.js","mappings":"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B,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,IAAK,GAAGyoB,OAAOzoB,EAAI,GAAI,KAAKyoB,OAAOzoB,EAAI,GAAI,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CA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIC,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAG5pH,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAgEF,SAAS6pH,EAAUvuE,GACjB,OAAOt7C,EAAO,MAAOs7C,EAAI,KAO3B,SAASt7C,KAAU/mB,GAEjB,OADeA,EAAKyvB,KAAKonB,IAAMnzC,OApBjB2+D,EAoBwBxrB,GAlBpB,iBAAPwrB,EAAwBA,EAE5BA,EAAG3+D,OAHM,KADlB,IAAgB2+D,KAoB4BhxD,KAAK,IAibjDnT,EAAOD,QAraP,SAAoB44E,GAQlB,MAMMg6D,EAAa3P,EACbjgB,EACG,KADHA,EAEC,MAED6vB,EAAU,CACdtP,MAAO,sBACP/sH,IAAK,4BAKLs8H,kBAAmB,CAAChoI,EAAOukB,KACzB,MAAM0jH,EAAkBjoI,EAAM,GAAGvK,OAASuK,EAAM+U,MAC1Cs6C,EAAWrvD,EAAMihD,MAAMgnF,GAIZ,MAAb54E,EAMa,MAAbA,IA9Bc,EAACrvD,GAASoW,MAAAA,MAC9B,MAAM6X,EAAM,KAAOjuB,EAAM,GAAG+P,MAAM,GAElC,OAAgB,IADJ/P,EAAMihD,MAAM5gD,QAAQ4tB,EAAK7X,IA+B5B8xH,CAAcloI,EAAO,CAAEoW,MAAO6xH,KACjC1jH,EAASiyG,eATXjyG,EAASiyG,gBAcT2R,EAAa,CACjB7K,SAAUnF,EACVkD,QAA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,OAAQnrL,GA3XZ,qCACGp6B,MAAM,IAAIlH,SAAQ,SAASqyL,GAAM85B,GAAQ95B,EAAGrvI,WAAW,IAAM,KAqehE,IAAI0pK,GAAc,8CAyDlB,IAAIC,GAAgB,8CA2UpB,IAAIC,GAAc,CAChB,OACA,MACA,aACA,MACA,OACA,QACA,OACA,MACA,MACA,OACA,OACA,MACA,OACA,MACA,OACA,MACA,MACA,KACA,SACA,OACA,OACA,QACA,MACA,OACA,KACA,OACA,OACA,MACA,OACA,YACA,WACA,YACA,WACA,OACA,SACA,MACA,OACA,QACA,OACA,UACA,OACA,MACA,KACA,MACA,OACA,kBACA,MACA,OACA,OACA,UACA,UACA,QACA,QACA,MACA,OACA,MACA,OACA,YACA,aACA,MACA,MACA,SACA,OACA,cACA,SACA,MACA,KACA,MACA,QACA,KACA,MACA,OACA,cACA,cACA,eACA,OACA,UACA,UACA,YACA,MACA,MACA,MACA,MACA,aACA,KACA,UACA,UACA,OACA,SACA,SACA,mBACA,0BACA,UACA,MACA,kBACA,qBACA,MACA,MACA,OACA,WACA,OACA,SACA,OACA,KACA,MACA,eACA,QACA,MACA,OACA,MACA,MACA,OACA,OACA,OACA,MACA,MACA,UACA,SACA,QACA,SACA,OACA,SACA,UACA,MACA,UACA,QACA,SACA,MACA,QACA,MACA,OACA,YACA,WACA,QACA,OACA,QACA,MACA,WACA,MACA,QACA,OACA,aACA,OACA,MACA,QACA,MACA,SACA,UACA,MACA,QACA,MACA,YACA,SACA,MACA,SACA,SACA,WACA,cACA,SACA,OACA,UACA,QACA,MACA,SAOEC,GAAc,2IACdC,GAAc,2CAuElB,SAASC,GAAUp9I,EAAO32D,GAIxB,OAHA22D,EAAQA,EAAMj2E,OACdsf,EAAUA,GAAW,GAEd,SAASjkB,EAAK6I,EAAM8oB,GACzB,OAAK9oB,GAGL8oB,EAAMA,EAAIhtB,QAAUgtB,EACpBipD,EAAQA,EAAM7wE,QAAQlB,EAAM8oB,GACrB3xB,GAJE,IAAIob,OA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","sources":["webpack://SwaggerUIBundle/webpack/universalModuleDefinition","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/array/from.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/array/is-array.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/date/now.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/bind.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/entries.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/every.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/fill.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/find-index.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/find.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/keys.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/last-index-of.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/repeat.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/some.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/sort.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/splice.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/starts-with.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/values.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/json/stringify.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/map.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/object/assign.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/object/entries.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/object/values.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/promise.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/set-timeout.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/url-search-params.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/url.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js-stable/weak-map.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/array/from.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/array/is-array.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/get-iterator-method.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/instance/bind.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/instance/filter.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/instance/for-each.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/instance/index-of.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/instance/slice.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/map.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/object/assign.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/object/create.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/object/define-properties.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/object/define-property.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-descriptor.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-descriptors.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-symbols.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/object/get-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/object/keys.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/object/set-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/promise.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/reflect/construct.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/reflect/get.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/symbol.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/core-js/symbol/iterator.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/arrayLikeToArray.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/arrayWithHoles.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/arrayWithoutHoles.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/assertThisInitialized.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/asyncToGenerator.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/classCallCheck.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/construct.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/createClass.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/createForOfIteratorHelper.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/createSuper.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/defineProperty.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/extends.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/get.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/getPrototypeOf.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/inherits.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/isNativeFunction.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/isNativeReflectConstruct.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/iterableToArray.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/iterableToArrayLimit.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/nonIterableRest.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/nonIterableSpread.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/objectSpread2.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/objectWithoutProperties.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/objectWithoutPropertiesLoose.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/possibleConstructorReturn.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/setPrototypeOf.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/slicedToArray.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/superPropBase.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/toArray.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/toConsumableArray.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/typeof.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/unsupportedIterableToArray.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/helpers/wrapNativeSuper.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime-corejs3/regenerator/index.js","webpack://SwaggerUIBundle/./node_modules/@braintree/sanitize-url/dist/index.js","webpack://SwaggerUIBundle/./node_modules/react-immutable-pure-component/lib/react-immutable-pure-component.es.js","webpack://SwaggerUIBundle/./src/core/components/model.jsx","webpack://SwaggerUIBundle/./src/core/components/online-validator-badge.jsx","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/utils.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/html-tag.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/anchor-tag-builder.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/truncate/truncate-smart.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/truncate/truncate-middle.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/truncate/truncate-end.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/match/match.js","webpack://SwaggerUIBundle/./node_modules/autolinker/node_modules/tslib/tslib.es6.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/match/email-match.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/matcher/url-matcher.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/match/hashtag-match.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/match/mention-match.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/match/phone-match.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/match/url-match.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/matcher/matcher.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/regex-lib.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/matcher/tld-regex.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/matcher/email-matcher.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/matcher/url-match-validator.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/matcher/hashtag-matcher.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/matcher/phone-matcher.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/matcher/mention-matcher.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/htmlParser/parse-html.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/autolinker.js","webpack://SwaggerUIBundle/./node_modules/autolinker/dist/es2015/index.js","webpack://SwaggerUIBundle/./node_modules/remarkable/dist/esm/linkify.js","webpack://SwaggerUIBundle/./src/core/components/providers/markdown.jsx","webpack://SwaggerUIBundle/./src/core/plugins/all.js","webpack://SwaggerUIBundle/./src/core/plugins/auth/actions.js","webpack://SwaggerUIBundle/./src/core/plugins/auth/index.js","webpack://SwaggerUIBundle/./src/core/plugins/auth/reducers.js","webpack://SwaggerUIBundle/./src/core/plugins/auth/selectors.js","webpack://SwaggerUIBundle/./src/core/plugins/auth/spec-wrap-actions.js","webpack://SwaggerUIBundle/./src/core/plugins/configs/actions.js","webpack://SwaggerUIBundle/./src/core/plugins/configs/helpers.js","webpack://SwaggerUIBundle/./src/core/plugins/configs/index.js","webpack://SwaggerUIBundle/./src/core/plugins/configs/reducers.js","webpack://SwaggerUIBundle/./src/core/plugins/configs/selectors.js","webpack://SwaggerUIBundle/./src/core/plugins/configs/spec-actions.js","webpack://SwaggerUIBundle/./src/core/plugins/deep-linking/helpers.js","webpack://SwaggerUIBundle/./src/core/plugins/deep-linking/index.js","webpack://SwaggerUIBundle/./src/core/plugins/deep-linking/layout.js","webpack://SwaggerUIBundle/./src/core/plugins/deep-linking/operation-tag-wrapper.jsx","webpack://SwaggerUIBundle/./src/core/plugins/deep-linking/operation-wrapper.jsx","webpack://SwaggerUIBundle/./src/core/plugins/download-url.js","webpack://SwaggerUIBundle/./src/core/plugins/err/actions.js","webpack://SwaggerUIBundle/./src/core/plugins/err/error-transformers/hook.js","webpack://SwaggerUIBundle/./src/core/plugins/err/error-transformers/transformers/not-of-type.js","webpack://SwaggerUIBundle/./src/core/plugins/err/error-transformers/transformers/parameter-oneof.js","webpack://SwaggerUIBundle/./src/core/plugins/err/index.js","webpack://SwaggerUIBundle/./src/core/plugins/err/reducers.js","webpack://SwaggerUIBundle/./src/core/plugins/err/selectors.js","webpack://SwaggerUIBundle/./src/core/plugins/filter/index.js","webpack://SwaggerUIBundle/./src/core/plugins/filter/opsFilter.js","webpack://SwaggerUIBundle/./src/core/plugins/layout/actions.js","webpack://SwaggerUIBundle/./src/core/plugins/layout/index.js","webpack://SwaggerUIBundle/./src/core/plugins/layout/reducers.js","webpack://SwaggerUIBundle/./src/core/plugins/layout/selectors.js","webpack://SwaggerUIBundle/./src/core/plugins/layout/spec-extensions/wrap-selector.js","webpack://SwaggerUIBundle/./src/core/plugins/logs/index.js","webpack://SwaggerUIBundle/./src/core/plugins/oas3/actions.js","webpack://SwaggerUIBundle/./src/core/plugins/oas3/auth-extensions/wrap-selectors.js","webpack://SwaggerUIBundle/./src/core/plugins/oas3/components/callbacks.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/components/http-auth.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/components/index.js","webpack://SwaggerUIBundle/./src/core/plugins/oas3/components/operation-link.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/components/operation-servers.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/components/request-body-editor.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/components/request-body.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/components/servers-container.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/components/servers.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/helpers.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/index.js","webpack://SwaggerUIBundle/./src/core/plugins/oas3/reducers.js","webpack://SwaggerUIBundle/./src/core/plugins/oas3/selectors.js","webpack://SwaggerUIBundle/./src/core/plugins/oas3/spec-extensions/selectors.js","webpack://SwaggerUIBundle/./src/core/plugins/oas3/spec-extensions/wrap-selectors.js","webpack://SwaggerUIBundle/./src/core/plugins/oas3/wrap-components/auth-item.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/wrap-components/index.js","webpack://SwaggerUIBundle/./src/core/plugins/oas3/wrap-components/json-schema-string.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/wrap-components/markdown.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/wrap-components/model.jsx","webpack://SwaggerUIBundle/./src/core/plugins/oas3/wrap-components/online-validator-badge.js","webpack://SwaggerUIBundle/./src/core/plugins/oas3/wrap-components/version-stamp.jsx","webpack://SwaggerUIBundle/./src/core/plugins/on-complete/index.js","webpack://SwaggerUIBundle/./src/core/plugins/request-snippets/fn.js","webpack://SwaggerUIBundle/./src/core/plugins/request-snippets/index.js","webpack://SwaggerUIBundle/./src/core/plugins/request-snippets/request-snippets.jsx","webpack://SwaggerUIBundle/./src/core/plugins/request-snippets/selectors.js","webpack://SwaggerUIBundle/./src/core/plugins/safe-render/components/error-boundary.jsx","webpack://SwaggerUIBundle/./src/core/plugins/safe-render/components/fallback.jsx","webpack://SwaggerUIBundle/./src/core/plugins/safe-render/fn.jsx","webpack://SwaggerUIBundle/./src/core/plugins/safe-render/index.js","webpack://SwaggerUIBundle/./src/core/plugins/samples/fn.js","webpack://SwaggerUIBundle/./src/core/plugins/samples/index.js","webpack://SwaggerUIBundle/./src/core/plugins/spec/actions.js","webpack://SwaggerUIBundle/./src/core/plugins/spec/index.js","webpack://SwaggerUIBundle/./src/core/plugins/spec/reducers.js","webpack://SwaggerUIBundle/./src/core/plugins/spec/selectors.js","webpack://SwaggerUIBundle/./src/core/plugins/spec/wrap-actions.js","webpack://SwaggerUIBundle/./src/core/plugins/swagger-js/configs-wrap-actions.js","webpack://SwaggerUIBundle/./node_modules/formdata-node/lib/esm/browser.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/execute/oas3/style-serializer.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/http/fold-formdata-to-request.browser.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/http/index.js","webpack://SwaggerUIBundle/./node_modules/fast-json-patch/module/helpers.mjs","webpack://SwaggerUIBundle/./node_modules/fast-json-patch/module/core.mjs","webpack://SwaggerUIBundle/./node_modules/fast-json-patch/module/duplex.mjs","webpack://SwaggerUIBundle/./node_modules/fast-json-patch/index.mjs","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/specmap/lib/index.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/specmap/lib/create-error.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/specmap/helpers.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/constants.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/specmap/lib/refs.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/specmap/lib/all-of.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/specmap/lib/parameters.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/specmap/lib/properties.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/specmap/lib/context-tree.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/specmap/index.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/resolver.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/node_modules/is-plain-object/dist/is-plain-object.mjs","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/execute/swagger2/parameter-builders.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/execute/oas3/content-serializer.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/execute/oas3/parameter-builders.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/execute/oas3/build-request.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/execute/swagger2/build-request.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/execute/index.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/subtree-resolver/index.js","webpack://SwaggerUIBundle/./src/core/plugins/swagger-js/index.js","webpack://SwaggerUIBundle/./src/core/plugins/util/index.js","webpack://SwaggerUIBundle/./src/core/plugins/view/fn.js","webpack://SwaggerUIBundle/./src/core/plugins/view/index.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/components/Context.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/utils/batch.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/utils/Subscription.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/components/Provider.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/components/connectAdvanced.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/utils/bindActionCreators.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/connect/mapStateToProps.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/connect/mergeProps.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/connect/selectorFactory.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/connect/connect.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/hooks/useSelector.js","webpack://SwaggerUIBundle/./node_modules/react-redux/es/index.js","webpack://SwaggerUIBundle/./src/core/plugins/view/root-injects.jsx","webpack://SwaggerUIBundle/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/create-element.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/highlight.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/light.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/languages/hljs/javascript.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/languages/hljs/json.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/languages/hljs/xml.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/languages/hljs/bash.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/languages/hljs/yaml.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/languages/hljs/http.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/languages/hljs/powershell.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/styles/hljs/agate.js","webpack://SwaggerUIBundle/./src/core/syntax-highlighting.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/styles/hljs/arta.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/styles/hljs/monokai.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/styles/hljs/nord.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/styles/hljs/obsidian.js","webpack://SwaggerUIBundle/./node_modules/react-syntax-highlighter/dist/esm/styles/hljs/tomorrow-night.js","webpack://SwaggerUIBundle/./src/core/utils.js","webpack://SwaggerUIBundle/./src/core/utils/jsonParse.js","webpack://SwaggerUIBundle/./src/core/window.js","webpack://SwaggerUIBundle/./src/helpers/get-parameter-schema.js","webpack://SwaggerUIBundle/./src/helpers/memoizeN.js","webpack://SwaggerUIBundle/./node_modules/base64-js/index.js","webpack://SwaggerUIBundle/./node_modules/btoa/index.js","webpack://SwaggerUIBundle/./node_modules/buffer/index.js","webpack://SwaggerUIBundle/./node_modules/call-bind/callBound.js","webpack://SwaggerUIBundle/./node_modules/call-bind/index.js","webpack://SwaggerUIBundle/./node_modules/classnames/index.js","webpack://SwaggerUIBundle/./node_modules/copy-to-clipboard/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/array/from.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/array/is-array.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/get-iterator-method.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/instance/bind.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/instance/filter.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/instance/for-each.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/instance/index-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/instance/slice.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/map/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/object/assign.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/object/create.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/object/define-properties.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/object/define-property.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/object/get-own-property-descriptor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/object/get-own-property-descriptors.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/object/get-own-property-symbols.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/object/get-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/object/keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/object/set-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/promise/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/reflect/construct.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/reflect/get.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/symbol/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/actual/symbol/iterator.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/from.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/is-array.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/concat.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/entries.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/every.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/fill.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/filter.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/find-index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/find.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/for-each.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/includes.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/index-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/last-index-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/map.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/reduce.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/slice.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/some.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/sort.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/splice.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/array/virtual/values.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/date/now.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/function/virtual/bind.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/get-iterator-method.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/bind.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/concat.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/every.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/fill.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/filter.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/find-index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/find.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/includes.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/index-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/last-index-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/map.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/reduce.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/repeat.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/slice.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/some.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/sort.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/splice.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/starts-with.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/instance/trim.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/json/stringify.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/map/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/object/assign.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/object/create.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/object/define-properties.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/object/define-property.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/object/entries.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/object/get-own-property-descriptor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/object/get-own-property-descriptors.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/object/get-own-property-symbols.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/object/get-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/object/keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/object/set-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/object/values.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/promise/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/reflect/construct.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/reflect/get.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/string/virtual/includes.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/string/virtual/repeat.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/string/virtual/starts-with.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/string/virtual/trim.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/symbol/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/symbol/iterator.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/es/weak-map/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/array/from.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/array/is-array.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/get-iterator-method.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/instance/bind.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/instance/filter.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/instance/for-each.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/instance/index-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/instance/slice.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/map/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/object/assign.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/object/create.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/object/define-properties.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/object/define-property.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/object/get-own-property-descriptor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/object/get-own-property-descriptors.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/object/get-own-property-symbols.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/object/get-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/object/keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/object/set-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/promise/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/reflect/construct.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/reflect/get.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/symbol/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/features/symbol/iterator.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/a-callable.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/a-constructor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/a-possible-prototype.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/add-to-unscopables.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/an-instance.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/an-object.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-buffer-non-extensible.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-fill.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-for-each.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-from.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-includes.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-iteration.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-last-index-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-method-has-species-support.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-method-is-strict.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-reduce.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-slice-simple.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-slice.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-sort.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-species-constructor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/array-species-create.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/check-correctness-of-iteration.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/classof-raw.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/classof.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/clear-error-stack.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/collection-delete-all.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/collection-from.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/collection-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/collection-strong.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/collection-weak.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/collection.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/copy-constructor-properties.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/correct-is-regexp-logic.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/correct-prototype-getter.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/create-iterator-constructor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/create-non-enumerable-property.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/create-property-descriptor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/create-property.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/define-iterator.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/define-well-known-symbol.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/descriptors.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/document-create-element.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/dom-iterables.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/engine-ff-version.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/engine-is-browser.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/engine-is-ie-or-edge.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/engine-is-ios-pebble.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/engine-is-ios.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/engine-is-node.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/engine-is-webos-webkit.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/engine-user-agent.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/engine-v8-version.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/engine-webkit-version.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/entry-virtual.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/enum-bug-keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/error-stack-installable.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/export.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/fails.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/freezing.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/function-apply.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/function-bind-context.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/function-bind-native.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/function-bind.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/function-call.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/function-name.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/function-uncurry-this.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/get-built-in.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/get-iterator-method.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/get-iterator.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/get-map-iterator.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/get-method.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/global.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/has-own-property.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/hidden-keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/host-report-errors.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/html.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/ie8-dom-define.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/indexed-object.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/inspect-source.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/install-error-cause.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/internal-metadata.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/internal-state.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/is-array-iterator-method.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/is-array.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/is-callable.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/is-constructor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/is-data-descriptor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/is-forced.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/is-object.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/is-pure.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/is-regexp.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/is-symbol.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/iterate.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/iterator-close.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/iterators-core.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/iterators.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/length-of-array-like.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/map-emplace.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/map-upsert.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/microtask.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/native-promise-constructor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/native-symbol.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/native-url.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/native-weak-map.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/new-promise-capability.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/normalize-string-argument.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/not-a-regexp.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-assign.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-create.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-define-properties.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-define-property.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-get-own-property-names-external.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-get-own-property-names.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-get-own-property-symbols.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-get-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-is-extensible.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-is-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-keys-internal.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-property-is-enumerable.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-set-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-to-array.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/object-to-string.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/ordinary-to-primitive.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/own-keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/path.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/perform.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/promise-resolve.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/queue.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/redefine-all.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/redefine.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/require-object-coercible.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/same-value-zero.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/set-global.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/set-species.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/set-to-string-tag.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/shared-key.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/shared-store.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/shared.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/species-constructor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/string-multibyte.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/string-punycode-to-ascii.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/string-repeat.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/string-trim-forced.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/string-trim.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/task.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/to-absolute-index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/to-indexed-object.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/to-integer-or-infinity.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/to-length.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/to-object.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/to-primitive.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/to-property-key.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/to-string-tag-support.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/to-string.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/try-to-string.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/uid.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/use-symbol-as-uid.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/v8-prototype-define-bug.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/validate-arguments-length.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/well-known-symbol-wrapped.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/well-known-symbol.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/internals/whitespaces.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.aggregate-error.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.concat.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.every.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.fill.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.filter.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.find-index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.find.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.for-each.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.from.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.includes.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.index-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.is-array.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.iterator.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.last-index-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.map.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.reduce.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.slice.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.some.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.sort.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.array.splice.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.date.now.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.function.bind.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.json.stringify.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.json.to-string-tag.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.map.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.object.assign.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.object.create.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.object.define-properties.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.object.define-property.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.object.entries.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.object.get-own-property-descriptors.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.object.get-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.object.keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.object.set-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.object.values.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.promise.all-settled.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.promise.any.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.promise.finally.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.promise.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.reflect.construct.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.reflect.get.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.string.includes.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.string.iterator.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.string.repeat.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.string.starts-with.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.string.trim.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.async-iterator.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.has-instance.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.iterator.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.match-all.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.match.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.replace.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.search.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.species.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.split.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.to-primitive.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.to-string-tag.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.symbol.unscopables.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/es.weak-map.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.aggregate-error.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.delete-all.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.emplace.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.every.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.filter.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.find-key.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.find.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.from.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.group-by.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.includes.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.key-by.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.key-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.map-keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.map-values.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.merge.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.reduce.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.some.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.update-or-insert.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.update.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.map.upsert.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.promise.all-settled.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.promise.any.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.promise.try.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.symbol.dispose.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.symbol.matcher.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.symbol.metadata.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.symbol.observable.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/esnext.symbol.replace-all.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/web.dom-collections.iterator.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/web.timers.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/web.url-search-params.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/modules/web.url.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/array/from.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/array/is-array.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/array/virtual/entries.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/array/virtual/for-each.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/array/virtual/keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/array/virtual/values.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/date/now.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/get-iterator-method.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/bind.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/concat.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/entries.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/every.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/fill.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/filter.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/find-index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/find.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/for-each.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/includes.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/index-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/last-index-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/map.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/reduce.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/repeat.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/slice.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/some.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/sort.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/splice.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/starts-with.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/trim.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/instance/values.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/json/stringify.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/map/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/object/assign.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/object/create.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/object/define-properties.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/object/define-property.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/object/entries.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/object/get-own-property-descriptor.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/object/get-own-property-descriptors.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/object/get-own-property-symbols.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/object/get-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/object/keys.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/object/set-prototype-of.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/object/values.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/promise/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/reflect/construct.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/reflect/get.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/set-timeout.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/symbol/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/symbol/iterator.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/url-search-params/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/url/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/stable/weak-map/index.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/web/url-search-params.js","webpack://SwaggerUIBundle/./node_modules/core-js-pure/web/url.js","webpack://SwaggerUIBundle/./node_modules/cross-fetch/dist/browser-polyfill.js","webpack://SwaggerUIBundle/./node_modules/css.escape/css.escape.js","webpack://SwaggerUIBundle/./node_modules/deep-extend/lib/deep-extend.js","webpack://SwaggerUIBundle/./node_modules/deepmerge/dist/cjs.js","webpack://SwaggerUIBundle/./node_modules/dompurify/dist/purify.js","webpack://SwaggerUIBundle/./node_modules/drange/lib/index.js","webpack://SwaggerUIBundle/./node_modules/events/events.js","webpack://SwaggerUIBundle/./node_modules/fault/index.js","webpack://SwaggerUIBundle/./node_modules/format/format.js","webpack://SwaggerUIBundle/./node_modules/function-bind/implementation.js","webpack://SwaggerUIBundle/./node_modules/function-bind/index.js","webpack://SwaggerUIBundle/./node_modules/get-intrinsic/index.js","webpack://SwaggerUIBundle/./node_modules/has-symbols/index.js","webpack://SwaggerUIBundle/./node_modules/has-symbols/shams.js","webpack://SwaggerUIBundle/./node_modules/has/src/index.js","webpack://SwaggerUIBundle/./node_modules/highlight.js/lib/core.js","webpack://SwaggerUIBundle/./node_modules/highlight.js/lib/languages/bash.js","webpack://SwaggerUIBundle/./node_modules/highlight.js/lib/languages/http.js","webpack://SwaggerUIBundle/./node_modules/highlight.js/lib/languages/javascript.js","webpack://SwaggerUIBundle/./node_modules/highlight.js/lib/languages/json.js","webpack://SwaggerUIBundle/./node_modules/highlight.js/lib/languages/powershell.js","webpack://SwaggerUIBundle/./node_modules/highlight.js/lib/languages/xml.js","webpack://SwaggerUIBundle/./node_modules/highlight.js/lib/languages/yaml.js","webpack://SwaggerUIBundle/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://SwaggerUIBundle/./node_modules/ieee754/index.js","webpack://SwaggerUIBundle/./node_modules/immutable/dist/immutable.js","webpack://SwaggerUIBundle/./node_modules/inherits/inherits_browser.js","webpack://SwaggerUIBundle/./node_modules/js-file-download/file-download.js","webpack://SwaggerUIBundle/./node_modules/lodash.debounce/index.js","webpack://SwaggerUIBundle/./node_modules/lodash/_DataView.js","webpack://SwaggerUIBundle/./node_modules/lodash/_Hash.js","webpack://SwaggerUIBundle/./node_modules/lodash/_ListCache.js","webpack://SwaggerUIBundle/./node_modules/lodash/_Map.js","webpack://SwaggerUIBundle/./node_modules/lodash/_MapCache.js","webpack://SwaggerUIBundle/./node_modules/lodash/_Promise.js","webpack://SwaggerUIBundle/./node_modules/lodash/_Set.js","webpack://SwaggerUIBundle/./node_modules/lodash/_SetCache.js","webpack://SwaggerUIBundle/./node_modules/lodash/_Stack.js","webpack://SwaggerUIBundle/./node_modules/lodash/_Symbol.js","webpack://SwaggerUIBundle/./node_modules/lodash/_Uint8Array.js","webpack://SwaggerUIBundle/./node_modules/lodash/_WeakMap.js","webpack://SwaggerUIBundle/./node_modules/lodash/_apply.js","webpack://SwaggerUIBundle/./node_modules/lodash/_arrayEach.js","webpack://SwaggerUIBundle/./node_modules/lodash/_arrayFilter.js","webpack://SwaggerUIBundle/./node_modules/lodash/_arrayLikeKeys.js","webpack://SwaggerUIBundle/./node_modules/lodash/_arrayMap.js","webpack://SwaggerUIBundle/./node_modules/lodash/_arrayPush.js","webpack://SwaggerUIBundle/./node_modules/lodash/_arrayReduce.js","webpack://SwaggerUIBundle/./node_modules/lodash/_arraySome.js","webpack://SwaggerUIBundle/./node_modules/lodash/_asciiToArray.js","webpack://SwaggerUIBundle/./node_modules/lodash/_asciiWords.js","webpack://SwaggerUIBundle/./node_modules/lodash/_assignMergeValue.js","webpack://SwaggerUIBundle/./node_modules/lodash/_assignValue.js","webpack://SwaggerUIBundle/./node_modules/lodash/_assocIndexOf.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseAssign.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseAssignIn.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseAssignValue.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseClone.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseCreate.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseEach.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseFindIndex.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseFlatten.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseFor.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseForOwn.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseGet.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseGetAllKeys.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseGetTag.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseHasIn.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseIsArguments.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseIsEqual.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseIsEqualDeep.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseIsMap.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseIsMatch.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseIsNative.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseIsSet.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseIsTypedArray.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseIteratee.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseKeys.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseKeysIn.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseMatches.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseMatchesProperty.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseMerge.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseMergeDeep.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseProperty.js","webpack://SwaggerUIBundle/./node_modules/lodash/_basePropertyDeep.js","webpack://SwaggerUIBundle/./node_modules/lodash/_basePropertyOf.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseReduce.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseRest.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseSet.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseSetToString.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseSlice.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseSome.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseTimes.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseToString.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseTrim.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseUnary.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseUnset.js","webpack://SwaggerUIBundle/./node_modules/lodash/_baseZipObject.js","webpack://SwaggerUIBundle/./node_modules/lodash/_cacheHas.js","webpack://SwaggerUIBundle/./node_modules/lodash/_castPath.js","webpack://SwaggerUIBundle/./node_modules/lodash/_castSlice.js","webpack://SwaggerUIBundle/./node_modules/lodash/_cloneArrayBuffer.js","webpack://SwaggerUIBundle/./node_modules/lodash/_cloneBuffer.js","webpack://SwaggerUIBundle/./node_modules/lodash/_cloneDataView.js","webpack://SwaggerUIBundle/./node_modules/lodash/_cloneRegExp.js","webpack://SwaggerUIBundle/./node_modules/lodash/_cloneSymbol.js","webpack://SwaggerUIBundle/./node_modules/lodash/_cloneTypedArray.js","webpack://SwaggerUIBundle/./node_modules/lodash/_copyArray.js","webpack://SwaggerUIBundle/./node_modules/lodash/_copyObject.js","webpack://SwaggerUIBundle/./node_modules/lodash/_copySymbols.js","webpack://SwaggerUIBundle/./node_modules/lodash/_copySymbolsIn.js","webpack://SwaggerUIBundle/./node_modules/lodash/_coreJsData.js","webpack://SwaggerUIBundle/./node_modules/lodash/_createAssigner.js","webpack://SwaggerUIBundle/./node_modules/lodash/_createBaseEach.js","webpack://SwaggerUIBundle/./node_modules/lodash/_createBaseFor.js","webpack://SwaggerUIBundle/./node_modules/lodash/_createCaseFirst.js","webpack://SwaggerUIBundle/./node_modules/lodash/_createCompounder.js","webpack://SwaggerUIBundle/./node_modules/lodash/_createFind.js","webpack://SwaggerUIBundle/./node_modules/lodash/_customOmitClone.js","webpack://SwaggerUIBundle/./node_modules/lodash/_deburrLetter.js","webpack://SwaggerUIBundle/./node_modules/lodash/_defineProperty.js","webpack://SwaggerUIBundle/./node_modules/lodash/_equalArrays.js","webpack://SwaggerUIBundle/./node_modules/lodash/_equalByTag.js","webpack://SwaggerUIBundle/./node_modules/lodash/_equalObjects.js","webpack://SwaggerUIBundle/./node_modules/lodash/_flatRest.js","webpack://SwaggerUIBundle/./node_modules/lodash/_freeGlobal.js","webpack://SwaggerUIBundle/./node_modules/lodash/_getAllKeys.js","webpack://SwaggerUIBundle/./node_modules/lodash/_getAllKeysIn.js","webpack://SwaggerUIBundle/./node_modules/lodash/_getMapData.js","webpack://SwaggerUIBundle/./node_modules/lodash/_getMatchData.js","webpack://SwaggerUIBundle/./node_modules/lodash/_getNative.js","webpack://SwaggerUIBundle/./node_modules/lodash/_getPrototype.js","webpack://SwaggerUIBundle/./node_modules/lodash/_getRawTag.js","webpack://SwaggerUIBundle/./node_modules/lodash/_getSymbols.js","webpack://SwaggerUIBundle/./node_modules/lodash/_getSymbolsIn.js","webpack://SwaggerUIBundle/./node_modules/lodash/_getTag.js","webpack://SwaggerUIBundle/./node_modules/lodash/_getValue.js","webpack://SwaggerUIBundle/./node_modules/lodash/_hasPath.js","webpack://SwaggerUIBundle/./node_modules/lodash/_hasUnicode.js","webpack://SwaggerUIBundle/./node_modules/lodash/_hasUnicodeWord.js","webpack://SwaggerUIBundle/./node_modules/lodash/_hashClear.js","webpack://SwaggerUIBundle/./node_modules/lodash/_hashDelete.js","webpack://SwaggerUIBundle/./node_modules/lodash/_hashGet.js","webpack://SwaggerUIBundle/./node_modules/lodash/_hashHas.js","webpack://SwaggerUIBundle/./node_modules/lodash/_hashSet.js","webpack://SwaggerUIBundle/./node_modules/lodash/_initCloneArray.js","webpack://SwaggerUIBundle/./node_modules/lodash/_initCloneByTag.js","webpack://SwaggerUIBundle/./node_modules/lodash/_initCloneObject.js","webpack://SwaggerUIBundle/./node_modules/lodash/_isFlattenable.js","webpack://SwaggerUIBundle/./node_modules/lodash/_isIndex.js","webpack://SwaggerUIBundle/./node_modules/lodash/_isIterateeCall.js","webpack://SwaggerUIBundle/./node_modules/lodash/_isKey.js","webpack://SwaggerUIBundle/./node_modules/lodash/_isKeyable.js","webpack://SwaggerUIBundle/./node_modules/lodash/_isMasked.js","webpack://SwaggerUIBundle/./node_modules/lodash/_isPrototype.js","webpack://SwaggerUIBundle/./node_modules/lodash/_isStrictComparable.js","webpack://SwaggerUIBundle/./node_modules/lodash/_listCacheClear.js","webpack://SwaggerUIBundle/./node_modules/lodash/_listCacheDelete.js","webpack://SwaggerUIBundle/./node_modules/lodash/_listCacheGet.js","webpack://SwaggerUIBundle/./node_modules/lodash/_listCacheHas.js","webpack://SwaggerUIBundle/./node_modules/lodash/_listCacheSet.js","webpack://SwaggerUIBundle/./node_modules/lodash/_mapCacheClear.js","webpack://SwaggerUIBundle/./node_modules/lodash/_mapCacheDelete.js","webpack://SwaggerUIBundle/./node_modules/lodash/_mapCacheGet.js","webpack://SwaggerUIBundle/./node_modules/lodash/_mapCacheHas.js","webpack://SwaggerUIBundle/./node_modules/lodash/_mapCacheSet.js","webpack://SwaggerUIBundle/./node_modules/lodash/_mapToArray.js","webpack://SwaggerUIBundle/./node_modules/lodash/_matchesStrictComparable.js","webpack://SwaggerUIBundle/./node_modules/lodash/_memoizeCapped.js","webpack://SwaggerUIBundle/./node_modules/lodash/_nativeCreate.js","webpack://SwaggerUIBundle/./node_modules/lodash/_nativeKeys.js","webpack://SwaggerUIBundle/./node_modules/lodash/_nativeKeysIn.js","webpack://SwaggerUIBundle/./node_modules/lodash/_nodeUtil.js","webpack://SwaggerUIBundle/./node_modules/lodash/_objectToString.js","webpack://SwaggerUIBundle/./node_modules/lodash/_overArg.js","webpack://SwaggerUIBundle/./node_modules/lodash/_overRest.js","webpack://SwaggerUIBundle/./node_modules/lodash/_parent.js","webpack://SwaggerUIBundle/./node_modules/lodash/_root.js","webpack://SwaggerUIBundle/./node_modules/lodash/_safeGet.js","webpack://SwaggerUIBundle/./node_modules/lodash/_setCacheAdd.js","webpack://SwaggerUIBundle/./node_modules/lodash/_setCacheHas.js","webpack://SwaggerUIBundle/./node_modules/lodash/_setToArray.js","webpack://SwaggerUIBundle/./node_modules/lodash/_setToString.js","webpack://SwaggerUIBundle/./node_modules/lodash/_shortOut.js","webpack://SwaggerUIBundle/./node_modules/lodash/_stackClear.js","webpack://SwaggerUIBundle/./node_modules/lodash/_stackDelete.js","webpack://SwaggerUIBundle/./node_modules/lodash/_stackGet.js","webpack://SwaggerUIBundle/./node_modules/lodash/_stackHas.js","webpack://SwaggerUIBundle/./node_modules/lodash/_stackSet.js","webpack://SwaggerUIBundle/./node_modules/lodash/_stringToArray.js","webpack://SwaggerUIBundle/./node_modules/lodash/_stringToPath.js","webpack://SwaggerUIBundle/./node_modules/lodash/_toKey.js","webpack://SwaggerUIBundle/./node_modules/lodash/_toSource.js","webpack://SwaggerUIBundle/./node_modules/lodash/_trimmedEndIndex.js","webpack://SwaggerUIBundle/./node_modules/lodash/_unicodeToArray.js","webpack://SwaggerUIBundle/./node_modules/lodash/_unicodeWords.js","webpack://SwaggerUIBundle/./node_modules/lodash/camelCase.js","webpack://SwaggerUIBundle/./node_modules/lodash/capitalize.js","webpack://SwaggerUIBundle/./node_modules/lodash/constant.js","webpack://SwaggerUIBundle/./node_modules/lodash/debounce.js","webpack://SwaggerUIBundle/./node_modules/lodash/deburr.js","webpack://SwaggerUIBundle/./node_modules/lodash/eq.js","webpack://SwaggerUIBundle/./node_modules/lodash/find.js","webpack://SwaggerUIBundle/./node_modules/lodash/findIndex.js","webpack://SwaggerUIBundle/./node_modules/lodash/flatten.js","webpack://SwaggerUIBundle/./node_modules/lodash/get.js","webpack://SwaggerUIBundle/./node_modules/lodash/hasIn.js","webpack://SwaggerUIBundle/./node_modules/lodash/identity.js","webpack://SwaggerUIBundle/./node_modules/lodash/isArguments.js","webpack://SwaggerUIBundle/./node_modules/lodash/isArray.js","webpack://SwaggerUIBundle/./node_modules/lodash/isArrayLike.js","webpack://SwaggerUIBundle/./node_modules/lodash/isArrayLikeObject.js","webpack://SwaggerUIBundle/./node_modules/lodash/isBuffer.js","webpack://SwaggerUIBundle/./node_modules/lodash/isEmpty.js","webpack://SwaggerUIBundle/./node_modules/lodash/isFunction.js","webpack://SwaggerUIBundle/./node_modules/lodash/isLength.js","webpack://SwaggerUIBundle/./node_modules/lodash/isMap.js","webpack://SwaggerUIBundle/./node_modules/lodash/isObject.js","webpack://SwaggerUIBundle/./node_modules/lodash/isObjectLike.js","webpack://SwaggerUIBundle/./node_modules/lodash/isPlainObject.js","webpack://SwaggerUIBundle/./node_modules/lodash/isSet.js","webpack://SwaggerUIBundle/./node_modules/lodash/isString.js","webpack://SwaggerUIBundle/./node_modules/lodash/isSymbol.js","webpack://SwaggerUIBundle/./node_modules/lodash/isTypedArray.js","webpack://SwaggerUIBundle/./node_modules/lodash/keys.js","webpack://SwaggerUIBundle/./node_modules/lodash/keysIn.js","webpack://SwaggerUIBundle/./node_modules/lodash/last.js","webpack://SwaggerUIBundle/./node_modules/lodash/memoize.js","webpack://SwaggerUIBundle/./node_modules/lodash/merge.js","webpack://SwaggerUIBundle/./node_modules/lodash/now.js","webpack://SwaggerUIBundle/./node_modules/lodash/omit.js","webpack://SwaggerUIBundle/./node_modules/lodash/property.js","webpack://SwaggerUIBundle/./node_modules/lodash/reduce.js","webpack://SwaggerUIBundle/./node_modules/lodash/set.js","webpack://SwaggerUIBundle/./node_modules/lodash/some.js","webpack://SwaggerUIBundle/./node_modules/lodash/stubArray.js","webpack://SwaggerUIBundle/./node_modules/lodash/stubFalse.js","webpack://SwaggerUIBundle/./node_modules/lodash/toFinite.js","webpack://SwaggerUIBundle/./node_modules/lodash/toInteger.js","webpack://SwaggerUIBundle/./node_modules/lodash/toLower.js","webpack://SwaggerUIBundle/./node_modules/lodash/toNumber.js","webpack://SwaggerUIBundle/./node_modules/lodash/toPlainObject.js","webpack://SwaggerUIBundle/./node_modules/lodash/toString.js","webpack://SwaggerUIBundle/./node_modules/lodash/upperFirst.js","webpack://SwaggerUIBundle/./node_modules/lodash/words.js","webpack://SwaggerUIBundle/./node_modules/lodash/zipObject.js","webpack://SwaggerUIBundle/./node_modules/lowlight/lib/core.js","webpack://SwaggerUIBundle/./node_modules/object-assign/index.js","webpack://SwaggerUIBundle/./node_modules/object-inspect/index.js","webpack://SwaggerUIBundle/./node_modules/process/browser.js","webpack://SwaggerUIBundle/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://SwaggerUIBundle/./node_modules/prop-types/index.js","webpack://SwaggerUIBundle/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://SwaggerUIBundle/./node_modules/querystring/decode.js","webpack://SwaggerUIBundle/./node_modules/querystring/encode.js","webpack://SwaggerUIBundle/./node_modules/querystring/index.js","webpack://SwaggerUIBundle/./node_modules/querystringify/index.js","webpack://SwaggerUIBundle/./node_modules/randexp/lib/randexp.js","webpack://SwaggerUIBundle/./node_modules/randombytes/browser.js","webpack://SwaggerUIBundle/./node_modules/react-copy-to-clipboard/lib/Component.js","webpack://SwaggerUIBundle/./node_modules/react-copy-to-clipboard/lib/index.js","webpack://SwaggerUIBundle/./node_modules/react-debounce-input/lib/Component.js","webpack://SwaggerUIBundle/./node_modules/react-debounce-input/lib/index.js","webpack://SwaggerUIBundle/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://SwaggerUIBundle/./node_modules/react-dom/index.js","webpack://SwaggerUIBundle/./node_modules/react-immutable-proptypes/dist/ImmutablePropTypes.js","webpack://SwaggerUIBundle/./node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","webpack://SwaggerUIBundle/./node_modules/react-redux/node_modules/react-is/index.js","webpack://SwaggerUIBundle/./node_modules/react/cjs/react.production.min.js","webpack://SwaggerUIBundle/./node_modules/react/index.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/errors-browser.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/_stream_readable.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/_stream_transform.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/_stream_writable.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/internal/streams/state.js","webpack://SwaggerUIBundle/./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://SwaggerUIBundle/./node_modules/redux-immutable/dist/combineReducers.js","webpack://SwaggerUIBundle/./node_modules/redux-immutable/dist/index.js","webpack://SwaggerUIBundle/./node_modules/redux-immutable/dist/utilities/getStateName.js","webpack://SwaggerUIBundle/./node_modules/redux-immutable/dist/utilities/getUnexpectedInvocationParameterMessage.js","webpack://SwaggerUIBundle/./node_modules/redux-immutable/dist/utilities/index.js","webpack://SwaggerUIBundle/./node_modules/redux-immutable/dist/utilities/validateNextState.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://SwaggerUIBundle/./node_modules/redux/es/redux.js","webpack://SwaggerUIBundle/./node_modules/regenerator-runtime/runtime.js","webpack://SwaggerUIBundle/./node_modules/remarkable/dist/esm/index.browser.js","webpack://SwaggerUIBundle/./node_modules/repeat-string/index.js","webpack://SwaggerUIBundle/./node_modules/requires-port/index.js","webpack://SwaggerUIBundle/./node_modules/reselect/es/defaultMemoize.js","webpack://SwaggerUIBundle/./node_modules/reselect/es/index.js","webpack://SwaggerUIBundle/./node_modules/ret/lib/index.js","webpack://SwaggerUIBundle/./node_modules/ret/lib/positions.js","webpack://SwaggerUIBundle/./node_modules/ret/lib/sets.js","webpack://SwaggerUIBundle/./node_modules/ret/lib/types.js","webpack://SwaggerUIBundle/./node_modules/ret/lib/util.js","webpack://SwaggerUIBundle/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://SwaggerUIBundle/./node_modules/scheduler/index.js","webpack://SwaggerUIBundle/./node_modules/serialize-error/index.js","webpack://SwaggerUIBundle/./node_modules/sha.js/hash.js","webpack://SwaggerUIBundle/./node_modules/sha.js/index.js","webpack://SwaggerUIBundle/./node_modules/sha.js/sha.js","webpack://SwaggerUIBundle/./node_modules/sha.js/sha1.js","webpack://SwaggerUIBundle/./node_modules/sha.js/sha224.js","webpack://SwaggerUIBundle/./node_modules/sha.js/sha256.js","webpack://SwaggerUIBundle/./node_modules/sha.js/sha384.js","webpack://SwaggerUIBundle/./node_modules/sha.js/sha512.js","webpack://SwaggerUIBundle/./node_modules/side-channel/index.js","webpack://SwaggerUIBundle/./node_modules/stream-browserify/index.js","webpack://SwaggerUIBundle/./node_modules/string_decoder/lib/string_decoder.js","webpack://SwaggerUIBundle/./node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/es/helpers.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/node_modules/cookie/index.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/node_modules/qs/lib/formats.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/node_modules/qs/lib/index.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/node_modules/qs/lib/parse.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/node_modules/qs/lib/stringify.js","webpack://SwaggerUIBundle/./node_modules/swagger-client/node_modules/qs/lib/utils.js","webpack://SwaggerUIBundle/./node_modules/toggle-selection/index.js","webpack://SwaggerUIBundle/./node_modules/traverse/index.js","webpack://SwaggerUIBundle/./node_modules/url-parse/index.js","webpack://SwaggerUIBundle/./node_modules/url/node_modules/punycode/punycode.js","webpack://SwaggerUIBundle/./node_modules/url/url.js","webpack://SwaggerUIBundle/./node_modules/url/util.js","webpack://SwaggerUIBundle/./node_modules/util-deprecate/browser.js","webpack://SwaggerUIBundle/./node_modules/xml-but-prettier/dist/index.js","webpack://SwaggerUIBundle/./node_modules/xml/lib/escapeForXML.js","webpack://SwaggerUIBundle/./node_modules/xml/lib/xml.js","webpack://SwaggerUIBundle/./node_modules/zenscroll/zenscroll.js","webpack://SwaggerUIBundle//home/ubuntu/workspace/oss-swagger-ui-release/src/core/plugins|sync|/\\.jsx","webpack://SwaggerUIBundle/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://SwaggerUIBundle/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://SwaggerUIBundle/./node_modules/js-yaml/dist/js-yaml.mjs","webpack://SwaggerUIBundle/webpack/bootstrap","webpack://SwaggerUIBundle/webpack/runtime/compat get default export","webpack://SwaggerUIBundle/webpack/runtime/define property getters","webpack://SwaggerUIBundle/webpack/runtime/global","webpack://SwaggerUIBundle/webpack/runtime/hasOwnProperty shorthand","webpack://SwaggerUIBundle/webpack/runtime/make namespace object","webpack://SwaggerUIBundle/webpack/runtime/node module decorator","webpack://SwaggerUIBundle/./src/core/system.js","webpack://SwaggerUIBundle/./src/core/containers/OperationContainer.jsx","webpack://SwaggerUIBundle/./src/core/components/app.jsx","webpack://SwaggerUIBundle/./src/core/components/auth/authorization-popup.jsx","webpack://SwaggerUIBundle/./src/core/components/auth/authorize-btn.jsx","webpack://SwaggerUIBundle/./src/core/containers/authorize-btn.jsx","webpack://SwaggerUIBundle/./src/core/components/auth/authorize-operation-btn.jsx","webpack://SwaggerUIBundle/./src/core/components/auth/auths.jsx","webpack://SwaggerUIBundle/./src/core/components/auth/auth-item.jsx","webpack://SwaggerUIBundle/./src/core/components/auth/error.jsx","webpack://SwaggerUIBundle/./src/core/components/auth/api-key-auth.jsx","webpack://SwaggerUIBundle/./src/core/components/auth/basic-auth.jsx","webpack://SwaggerUIBundle/./src/core/components/example.jsx","webpack://SwaggerUIBundle/./src/core/components/examples-select.jsx","webpack://SwaggerUIBundle/./src/core/components/examples-select-value-retainer.jsx","webpack://SwaggerUIBundle/./src/core/components/auth/oauth2.jsx","webpack://SwaggerUIBundle/./src/core/oauth2-authorize.js","webpack://SwaggerUIBundle/./src/core/components/clear.jsx","webpack://SwaggerUIBundle/./src/core/components/live-response.jsx","webpack://SwaggerUIBundle/./src/core/components/operations.jsx","webpack://SwaggerUIBundle/./src/core/utils/url.js","webpack://SwaggerUIBundle/./src/core/components/operation-tag.jsx","webpack://SwaggerUIBundle/./src/core/components/operation.jsx","webpack://SwaggerUIBundle/./src/core/components/operation-summary.jsx","webpack://SwaggerUIBundle/./src/core/components/operation-summary-method.jsx","webpack://SwaggerUIBundle/./src/core/components/operation-summary-path.jsx","webpack://SwaggerUIBundle/./src/core/components/operation-extensions.jsx","webpack://SwaggerUIBundle/./src/core/components/operation-extension-row.jsx","webpack://SwaggerUIBundle/./src/core/components/highlight-code.jsx","webpack://SwaggerUIBundle/./src/core/components/responses.jsx","webpack://SwaggerUIBundle/./src/helpers/create-html-ready-id.js","webpack://SwaggerUIBundle/./src/core/components/response.jsx","webpack://SwaggerUIBundle/./src/core/components/response-extension.jsx","webpack://SwaggerUIBundle/./src/core/components/response-body.jsx","webpack://SwaggerUIBundle/./src/core/components/parameters/parameters.jsx","webpack://SwaggerUIBundle/./src/core/components/parameter-extension.jsx","webpack://SwaggerUIBundle/./src/core/components/parameter-include-empty.jsx","webpack://SwaggerUIBundle/./src/core/components/parameter-row.jsx","webpack://SwaggerUIBundle/./src/core/components/execute.jsx","webpack://SwaggerUIBundle/./src/core/components/headers.jsx","webpack://SwaggerUIBundle/./src/core/components/errors.jsx","webpack://SwaggerUIBundle/./src/core/components/content-type.jsx","webpack://SwaggerUIBundle/./src/core/components/layout-utils.jsx","webpack://SwaggerUIBundle/./src/core/components/overview.jsx","webpack://SwaggerUIBundle/./src/core/components/initialized-input.jsx","webpack://SwaggerUIBundle/./src/core/components/info.jsx","webpack://SwaggerUIBundle/./src/core/containers/info.jsx","webpack://SwaggerUIBundle/./src/core/components/jump-to-path.jsx","webpack://SwaggerUIBundle/./src/core/components/footer.jsx","webpack://SwaggerUIBundle/./src/core/containers/filter.jsx","webpack://SwaggerUIBundle/./src/core/components/param-body.jsx","webpack://SwaggerUIBundle/./src/core/components/curl.jsx","webpack://SwaggerUIBundle/./src/core/components/schemes.jsx","webpack://SwaggerUIBundle/./src/core/containers/schemes.jsx","webpack://SwaggerUIBundle/./src/core/components/model-collapse.jsx","webpack://SwaggerUIBundle/./src/core/components/model-example.jsx","webpack://SwaggerUIBundle/./src/core/components/model-wrapper.jsx","webpack://SwaggerUIBundle/./src/core/components/models.jsx","webpack://SwaggerUIBundle/./src/core/components/enum-model.jsx","webpack://SwaggerUIBundle/./src/core/components/object-model.jsx","webpack://SwaggerUIBundle/./src/core/components/array-model.jsx","webpack://SwaggerUIBundle/./src/core/components/primitive-model.jsx","webpack://SwaggerUIBundle/./src/core/components/property.jsx","webpack://SwaggerUIBundle/./src/core/components/try-it-out-button.jsx","webpack://SwaggerUIBundle/./src/core/components/version-pragma-filter.jsx","webpack://SwaggerUIBundle/./src/core/components/version-stamp.jsx","webpack://SwaggerUIBundle/./src/core/components/deep-link.jsx","webpack://SwaggerUIBundle/./src/core/components/svg-assets.jsx","webpack://SwaggerUIBundle/./src/core/components/layouts/base.jsx","webpack://SwaggerUIBundle/./src/core/json-schema-components.jsx","webpack://SwaggerUIBundle/./src/core/presets/base.js","webpack://SwaggerUIBundle/./src/core/presets/apis.js","webpack://SwaggerUIBundle/./src/core/index.js","webpack://SwaggerUIBundle/./src/index.js"],"names":["root","factory","exports","module","define","amd","this","arr","len","length","i","arr2","Array","__esModule","_Array$isArray","arrayLikeToArray","self","ReferenceError","_Promise","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","then","fn","args","arguments","apply","err","undefined","instance","Constructor","TypeError","_Reflect$construct","_bindInstanceProperty","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Class","a","push","Function","prototype","_Object$defineProperty","_defineProperties","target","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","_Symbol","_getIteratorMethod","unsupportedIterableToArray","o","allowArrayLike","it","F","s","n","e","_e","f","normalCompletion","didErr","call","step","next","_e2","getPrototypeOf","possibleConstructorReturn","Derived","hasNativeReflectConstruct","result","Super","NewTarget","constructor","obj","_Object$assign","_extends","source","Object","hasOwnProperty","_Reflect$get","_Object$getOwnPropertyDescriptor","superPropBase","_get","Reflect","property","receiver","base","desc","get","_Object$setPrototypeOf","_Object$getPrototypeOf","_getPrototypeOf","__proto__","_Object$create","subClass","superClass","_indexOfInstanceProperty","_context","toString","sham","Proxy","Boolean","valueOf","_Array$from","iter","_i","_s","_arr","_n","_d","_Object$keys","_Object$getOwnPropertySymbols","_filterInstanceProperty","_forEachInstanceProperty","_Object$getOwnPropertyDescriptors","_Object$defineProperties","defineProperty","ownKeys","object","enumerableOnly","keys","symbols","sym","_context2","objectWithoutPropertiesLoose","excluded","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","_typeof","assertThisInitialized","_setPrototypeOf","p","arrayWithHoles","iterableToArrayLimit","nonIterableRest","iterableToArray","arrayWithoutHoles","nonIterableSpread","_Symbol$iterator","_sliceInstanceProperty","minLen","name","test","_Map","isNativeFunction","construct","_wrapNativeSuper","_cache","has","set","Wrapper","invalidProtocolRegex","htmlEntitiesRegex","ctrlCharactersRegex","urlSchemeRegex","relativeFirstCharacters","url","str","sanitizedUrl","replace","match","dec","String","fromCharCode","trim","indexOf","isRelativeUrlWithoutProtocol","urlSchemeParseResults","urlScheme","Symbol","iterator","_classCallCheck","_defineProperty","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","_possibleConstructorReturn","_assertThisInitialized","NOT_SET","collection","notSetValue","isInvalid","isMapLike","getIn","keyPath","check","config","prev","checkItem","createChecker","checklist","every","is","isArray","ImmutablePureComponent","_React$Component","create","_inherits","nextProps","nextState","updateOnProps","updateOnStates","state","Model","ref","model","specSelectors","findDefinition","getComponent","getConfigs","schema","required","isRef","specPath","displayName","includeReadOnly","includeWriteOnly","ObjectModel","ArrayModel","PrimitiveModel","type","$$ref","getModelName","getRefSchema","className","src","require","height","width","deprecated","isOAS3","ImPropTypes","isRequired","PropTypes","expandDepth","depth","OnlineValidatorBadge","context","URL","win","validatorUrl","getDefinitionUrl","setState","spec","sanitizedValidatorUrl","sanitizeUrl","requiresValidationURL","rel","href","encodeURIComponent","ValidatorImage","alt","React","loaded","img","Image","onload","onerror","element","remove","splice","throwUnhandledCaseError","theValue","Error","HtmlTag","cfg","tagName","attrs","innerHTML","whitespaceRegex","innerHtml","setTagName","getTagName","setAttr","attrName","attrValue","getAttrs","getAttr","setAttrs","assign","setClass","cssClass","addClass","newClass","classAttr","getClass","classes","split","newClasses","shift","join","removeClass","removeClasses","idx","hasClass","setInnerHTML","html","setInnerHtml","getInnerHTML","getInnerHtml","toAnchorString","attrsStr","buildAttrsStr","attrsArr","prop","AnchorTagBuilder","newWindow","truncate","build","createAttrs","processAnchorText","getAnchorText","getAnchorHref","createCssClass","returnClasses","cssClassSuffixes","getCssClassSuffixes","anchorText","doTruncate","truncateLength","truncateLocation","location","truncateLen","ellipsisChars","ellipsisLengthBeforeParsing","ellipsisLength","buildUrl","urlObj","scheme","host","path","query","fragment","buildSegment","segment","remainingAvailableLength","remainingAvailableLengthHalf","startOffset","Math","ceil","endOffset","floor","end","substr","availableLength","urlSub","parse_url","matchQuery","pathAndQuery","truncateSmart","truncateMiddle","substring","ellipsis","truncateEnd","Match","__jsduckDummyDocProp","matchedText","offset","tagBuilder","getMatchedText","setOffset","getOffset","getType","buildTag","extendStatics","d","b","__extends","__","__assign","t","urlSuffixRegex","EmailMatch","_super","_this","email","getEmail","HashtagMatch","serviceName","hashtag","getServiceName","getHashtag","MentionMatch","mention","getMention","PhoneMatch","number","plusSign","getPhoneNumber","getNumber","UrlMatch","urlMatchType","protocolUrlMatch","protocolRelativeMatch","stripPrefix","www","stripTrailingSlash","decodePercentEncoding","schemePrefixRegex","wwwPrefixRegex","protocolRelativeRegex","protocolPrepended","getUrlMatchType","getUrl","stripProtocolRelativePrefix","stripSchemePrefix","stripWwwPrefix","removeTrailingSlash","removePercentEncoding","text","charAt","slice","preProcessedEntityAnchorText","decodeURIComponent","Matcher","letterRe","digitRe","nonDigitRe","whitespaceRe","quoteRe","controlCharsRe","alphaCharsStr","alphaCharsAndMarksStr","decimalNumbersStr","alphaNumericCharsStr","alphaNumericAndMarksCharsStr","ipStr","domainLabelStr","getDomainLabelStr","group","getDomainNameStr","domainNameCharRegex","RegExp","tldRegex","localPartCharRegex","strictTldRegex","EmailMatcher","parseMatches","matches","noCurrentEmailMatch","CurrentEmailMatch","mailtoTransitions","charIdx","currentEmailMatch","char","stateNonEmailAddress","stateMailTo","stateLocalPart","stateLocalPartDot","stateAtSign","stateDomainChar","stateDomainHyphen","stateDomainDot","captureMatchIfValidAndReset","beginEmailMatch","prevChar","hasMailtoPrefix","resetToNonEmailMatchState","hasDomainDot","newState","emailAddress","emailAddressNormalized","pop","toLowerCase","doesEmailHaveValidTld","UrlMatchValidator","isValid","urlMatch","isValidUriScheme","urlMatchDoesNotHaveProtocolOrDot","urlMatchDoesNotHaveAtLeastOneWordChar","isValidIpAddress","containsMultipleDots","uriSchemeMatch","newRegex","hasFullProtocolRegex","ipRegex","stringBeforeSlash","uriSchemeMatchArr","uriSchemeRegex","uriScheme","hasWordCharAfterProtocolRegex","matcherRegex","wordCharRegExp","UrlMatcher","_loop_1","matchStr","schemeUrlMatch","wwwUrlMatch","wwwProtocolRelativeMatch","tldProtocolRelativeMatch","index","this_1","matchHasUnbalancedClosingParen","pos","matchHasInvalidCharAfterTld","foundCommonScheme","find","commonScheme","indexOfSchemeStart","exec","startChar","endChar","numOpenBraces","max","res","nonWordCharRegex","HashtagMatcher","phoneMatcherRegex","PhoneMatcher","cleanNumber","before","after","contextClear","testMatch","twitterRegex","instagramRegex","soundcloudRegex","MentionMatcher","matcherRegexes","parseHtml","_a","onOpenTag","onCloseTag","onText","onComment","onDoctype","noCurrentTag","CurrentTag","currentDataIdx","currentTag","stateData","stateTagOpen","stateEndTagOpen","stateTagName","stateBeforeAttributeName","stateAttributeName","stateAfterAttributeName","stateBeforeAttributeValue","stateAttributeValueDoubleQuoted","stateAttributeValueSingleQuoted","stateAttributeValueUnquoted","stateAfterAttributeValueQuoted","stateSelfClosingStartTag","stateMarkupDeclarationOpen","stateCommentStart","stateCommentStartDash","stateComment","stateCommentEndDash","stateCommentEnd","stateCommentEndBang","stateDoctype","startNewTag","isClosing","isOpening","captureTagName","emitTagAndPreviousTextNode","resetToDataState","toUpperCase","textBeforeTag","startIdx","Autolinker","version","urls","phone","replaceFn","sanitizeHtml","matchers","normalizeUrlsCfg","normalizeStripPrefixCfg","normalizeTruncateCfg","link","textOrHtml","options","parse","schemeMatches","wwwMatches","tldMatches","dest","defaults","Number","POSITIVE_INFINITY","skipTagNames","skipTagsStackCount","textSplit","splitRegex","global","lastIdx","splitAndCapture","currentOffset_1","splitText","textNodeMatches","parseText","compactMatches","removeUnwantedMatches","sort","matchedTextLength","endIdx","removeIdx","m","getMatchers","numMatchers","textMatches","j","numTextMatches","newHtml","lastIndex","createMatchReturnVal","replaceFnResult","getTagBuilder","matcher","Email","Hashtag","Mention","Phone","Url","LINK_SCAN_RE","isLinkClose","createLinkifier","links","autolinker","parseTokens","l","tokens","token","nodes","ln","level","htmlLinkLevel","blockTokens","linkifier","children","content","inline","validateLink","title","concat","linkify","md","core","ruler","Markdown","Remarkable","typographer","breaks","linkTarget","use","disable","useUnsafeMarkdown","render","sanitized","sanitizer","cx","dangerouslySetInnerHTML","__html","DomPurify","current","setAttribute","defaultProps","ALLOW_DATA_ATTR","FORBID_ATTR","hasWarnedAboutDeprecation","console","warn","ADD_ATTR","FORBID_TAGS","request","allPlugins","mod","pascalCaseFilename","default","SafeRender","SHOW_AUTH_POPUP","AUTHORIZE","LOGOUT","PRE_AUTHORIZE_OAUTH2","AUTHORIZE_OAUTH2","VALIDATE","CONFIGURE_AUTH","RESTORE_AUTHORIZATION","showDefinitions","payload","authorize","authorizeWithPersistOption","authActions","persistAuthorizationIfNeeded","logout","logoutWithPersistOption","preAuthorizeImplicit","errActions","auth","flow","newAuthErr","authId","message","authorizeOauth2WithPersistOption","authorizeOauth2","authorizePassword","username","password","passwordType","clientId","clientSecret","form","grant_type","scope","scopes","headers","client_id","client_secret","setClientIdAndSecret","Authorization","btoa","authorizeRequest","body","buildFormData","authorizeApplication","authorizeAccessCodeWithFormParams","redirectUrl","codeVerifier","code","redirect_uri","code_verifier","authorizeAccessCodeWithBasicAuthentication","data","parsedUrl","oas3Selectors","authSelectors","additionalQueryStringParams","finalServerUrl","serverEffectiveValue","selectedServer","parseUrl","fetchUrl","_headers","fetch","method","requestInterceptor","responseInterceptor","response","JSON","parseError","ok","statusText","catch","errData","jsonResponse","error_description","jsonError","configureAuth","restoreAuthorization","persistAuthorization","authorized","localStorage","setItem","toJS","authPopup","swaggerUIRedirectOauth2","afterLoad","system","rootInjects","initOAuth","preauthorizeApiKey","preauthorizeBasic","statePlugins","reducers","actions","selectors","wrapActions","specWrapActionReplacements","specJson","definitionBase","securities","fromJS","map","Map","entrySeq","security","isFunc","setIn","header","parsedAuth","withMutations","delete","shownDefinitions","createSelector","definitionsToAuthorize","definitions","securityDefinitions","list","List","val","getDefinitionsByNames","valueSeq","names","allowedScopes","definition","size","keySeq","contains","definitionsForRequirements","allDefinitions","def","sec","first","isAuthorized","execute","oriAction","operation","extras","specSecurity","UPDATE_CONFIGS","TOGGLE_CONFIGS","update","configName","configValue","toggle","getItem","parseYamlConfig","yaml","YAML","newThrownErr","getLocalConfig","yamlConfig","configsPlugin","specActions","configs","action","merge","oriVal","downloadConfig","req","getConfigByUrl","cb","status","updateLoadingStatus","updateUrl","setHash","history","pushState","window","hash","layout","ori","layoutActions","parseDeepLinkHash","wrapComponents","OperationWrapper","OperationTag","OperationTagWrapper","SCROLL_TO","CLEAR_SCROLL_TO","show","layoutSelectors","deepLinking","tokenArray","shown","urlHashArray","urlHashArrayFromIsShownKey","assetName","createDeepLinkPath","scrollTo","rawHash","hashArray","isShownKey","isShownKeyFromUrlHashArray","tagId","maybeOperationId","tagIsShownKey","readyToScroll","scrollToKey","getScrollToKey","Im","scrollToElement","clearScrollTo","container","getScrollParent","zenscroll","to","includeHidden","LAST_RESORT","document","documentElement","style","getComputedStyle","excludeStaticParent","position","overflowRegex","parent","parentElement","overflow","overflowY","overflowX","tag","operationId","Ori","onLoad","toObject","downloadUrlPlugin","toolbox","download","specUrl","createElement","protocol","origin","checkPossibleFailReasons","updateSpec","clear","loadSpec","credentials","enums","loadingStatus","NEW_THROWN_ERR","NEW_THROWN_ERR_BATCH","NEW_SPEC_ERR","NEW_SPEC_ERR_BATCH","NEW_AUTH_ERR","CLEAR","CLEAR_BY","serializeError","newThrownErrBatch","errors","newSpecErr","newSpecErrBatch","errArray","clearBy","errorTransformers","transformErrors","inputs","jsSpec","transformedErrors","reduce","transformer","newlyTransformedErrors","transform","seekStr","types","c","makeNewMessage","makeReducers","DEFAULT_ERROR_STRUCTURE","line","sortBy","newErrors","k","errValue","filterValue","allErrors","lastError","all","last","opsFilter","taggedOps","phrase","tagObj","UPDATE_LAYOUT","UPDATE_FILTER","UPDATE_MODE","SHOW","updateLayout","updateFilter","thing","normalizeArray","changeMode","mode","wrapSelectors","isShown","thingToShow","currentFilter","whatMode","showSummary","taggedOperations","oriSelector","getSystem","maxDisplayedTags","isNaN","levels","getLevel","logLevel","logLevelInt","log","debug","UPDATE_SELECTED_SERVER","UPDATE_REQUEST_BODY_VALUE","UPDATE_REQUEST_BODY_VALUE_RETAIN_FLAG","UPDATE_REQUEST_BODY_INCLUSION","UPDATE_ACTIVE_EXAMPLES_MEMBER","UPDATE_REQUEST_CONTENT_TYPE","UPDATE_RESPONSE_CONTENT_TYPE","UPDATE_SERVER_VARIABLE_VALUE","SET_REQUEST_BODY_VALIDATE_ERROR","CLEAR_REQUEST_BODY_VALIDATE_ERROR","CLEAR_REQUEST_BODY_VALUE","setSelectedServer","selectedServerUrl","namespace","setRequestBodyValue","pathMethod","setRetainRequestBodyValueFlag","setRequestBodyInclusion","setActiveExamplesMember","contextType","contextName","setRequestContentType","setResponseContentType","setServerVariableValue","server","setRequestBodyValidateError","validationErrors","clearRequestBodyValidateError","initRequestBodyValidateError","clearRequestBodyValue","selector","defName","flowKey","flowVal","translatedDef","authorizationUrl","tokenUrl","description","v","oidcData","grants","grant","translatedScopes","acc","cur","openIdConnectUrl","isOAS3Helper","resolvedSchemes","getState","callbacks","OperationContainer","callbackElements","callbackName","callback","pathItemName","pathItem","op","allowTryItOut","HttpAuth","onChange","newValue","getValue","errSelectors","Input","Row","Col","AuthError","JumpToPath","autoFocus","autoComplete","Callbacks","RequestBody","Servers","ServersContainer","RequestBodyEditor","OperationServers","operationLink","OperationLink","targetOp","parameters","string","padString","Component","forceUpdate","getSelectedServer","getServerVariable","getEffectiveServerValue","operationServers","pathServers","serversToDisplay","displaying","servers","currentServer","NOOP","defaultValue","stringify","inputValue","applyDefaultValue","TextArea","invalid","onDomChange","PureComponent","userHasEditedBody","getDefaultRequestBodyValue","requestBody","mediaType","activeExamplesKey","mediaTypeValue","hasExamplesKey","exampleSchema","mediaTypeExample","exampleValue","getSampleSchema","requestBodyValue","requestBodyInclusionSetting","requestBodyErrors","contentType","isExecute","onChangeIncludeEmpty","updateActiveExamplesKey","setIsIncludedOptions","shouldDispatchInit","ModelExample","HighlightCode","ExamplesSelectValueRetainer","Example","ParameterIncludeEmpty","showCommonExtensions","requestBodyDescription","requestBodyContent","OrderedMap","schemaForMediaType","rawExamplesOfMediaType","sampleForMediaType","isObjectContent","isBinaryFormat","isBase64Format","files","JsonSchemaForm","ParameterExt","bodyProperties","commonExt","getCommonExtensions","format","currentValue","currentErrors","included","useInitialValFromSchemaSamples","hasIn","useInitialValFromEnum","useInitialValue","initialValue","isFile","xKey","xVal","dispatchInitialValue","isIncluded","isIncludedOptions","isDisabled","isEmptyValue","sampleRequestBody","language","getKnownSyntaxHighlighterLanguage","examples","currentKey","currentUserInputValue","onSelect","updateValue","defaultToFirstExample","example","oas3Actions","serverVariableValue","setServer","variableName","getAttribute","newVariableValue","currentServerDefinition","prevServerDefinition","prevServerVariableDefs","prevServerVariableDefaultValue","currentServerVariableDefs","currentServerVariableDefaultValue","shouldShowVariableUI","htmlFor","onServerChange","toArray","onServerVariableValueChange","enumValue","selected","oasVersion","isSwagger2","swaggerVersion","OAS3ComponentWrapFactory","components","specWrapSelectors","authWrapSelectors","oas3","oas3Reducers","newVal","currentVal","valueKeys","valueKey","valueKeyVal","missingBodyValue","missingRequiredKeys","updateIn","missingKeyValues","bodyValue","currentMissingKey","bodyValues","curr","onlyOAS3","shouldRetainRequestBodyValue","hasUserEditedBody","currentMediaType","requestContentType","userEditedRequestBody","mapEntries","kv","currentMediaTypeDefaultBodyValue","specResolvedSubtree","activeExamplesMember","responseContentType","locationData","serverVariables","varValues","serverValue","validateBeforeExecute","validateRequestBodyValueExists","validateShallowRequired","oas3RequiredRequestBodyContentType","oas3RequestContentType","oas3RequestBodyValue","requiredKeys","contentTypeVal","requiredKey","specResolved","count","isSwagger2Helper","OAS3NullSelector","hasHost","specJsonWithResolvedSubtrees","basePath","consumes","produces","schemes","onAuthChange","AuthItem","JsonSchema_string","VersionStamp","onlineValidatorBadge","disabled","parser","block","enable","trimmed","ModelComponent","engaged","updateJsonSpec","onComplete","extractKey","hashIdx","escapeShell","escapeCMD","escapePowershell","getStringBodyOfMap","curlifyToJoin","extractedKey","curlify","escape","newLine","ext","isMultipartFormDataRequest","curlified","addWords","addWordsWithoutLeadingSpace","addNewLine","addIndent","h","reqBody","requestSnippetGenerator_curl_powershell","requestSnippetGenerator_curl_bash","requestSnippetGenerator_curl_cmd","RequestSnippets","requestSnippets","cursor","lineHeight","display","backgroundColor","paddingBottom","paddingTop","border","borderRadius","boxShadow","borderBottom","activeStyle","marginTop","marginRight","marginLeft","zIndex","requestSnippetsSelectors","isFunction","canSyntaxHighlight","rootRef","useRef","useState","getSnippetGenerators","activeLanguage","setActiveLanguage","getDefaultExpanded","isExpanded","setIsExpanded","useEffect","childNodes","node","nodeType","classList","addEventListener","handlePreventYScrollingBeyondElement","passive","removeEventListener","snippetGenerators","activeGenerator","snippet","handleSetIsExpanded","handleGetBtnStyle","deltaY","contentHeight","scrollHeight","visibleHeight","offsetHeight","scrollTop","preventDefault","SnippetComponent","getStyle","readOnly","justifyContent","alignItems","marginBottom","onClick","background","xlinkHref","paddingLeft","paddingRight","handleGenChange","color","CopyToClipboard","getGenerators","languageKeys","generators","isEmpty","genFn","getGenFn","getActiveLanguage","ErrorBoundary","hasError","errorInfo","componentDidCatch","targetName","FallbackComponent","Fallback","withErrorBoundary","WrappedComponent","component","getDisplayName","WithErrorBoundary","isReactComponent","mapStateToProps","componentList","fullOverride","mergedComponentList","zipObject","Original","primitives","pattern","RandExp","generateStringFromRegex","Date","toISOString","primitive","objectify","sanitizeRef","deeplyStripKey","objectContracts","arrayContracts","numberContracts","stringContracts","liftSampleHelper","oldSchema","setIfNotDefinedInTarget","properties","propName","writeOnly","items","sampleFromSchemaGeneric","exampleOverride","respectXML","usePlainValue","hasOneOf","oneOf","hasAnyOf","anyOf","schemaToAdd","xml","_attr","additionalProperties","prefix","namespacePrefix","schemaHasAny","enum","addPropertyToResult","handleMinMaxItems","sampleArray","maxItems","minItems","propertyAddedCounter","hasExceededMaxProperties","maxProperties","requiredPropertiesToAdd","addedCount","x","isOptionalProperty","canAddProperty","overrideE","attribute","enumAttrVal","attrExample","attrDefault","sample","itemSchema","itemSamples","wrapped","additionalProp","additionalProp1","additionalProps","additionalPropSample","toGenerateCount","minProperties","temp","min","minimum","exclusiveMinimum","maximum","exclusiveMaximum","maxLength","minLength","inferSchema","createXMLExample","json","XML","declaration","indent","sampleFromSchema","resolver","arg1","arg2","arg3","memoizedCreateXMLExample","memoizeN","memoizedSampleFromSchema","UPDATE_SPEC","UPDATE_URL","UPDATE_JSON","UPDATE_PARAM","UPDATE_EMPTY_PARAM_INCLUSION","VALIDATE_PARAMS","SET_RESPONSE","SET_REQUEST","SET_MUTATED_REQUEST","LOG_REQUEST","CLEAR_RESPONSE","CLEAR_REQUEST","CLEAR_VALIDATE_PARAMS","UPDATE_OPERATION_META_VALUE","UPDATE_RESOLVED","UPDATE_RESOLVED_SUBTREE","SET_SCHEME","cleanSpec","isString","updateResolved","parseToJson","specStr","reason","mark","hasWarnedAboutResolveSpecDeprecation","resolveSpec","AST","modelPropertyMacro","parameterMacro","getLineNumberForPath","baseDoc","preparedErrors","fullPath","requestBatch","debResolveSubtrees","debounce","resolveSubtree","resultMap","specWithCurrentSubtrees","oidcScheme","openIdConnectData","batchResult","updateResolvedSubtree","requestResolvedSubtree","changeParam","paramName","paramIn","isXml","changeParamByIdentity","param","invalidateResolvedSubtreeCache","validateParams","updateEmptyParamInclusion","includeEmptyValue","clearValidateParams","changeConsumesValue","changeProducesValue","setResponse","setRequest","setMutatedRequest","logRequest","executeRequest","pathName","parameterInclusionSettingFor","paramValue","paramToValue","contextUrl","opId","namespaceVariables","globalVariables","parsedRequest","buildRequest","requestInterceptorWrapper","r","mutatedRequest","parsedMutatedRequest","startTime","duration","operationScheme","contentTypeValues","parameterValues","clearResponse","clearRequest","setScheme","fromJSOrdered","paramKey","paramToIdentifier","paramValues","paramMeta","isEmptyValueIncluded","validateParam","bypassRequiredCheck","statusCode","operationPath","metaPath","deleteIn","OPERATION_METHODS","specSource","mergerFn","oldVal","mergeWith","returnSelfOrNewMap","externalDocs","semver","paths","operations","id","Set","resolvedRes","unresolvedRes","operationsWithRootInherited","ops","tags","tagDetails","currentTags","operationsWithTags","taggedMap","ar","tagsSorter","operationsSorter","tagA","tagB","sortFn","sorters","responses","requests","mutatedRequests","responseFor","requestFor","mutatedRequestFor","allowTryItOutFor","parameterWithMetaByIdentity","opParams","metaParams","mergedParams","currentParam","inNameKeyedMeta","hashKeyedMeta","hashCode","parameterWithMeta","operationWithMeta","meta","getParameter","inType","params","allowHashes","parametersIncludeIn","inValue","parametersIncludeType","typeValue","producesValue","currentProducesFor","currentProducesValue","firstProducesArrayItem","producesOptionsFor","operationProduces","pathItemProduces","globalProduces","consumesOptionsFor","operationConsumes","pathItemConsumes","globalConsumes","matchResult","canExecuteScheme","getOAS3RequiredRequestBodyContentType","requiredObj","isMediaTypeSchemaPropertiesEqual","targetMediaType","currentMediaTypeSchemaProperties","targetMediaTypeSchemaProperties","equals","pathItems","pathItemKeys","$ref","withCredentials","globalObject","globalThis","FormData","Blob","File","isRfc3986Reserved","isRrc3986Unreserved","encodeDisallowedCharacters","_ref","_context3","encoder","TextEncoder","encode","byte","_context4","encodedByte","stylize","_ref2","explode","valueEncoder","_context7","_context5","_context6","_after","_after2","encodeArray","_ref3","_context8","_context9","_context10","middleChar","_context11","_context12","_context13","_context14","_context15","_context16","_context17","_context18","_context19","_context20","_context21","separator","encodeObject","_ref4","_context22","encodePrimitive","formdata","serializeRes","mergeInQueryOrForm","_x","_http","_callee","_error","_args","headerName","t0","sent","userFetch","t1","t2","responseError","abrupt","stop","shouldDownloadAsText","parseBody","oriRes","_ref$loadSpec","serializeHeaders","useText","getBody","blob","buffer","serializeHeaderValue","navigatorObj","navigator","product","uri","ArrayBuffer","isView","pipe","isArrayOfFile","some","STYLE_SEPARATORS","spaceDelimited","pipeDelimited","SEPARATORS","csv","ssv","tsv","pipes","formatKeyValue","input","skipEncoding","collectionFormat","allowEmptyValue","serializationOption","encoding","encodeFn","encodedKey","formatKeyValueBySerializationOption","allowReserved","encodeKeyFn","reqForm","formData","_step","_ref5","_iterator","_step$value","_step2","_iterator2","append","_blob","encodeFormOrQuery","encodedQuery","parameterName","_step3","_iterator3","_step3$value","indices","_req$url","joinSearch","_len","strs","_key","search","hasFile","_url$split","_url$split2","baseUrl","oriSearch","newStr","oriQuery","keysToRemove","finalStr","_hasOwnProperty","_objectKeys","_deepClone","isInteger","charCode","charCodeAt","escapePathComponent","unescapePathComponent","hasUndefined","objKeys","objKeysLength","patchErrorMessageFormatter","messageParts","PatchError","tree","_newTarget","JsonPatchError","deepClone","objOps","add","newDocument","removed","move","getValueByPointer","originalValue","applyOperation","from","copy","valueToCopy","_areEquals","arrOps","pointer","getOriginalDestination","validateOperation","mutateDocument","banPrototypeModifications","validator","returnValue","existingPathFragment","validateFunction","applyPatch","patch","results","length_1","applyReducer","operationResult","pathLen","existingPathLen","validate","sequence","externalValidator","arrA","arrB","beforeDict","WeakMap","Mirror","observers","ObserverInfo","observer","unobserve","observe","mirror","getMirror","observerInfo","getObserverFromMirror","dirtyCheck","generate","fastCheck","clearTimeout","setTimeout","patches","removeObserverFromMirror","invertible","_generate","toJSON","newKeys","oldKeys","deleted","compare","tree1","tree2","mergeDeep","opts","normalizeJSONPath","getInByJsonPath","_newValue","isObject","allowMetaPatches","isAdditiveMutation","_currentValue","_newValue2","parentPathMatch","flatten","fullyNormalizeArray","cleanArray","isPromise","forEachNew","mutations","forEachNewPatch","forEachNewPrimitive","forEachPrimitive","isJsonPatch","isContextPatch","isPatch","isMutation","isGenerator","isError","item","mutation","newResults","arrayResults","moreResults","elm","jsonPath","createErrorType","init","E","captureStackTrace","stack","freelyNamedKeyParents","nonFreelyNamedKeyGrandparents","freelyNamedPaths","freelyNamedAncestors","isFreelyNamed","parentPath","parentKey","grandparentKey","parentStr","el","absolutifyPointer","_pointer$split","_pointer$split2","urlPart","fragmentPart","newRefUrlPart","ACCEPT_HEADER_VALUE_FOR_DOCUMENTS","ABSOLUTE_URL_REGEXP","JSONRefError","extra","oriError","originalError","docCache","specmapRefs","skipResolutionTestFns","plugin","specmap","specmapInstance","getInstance","shouldSkipResolution","getContext","promOrVal","splitString","refPath","absoluteify","wrapError","refs","parentPointer","escapeJsonPointerToken","arrayToJsonPointer","fullyQualifiedPointer","safeParentPointer","rootDoc","contextTree","pointerIsAParent","currPath","hasIndirectCycle","pointerAlreadyInPath","useCircularStructures","_absolutifiedRef","jsonPointerToArray","extractFromDoc","__value","absolutifiedRef","ancestors","pointToAncestor","patchValueAlreadyInPath","clearCache","getDoc","fetchJSON","docPath","Accept","extract","unescapeJsonPointerToken","doc","_doc","nextChar","lastParentChar","alreadyAddError","originalDefinitionObj","part","allOf","toMerge","_err","absoluteRefPatches","_ref$getBaseUrlForNod","getBaseUrlForNodePath","_ref$targetKeys","targetKeys","nodePath","absolutifiedRefValue","generateAbsoluteRefPatches","opPath","ContextTree","createNode","getParent","updateNode","child","branch","protoValue","ensureExists","noop","SpecMap","debugLevel","plugins","pluginHistory","promisedPatches","showDebug","allPatches","pluginProp","libMethods","bind","_getContext","hasRun","_hasRun","wrappedPlugins","wrapPlugin","updatePatches","_console","_console2","_len2","_key2","pluginObj","isSubPath","pathDiscriminator","ctx","tested","generator","_marked","refCache","traverse","parentIndex","indexOfFirstProperties","isRootProperties","traversed","updatedPath","isObj","objRef","isWithinPathDiscriminator","delegateYield","finish","pluginName","_this2","getMutationsForPlugin","getPluginName","getPluginHistory","mi","getPluginHistoryTip","mutationIndex","_this3","promisedPatchThen","setContext","updateMutations","_this4","promisedPatch","removePromisedPatch","getCurrentPlugin","tip","getPluginMutationIndex","getMutations","currentPlugin","getPluginRunCount","_this5","that","nextPlugin","nextPromise","nextPromisedPatch","dispatch","pluginCount","promises","promise","getCurrentMutations","lastMutationIndex","getLib","updatePluginHistory","executePlugin","makeFetchJSON","http","_obj$allowMetaPatches","skipNormalization","doResolve","_spec","plugs","isPlainObject","ctor","prot","parameter","serialize","effectiveMediaType","styledValue","PARAMETER_HEADER_BLACKLIST","Cookie","attachContentTypeForEmptyPayload","_ref5$securities","_ref5$operation","_securities$authorize","securityDef","securityObj","in","cookies","encoded","tokenValue","tokenType","token_type","applySecurities","requestBodyDef","requestBodyMediaTypes","isExplicitContentTypeValid","firstMediaType","mediaTypes","parseInt","accept","_ref$securities","_ref$operation","_securities$specSecur","tokenName","oauthToken","authorization","base64","_operation$consumes","_spec$consumes","isBodyParamPresent","isFormDataParamPresent","_excluded","arrayOrEmpty","OperationNotFoundError","userHttp","signal","parameterBuilders","specIsOAS3","operationRaw","_operationRaw$operati","_ref2$serverVariables","selectedServerObj","serverUrls","srv","_servers","re","getVariableTemplateNames","vari","variables","variableDefinition","variableValue","ourUrl","parsedContextUrl","computedScheme","stripNonAlpha","computedHost","computedPath","pathname","buildOas3UrlWithContext","oas3BaseUrl","_ref3$contextUrl","firstSchemeInSpec","swagger2BaseUrl","combinedParameters","paramsMap","dedupedParameters","deduplicateParameters","builder","findParametersWithName","versionSpecificOptions","cookieString","cookieName","cookieValue","cookie","_x2","_resolveSubtree","returnEntireTree","resolveOptions","_normalizeSwagger","normalized","httpFn","preFetch","postFetch","Http","freshConfigs","rest","shallowEqualKeys","getComponents","getStore","memGetComponent","memoize","memMakeMappedContainer","memoizeForWithMappedContainer","withMappedContainer","makeMappedContainer","batch","getBatch","nullListeners","notify","Subscription","store","parentSub","unsubscribe","listeners","handleChangeWrapper","_proto","addNestedSub","listener","trySubscribe","subscribe","notifyNestedSubs","onStateChange","isSubscribed","createListenerCollection","tryUnsubscribe","useLayoutEffect","contextValue","useMemo","subscription","previousState","Context","Provider","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","updateCount","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","latestStoreState","initStateUpdates","connectAdvanced","selectorFactory","_ref2$getDisplayName","_ref2$methodName","methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","forwardRef","_ref2$context","connectOptions","wrappedComponentName","selectorFactoryOptions","pure","usePureOnlyMemo","ConnectFunction","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","Consumer","isContextConsumer","useContext","didStoreComeFromProps","createChildSelector","_useMemo2","overriddenContextValue","_useReducer","useReducer","previousStateUpdateResult","renderedWrappedComponent","Connect","forwarded","y","shallowEqual","objA","objB","keysA","keysB","wrapMapToPropsConstant","getConstant","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","mapDispatchToProps","actionCreators","boundActionCreators","_loop","actionCreator","bindActionCreators","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextOwnProps","nextStateProps","statePropsChanged","propsChanged","stateChanged","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","factories","strictEqual","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","_ref$selectorFactory","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","newBatch","withConnect","reduxStore","compose","WithRoot","withRoot","identity","connect","customMapStateToProps","WithSystem","withSystem","handleProps","mapping","oldProps","componentName","WithMappedContainer","cleanProps","omit","domNode","App","ReactDOM","failSilently","_arrayLikeToArray","_toConsumableArray","_objectSpread","classNameCombinations","getClassNameCombinations","classNames","arrLength","createStyleObject","elementStyle","stylesheet","nonTokenClassNames","classNamesCombinations","styleObject","createClassNameString","_ref$style","useInlineStyles","TagName","childrenCreator","childrenCount","createChildren","allStylesheetSelectors","includes","startingClassName","newLineRegex","AllLineNumbers","codeString","codeStyle","_ref2$containerStyle","containerStyle","float","_ref2$numberStyle","numberStyle","startingLineNumber","lines","_","getAllLineNumbers","getInlineLineNumber","lineNumber","inlineLineNumberStyle","assembleLineNumberStyles","lineNumberStyle","largestLineNumber","num","minWidth","textAlign","userSelect","createLineElement","showInlineLineNumbers","_ref3$lineProps","lineProps","_ref3$className","showLineNumbers","wrapLongLines","unshift","flattenCodeTree","newTree","processLines","codeTree","wrapLines","lastLineBreakIndex","createWrappedLine","createUnwrappedLine","createLine","splitValue","newChild","_line","newElem","_line2","_line3","defaultRenderer","rows","isHighlightJs","astGenerator","highlightAuto","defaultAstGenerator","defaultStyle","SyntaxHighlighter","_ref7","_ref7$style","_ref7$customStyle","customStyle","_ref7$codeTagProps","codeTagProps","_ref7$useInlineStyles","_ref7$showLineNumbers","_ref7$showInlineLineN","_ref7$startingLineNum","lineNumberContainerStyle","_ref7$lineNumberStyle","_ref7$wrapLongLines","_ref7$lineProps","renderer","_ref7$PreTag","PreTag","_ref7$CodeTag","CodeTag","_ref7$code","_objectWithoutProperties","allLineNumbers","defaultPreStyle","hljs","generatorClassName","preProps","defaultCodeValue","_ref6","hasLanguage","listLanguages","checkForListedLanguage","highlight","getCodeTree","whiteSpace","registerLanguage","js","bash","powershell","javascript","styles","agate","arta","monokai","nord","obsidian","availableStyles","DEFAULT_RESPONSE_KEY","isImmutable","maybe","toList","objWithHashedKeys","fdObj","newObj","trackKeys","pair","containsMultiple","createObjWithHashedKeys","isFn","_memoize","objMap","objReduce","systemThunkMiddleware","defaultStatusCode","codes","getList","iterable","extractFileNameFromContentDispositionHeader","responseFilename","patterns","regex","filename","upperFirst","camelCase","validateValueBySchema","requiredByParam","parameterContentMediaType","nullable","requiredBySchema","uniqueItems","schemaRequiresValue","hasValue","stringCheck","arrayCheck","arrayListCheck","allChecks","passedAnyCheck","objectVal","isList","propKey","errs","rxPattern","validatePattern","validateMinItems","validateMaxItems","needRemove","errorPerItem","toSet","errorsPerIndex","validateUniqueItems","validateMaxLength","validateMinLength","validateMaximum","validateMinimum","validateDateTime","validateGuid","validateString","validateBoolean","validateNumber","validateInteger","validateFile","paramRequired","getParameterSchema","paramDetails","getXmlSampleSchema","shouldStringifyTypesConfig","when","shouldStringifyTypes","defaultStringifyTypes","getStringifiedSampleForSchema","resType","typesToStringify","nextConfig","getYamlSampleSchema","yamlString","jsonExample","lineWidth","parseSearch","Buffer","alpha","localeCompare","formArr","eq","braintreeSanitizeUrl","getAcceptControllingResponse","suitable2xxResponse","defaultResponse","suitableDefaultResponse","escapeDeepLinkPath","cssEscape","getExtensions","defObj","keyToStrip","predicate","numberToString","returnAll","generatedIdentifiers","allIdentifiers","generateCodeVerifier","b64toB64UrlEncoded","randomBytes","createCodeChallenge","shaJs","digest","canJsonParse","open","close","swagger2SchemaKeys","parameterContentMediaTypes","shallowArrayEquals","Cache","foundKey","OriginalCache","memoized","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","Uint8Array","start","output","ieee754","customInspectSymbol","SlowBuffer","alloc","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","RangeError","buf","encodingOrOffset","allocUnsafe","isEncoding","actual","write","fromString","arrayView","isInstance","fromArrayBuffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","isBuffer","checked","numberIsNaN","fromObject","toPrimitive","assertSize","array","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","valLength","read","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","poolSize","fill","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","toLocaleString","inspect","thisStart","thisEnd","thisCopy","targetCopy","isFinite","ret","out","hexSliceLookupTable","bytes","checkOffset","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","boundsError","readBigUInt64BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","getMessage","Base","super","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","msg","received","abs","INVALID_BASE64_RE","Infinity","leadSurrogate","base64clean","dst","alphabet","table","i16","BufferBigIntNotDefined","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","func","applyBind","hasOwn","argType","inner","deselectCurrent","clipboardToIE11Formatting","reselectPrevious","selection","success","createRange","getSelection","textContent","top","clip","webkitUserSelect","MozUserSelect","msUserSelect","stopPropagation","clipboardData","clearData","setData","onCopy","appendChild","selectNodeContents","addRange","execCommand","copyKey","userAgent","prompt","removeRange","removeAllRanges","removeChild","entryVirtual","entries","findIndex","values","now","getIteratorMethod","isPrototypeOf","FunctionPrototype","own","ArrayPrototype","arrayMethod","stringMethod","StringPrototype","repeat","startsWith","replacer","space","P","D","T","Promise","WrappedWellKnownSymbolModule","isCallable","tryToString","argument","isConstructor","Prototype","fails","isExtensible","toAbsoluteIndex","lengthOfArrayLike","O","argumentsLength","endPos","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIterator","arrayLike","IS_CONSTRUCTOR","mapfn","iteratorMethod","toIndexedObject","createMethod","IS_INCLUDES","$this","fromIndex","uncurryThis","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","boundFunction","filterReject","toIntegerOrInfinity","$lastIndexOf","NEGATIVE_ZERO","FORCED","searchElement","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","aCallable","IS_RIGHT","memo","left","right","fin","arraySlice","mergeSort","comparefn","middle","insertionSort","llength","rlength","lindex","rindex","originalArray","C","arraySpeciesConstructor","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","callee","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","wasDeleted","remover","allDeleted","aConstructor","iterate","mapFn","nextItem","redefineAll","anInstance","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","ADDER","AS_ENTRIES","getInternalState","previous","entry","getEntry","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","getWeakData","ArrayIterationModule","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","$","InternalMetadataModule","createNonEnumerableProperty","setToStringTag","common","IS_WEAK","NativeConstructor","NativePrototype","exported","KEY","IS_ADDER","forced","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","MATCH","regexp","error1","error2","IteratorPrototype","createPropertyDescriptor","Iterators","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","bitmap","toPropertyKey","propertyKey","IS_PURE","FunctionName","createIteratorConstructor","redefine","IteratorsCore","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","wrappedWellKnownSymbolModule","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","firefox","UA","Pebble","classof","process","getBuiltIn","Deno","versions","v8","webkit","CONSTRUCTOR","isForced","wrapConstructor","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","TARGET","GLOBAL","STATIC","stat","PROTO","nativeSource","targetPrototype","noTargetGet","wrap","real","preventExtensions","NATIVE_BIND","argsLength","partArgs","getDescriptor","aFunction","variable","getMethod","usingIterator","V","g","functionToString","inspectSource","cause","hiddenKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","uid","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","getOwnPropertyNames","onFreeze","NATIVE_WEAK_MAP","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","wmget","wmhas","wmset","metadata","facade","STATE","enforce","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","replacement","feature","detection","normalize","POLYFILL","NATIVE","isRegExp","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","unboundFunction","iterFn","IS_ITERATOR","INTERRUPTED","condition","callFn","innerResult","innerError","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","handler","insert","updateFn","insertFn","flush","head","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","domain","exit","enter","nextTick","createTextNode","characterData","task","symbol","searchParams","URLSearchParams","PromiseCapability","$$resolve","$$reject","$default","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","A","B","chr","S","activeXDocument","definePropertiesModule","enumBugKeys","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","contentWindow","Properties","V8_PROTOTYPE_DEFINE_BUG","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","$getOwnPropertyNames","windowNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","setter","CORRECT_SETTER","TO_ENTRIES","pref","newPromiseCapability","promiseCapability","Queue","tail","unsafe","TAG","SET_METHOD","setGlobal","SHARED","copyright","license","defaultConstructor","requireObjectCoercible","CONVERT_TO_STRING","second","codeAt","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","counter","ucs2decode","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","q","qMinusT","baseMinusT","label","labels","whitespaces","whitespace","ltrim","rtrim","defer","channel","port","setImmediate","clearImmediate","Dispatch","MessageChannel","queue","ONREADYSTATECHANGE","run","runner","event","post","postMessage","port2","port1","onmessage","importScripts","integer","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","postfix","random","NATIVE_SYMBOL","passed","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","copyConstructorProperties","clearErrorStack","installErrorCause","normalizeStringArgument","ERROR_STACK_INSTALLABLE","$AggregateError","AggregateErrorPrototype","errorsArray","AggregateError","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","$every","addToUnscopables","$filter","$findIndex","FIND_INDEX","SKIPS_HOLES","$find","FIND","checkCorrectnessOfIteration","$includes","$IndexOf","un$IndexOf","ARRAY_ITERATOR","Arguments","$map","$reduce","CHROME_VERSION","un$Slice","HAS_SPECIES_SUPPORT","$some","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","itemsLength","arrayLength","getSortCompare","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","getTime","$stringify","tester","low","fix","$entries","nativeGetOwnPropertyDescriptor","nativeGetPrototypeOf","nativeKeys","$values","newPromiseCapabilityModule","perform","allSettled","capability","promiseResolve","alreadyCalled","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","NativePromise","speciesConstructor","onFinally","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","microtask","hostReportErrors","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","$promiseResolve","race","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","isDataDescriptor","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","STRING_ITERATOR","point","un$StartsWith","CORRECT_IS_REGEXP_LOGIC","$trim","forcedStringTrimMethod","defineWellKnownSymbol","$toString","nativeObjectCreate","getOwnPropertyNamesExternal","HIDDEN","SYMBOL","SymbolPrototype","QObject","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","$replacer","hint","InternalWeakMap","collectionWeak","enforceInternalState","IS_IE11","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","deleteAll","emplace","getMapIterator","newMap","findKey","groupBy","keyDerivative","derivedKey","sameValueZero","keyBy","keyOf","mapKeys","mapValues","of","noInitial","accumulator","updateOrInsert","isPresentInMap","upsert","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","MSIE","scheduler","timeout","boundArgs","setInterval","USE_NATIVE_URL","validateArgumentsLength","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","n$Fetch","N$Request","Headers","RequestPrototype","HeadersPrototype","plus","sequences","percentSequence","percentDecode","deserialize","replacements","URLSearchParamsIterator","URLSearchParamsState","parseObject","parseQuery","bindURL","entryIterator","entryNext","attributes","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","getAll","headersHas","headersSet","wrapRequestOptions","RequestConstructor","Request","EOF","arrayFrom","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","compress","ignore0","ipv6","maxIndex","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","ftp","file","https","ws","wss","isWindowsDriveLetter","startsWithWindowsDriveLetter","third","isSingleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","failure","urlString","stateOverride","bufferCodePoints","seenAt","seenBracket","seenPasswordToken","cannotBeABaseURL","isSpecial","includesCredentials","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","address","pieceIndex","parseIPv6","partsLength","numbers","radix","ipv4","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","getProtocol","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","getter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","support","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","bufferClone","view","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","_bodyFormData","DataView","_bodyArrayBuffer","rejected","arrayBuffer","readAsText","chars","readArrayBufferAsText","decode","oldValue","thisArg","upcased","referrer","Response","bodyInit","clone","redirectStatuses","redirect","DOMException","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","responseType","setRequestHeader","onreadystatechange","readyState","send","polyfill","CSS","codeUnit","firstCodeUnit","isSpecificValue","cloneSpecificValue","deepCloneArray","deepExtend","safeGetProperty","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","for","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getKeys","getEnumerableOwnPropertySymbols","propertyIsOnObject","mergeObject","destination","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","deepmerge_1","isFrozen","freeze","seal","fun","thisValue","Func","arrayForEach","unapply","arrayPop","arrayPush","stringToLowerCase","stringMatch","stringReplace","stringTrim","regExpTest","typeErrorCreate","unconstruct","addToSet","lcElement","newObject","lookupGetter","fallbackValue","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","html$1","svg$1","mathMl$1","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_toConsumableArray$1","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","suffix","ATTR_NAME","currentScript","hasAttribute","policyName","createHTML","html$$1","createDOMPurify","DOMPurify","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","_window$NamedNodeMap","MozNamedAttrMap","Text","Comment","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","template","ownerDocument","trustedTypesPolicy","emptyHTML","RETURN_TRUSTED_TYPE","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","documentMode","hooks","createHTMLDocument","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","ALLOW_ARIA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","transformCaseFunc","CONFIG","formElement","_parseConfig","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","namespaceURI","parentTagName","commonSvgAndHTMLElements","_forceRemove","parentNode","outerHTML","_removeAttribute","getAttributeNode","removeAttribute","_initDocument","dirty","leadingWhitespace","dirtyPayload","parseFromString","createDocument","insertBefore","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","_isClobbered","nodeName","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","allowedTags","firstElementChild","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","hookEvent","keepAttr","allowedAttributes","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","shadowNode","shadowIterator","nextNode","sanitize","importedNode","oldNode","returnNode","toStaticHTML","firstChild","nodeIterator","serializedHTML","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","SubRange","high","overlaps","touches","subtract","DRange","ranges","_update_length","_add","subrange","newRanges","_subtract","intersect","_intersect","subranges","ReflectOwnKeys","R","ReflectApply","NumberIsNaN","EventEmitter","once","emitter","errorListener","removeListener","eventTargetAgnosticAddListener","flags","on","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","warned","w","onceWrapper","fired","wrapFn","_onceWrap","_listeners","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","setMaxListeners","getMaxListeners","doError","er","addListener","prependListener","prependOnceListener","originalListener","spliceOne","off","removeAllListeners","rawListeners","eventNames","formatter","fault","EConstructor","FormattedError","eval","EvalError","reference","syntax","SyntaxError","URIError","fmt","precision","argIndex","escaped","leadingZero","nextArg","slurpNumber","digits","parseFloat","toFixed","vsprintf","printf","ERROR_MESSAGE","toStr","funcType","bound","binder","boundLength","Empty","$SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","needsEval","TypedArray","INTRINSICS","Atomics","decodeURI","encodeURI","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakRef","WeakSet","doEval","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","alias","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","origSymbol","hasSymbolSham","symObj","syms","deepFreeze","deepFreezeEs6","_default","isMatchIgnored","ignoreMatch","escapeHTML","inherit","original","objects","emitsWrappingTags","HTMLRenderer","parseTree","classPrefix","walk","addText","openNode","sublanguage","span","closeNode","TokenTree","rootNode","closeAllNodes","_walk","static","_collapse","TokenTreeEmitter","addKeyword","addSublanguage","toHTML","finalize","BACKREF_RE","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","BACKSLASH_ESCAPE","begin","relevance","APOS_STRING_MODE","illegal","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","modeOptions","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","CSS_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","MODES","MATCH_NOTHING_RE","RE_STARTERS_RE","SHEBANG","beginShebang","binary","resp","END_SAME_AS_BEGIN","_beginMatch","skipIfhasPrecedingDot","beginKeywords","__beforeBegin","keywords","compileIllegal","_parent","either","compileMatch","compileRelevance","COMMON_KEYWORDS","compileKeywords","rawKeywords","caseInsensitive","compiledKeywords","compileList","keywordList","keyword","scoreForKeyword","providedScore","commonKeyword","compileLanguage","langRe","case_insensitive","MultiRegex","matchIndexes","regexes","matchAt","addRule","countMatchGroups","compile","terminators","matcherRe","regexps","numCaptures","matchData","ResumableMultiRegex","rules","multiRegexes","regexIndex","getMatcher","resumingScanAtSamePosition","considerAll","m2","compilerExtensions","classNameAliases","compileMode","cmode","isCompiled","keywordPattern","$pattern","lexemes","keywordPatternRe","beginRe","endSameAsBegin","endsWithParent","endRe","terminatorEnd","illegalRe","variants","cachedVariants","variant","dependencyOnParent","starts","expandOrCloneMode","mm","term","rule","buildModeRegex","BuildVuePlugin","detectedLanguage","unknownLanguage","computed","highlighted","autoDetect","getLanguage","ignoreIllegals","autodetect","class","domProps","VuePlugin","install","Vue","mergeHTMLPlugin","originalStream","nodeStream","resultNode","processed","nodeStack","selectStream","attributeString","stream","reverse","mergeStreams","_nodeStream","nextSibling","nodeValue","seenDeprecations","escape$1","inherit$1","NO_MATCH","languages","aliases","SAFE_MODE","fixMarkupRe","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","noHighlightRe","languageDetectRe","tabReplace","useBR","__emitter","shouldNotHighlight","languageName","codeOrlanguageName","optionsOrCode","continuation","fire","_highlight","codeToHighlight","keywordData","matchText","processBuffer","subLanguage","modeBuffer","continuations","processSubLanguage","keywordRelevance","processKeywords","startNewMode","endOfMode","matchPlusRemainder","matched","lexeme","endsParent","doIgnore","resumeScanAtSamePosition","doBeginMatch","newMode","beforeCallbacks","skip","excludeBegin","returnBegin","doEndMatch","endMode","returnEnd","excludeEnd","lastMatch","processLexeme","textBeforeMatch","badRule","iterations","processContinuations","processedCount","illegalBy","sofar","errorRaised","languageSubset","plaintext","justTextHighlightResult","autoDetection","sorted","supersetOf","best","secondBest","second_best","brPlugin","TAB_REPLACE_RE","tabReplacePlugin","highlightElement","_class","blockLanguage","currentLang","resultLang","updateClassName","relavance","initHighlighting","querySelectorAll","wantsHighlight","highlightAll","registerAliases","aliasList","lang","fixMarkup","highlightBlock","configure","userOptions","initHighlightingOnLoad","languageDefinition","error$1","rawDefinition","unregisterLanguage","requireLanguage","addPlugin","upgradePluginAPI","vuePlugin","debugMode","safeMode","versionString","HLJS","VAR","BRACED_VAR","SUBST","HERE_DOC","QUOTE_STRING","ARITHMETIC","KNOWN_SHEBANG","FUNCTION","literal","built_in","VERSION","HEADER","HEADERS_AND_BODY","KEYWORDS","LITERALS","BUILT_INS","lookahead","IDENT_RE$1","XML_TAG","isTrulyOpeningTag","afterMatchIndex","hasClosingTag","KEYWORDS$1","frac","decimalInteger","NUMBER","HTML_TEMPLATE","CSS_TEMPLATE","TEMPLATE_STRING","SUBST_INTERNALS","SUBST_AND_COMMENTS","PARAMS_CONTAINS","PARAMS","ALLOWED_COMMENTS","TYPES","VALUE_CONTAINER","OBJECT","ARRAY","BACKTICK_ESCAPE","APOS_STRING","PS_COMMENT","CMDLETS","PS_CLASS","PS_FUNCTION","PS_USING","PS_ARGUMENTS","PS_METHODS","GENTLEMANS_SET","PS_TYPE","TAG_NAME_RE","XML_ENTITIES","XML_META_KEYWORDS","XML_META_PAR_KEYWORDS","APOS_META_STRING_MODE","QUOTE_META_STRING_MODE","TAG_INTERNALS","URI_CHARACTERS","STRING","CONTAINER_STRING","TIMESTAMP","VALUE_MODES","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","SLICE$0","createClass","isIterable","Seq","KeyedIterable","isKeyed","KeyedSeq","IndexedIterable","isIndexed","IndexedSeq","SetIterable","isAssociative","SetSeq","maybeIterable","IS_ITERABLE_SENTINEL","maybeKeyed","IS_KEYED_SENTINEL","maybeIndexed","IS_INDEXED_SENTINEL","maybeAssociative","isOrdered","maybeOrdered","IS_ORDERED_SENTINEL","Keyed","Indexed","DELETE","SHIFT","SIZE","MASK","CHANGE_LENGTH","DID_ALTER","MakeRef","SetRef","OwnerID","arrCopy","newArr","ii","ensureSize","__iterate","returnTrue","wrapIndex","uint32Index","wholeSlice","resolveBegin","resolveIndex","resolveEnd","defaultIndex","ITERATE_KEYS","ITERATE_VALUES","ITERATE_ENTRIES","REAL_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","ITERATOR_SYMBOL","Iterator","iteratorValue","iteratorResult","iteratorDone","hasIterator","getIteratorFn","isIterator","maybeIterator","iteratorFn","isArrayLike","emptySequence","toSeq","seqFromValue","toKeyedSeq","fromEntrySeq","keyedSeqFromValue","toIndexedSeq","indexedSeqFromValue","toSetSeq","toSource","__toString","cacheResult","__iterateUncached","seqIterate","__iterator","seqIterator","isSeq","EMPTY_SEQ","EMPTY_REPEAT","EMPTY_RANGE","IS_SEQ_SENTINEL","ArraySeq","_array","ObjectSeq","_object","_keys","IterableSeq","_iterable","IteratorSeq","_iteratorCache","maybeSeq","seq","maybeIndexedSeqFromValue","useKeys","cache","__iteratorUncached","converter","fromJSWith","fromJSDefault","parentJSON","isPlainObj","toMap","valueA","valueB","deepEqual","__hash","notAssociative","flipped","allEqual","bSize","Repeat","times","_value","invariant","Range","_start","_end","KeyedCollection","IndexedCollection","SetCollection","searchValue","this$0","other","possibleIndex","offsetValue","imul","smi","i32","STRING_HASH_CACHE_MIN_STRLEN","cachedHashString","hashString","hashJSObj","stringHashCache","STRING_HASH_CACHE_SIZE","STRING_HASH_CACHE_MAX_SIZE","usingWeakMap","weakMap","UID_HASH_KEY","canDefineProperty","getIENodeHash","objHashUID","uniqueID","assertNotInfinite","emptyMap","isMap","maybeMap","IS_MAP_SENTINEL","keyValues","_root","updateMap","updater","updatedValue","updateInDeepMap","forceIterator","__ownerID","__altered","mergeIntoMapWith","merger","mergeIn","iters","deepMerger","mergeDeepWith","deepMergerWith","mergeDeepIn","comparator","sortFactory","mapper","mutable","asMutable","wasAltered","__ensureOwner","asImmutable","MapIterator","ownerID","makeMap","EMPTY_MAP","MapPrototype","ArrayMapNode","BitmapIndexedNode","HashArrayMapNode","HashCollisionNode","keyHash","ValueNode","_type","_reverse","_stack","mapIteratorFrame","mapIteratorValue","__prev","newRoot","newSize","didChangeSize","didAlter","isLeafNode","mergeIntoNode","newNode","idx1","idx2","createNodes","packNodes","excluding","packedII","packedNodes","bit","expandNodes","including","expandedNodes","iterables","mergeIntoCollectionWith","nextValue","mergeIntoMap","keyPathIter","isNotSet","existingValue","nextExisting","nextUpdated","popCount","canEdit","newArray","spliceIn","newLen","spliceOut","removeIn","exists","MAX_ARRAY_MAP_SIZE","isEditable","newEntries","keyHashFrag","MAX_BITMAP_INDEXED_SIZE","newBitmap","newNodes","newCount","MIN_HASH_ARRAY_MAP_SIZE","keyMatch","subNode","emptyList","makeList","VNode","setSize","maybeList","IS_LIST_SENTINEL","listNodeFor","_origin","updateList","_capacity","_level","_tail","oldSize","setListBounds","mergeIntoListWith","iterateList","DONE","ListPrototype","removeBefore","originIndex","removingFirst","oldChild","editable","editableVNode","removeAfter","sizeIndex","EMPTY_LIST","EMPTY_ORDERED_MAP","tailPos","getTailOffset","iterateNodeOrLeaf","iterateLeaf","iterateNode","capacity","newTail","updateVNode","nodeHas","lowerNode","newLowerNode","rawIndex","owner","oldOrigin","oldCapacity","newOrigin","newCapacity","newLevel","offsetShift","oldTailOffset","newTailOffset","oldTail","beginIndex","maxSize","emptyOrderedMap","isOrderedMap","maybeOrderedMap","makeOrderedMap","omap","_map","_list","updateOrderedMap","newList","flip","ToKeyedSequence","indexed","_iter","_useKeys","ToIndexedSequence","ToSetSequence","FromEntriesSequence","flipFactory","flipSequence","makeSequence","reversedSequence","cacheResultThrough","mapFactory","mappedSequence","reverseFactory","filterFactory","filterSequence","countByFactory","grouper","groups","groupByFactory","isKeyedIter","coerce","iterableClass","reify","sliceFactory","originalSize","resolvedBegin","resolvedEnd","sliceSize","resolvedSize","sliceSeq","skipped","isSkipping","takeWhileFactory","takeSequence","iterating","skipWhileFactory","skipSequence","skipping","concatFactory","isKeyedIterable","singleton","concatSeq","sum","flattenFactory","flatSequence","flatDeep","currentDepth","flatMapFactory","interposeFactory","interposedSequence","defaultComparator","maxFactory","maxCompare","comp","zipWithFactory","keyIter","zipper","zipSequence","iterators","isDone","steps","validateEntry","resolveSize","Record","defaultValues","hasInitialized","RecordType","setProps","RecordTypePrototype","_name","_defaultValues","RecordPrototype","indexedIterable","recordName","defaultVal","_empty","makeRecord","likeRecord","record","setProp","emptySet","isSet","maybeSet","IS_SET_SENTINEL","fromKeys","updateSet","union","originalSet","OrderedSet","__make","EMPTY_SET","SetPrototype","__empty","makeSet","emptyOrderedSet","isOrderedSet","maybeOrderedSet","EMPTY_ORDERED_SET","OrderedSetPrototype","makeOrderedSet","Stack","emptyStack","isStack","unshiftAll","maybeStack","IS_STACK_SENTINEL","_head","peek","makeStack","pushAll","EMPTY_STACK","StackPrototype","mixin","keyCopier","__toJS","toOrderedMap","toOrderedSet","toStack","__toStringMapper","findEntry","sideEffect","joined","isFirst","reducer","initialReduction","reduction","useFirst","reduceRight","reversed","not","butLast","countBy","entriesSequence","entryMapper","filterNot","findLast","findLastEntry","findLastKey","flatMap","searchKey","searchKeyPath","nested","isSubset","isSuperset","keyMapper","lastKeyOf","maxBy","neg","defaultNegComparator","minBy","amount","skipLast","skipWhile","skipUntil","take","takeLast","takeWhile","takeUntil","hashIterable","quoteString","chain","KeyedIterablePrototype","defaultZipper","ordered","keyed","murmurHashOfSize","hashMerge","removeNum","numArgs","spliced","findLastIndex","interpose","interleave","zipped","interleaved","zip","zipWith","superCtor","super_","TempCtor","mime","bom","msSaveBlob","blobURL","webkitURL","tempLink","click","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectToString","nativeMax","nativeMin","toNumber","isObjectLike","isBinary","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","cancel","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","iteratee","resIndex","baseTimes","isArguments","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","initAccum","reAsciiWord","baseAssignValue","objValue","copyObject","keysIn","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","customizer","isDeep","isFlat","isFull","stacked","subValue","objectCreate","baseCreate","baseForOwn","baseEach","createBaseEach","fromRight","isFlattenable","baseFlatten","isStrict","baseFor","createBaseFor","castPath","toKey","keysFunc","symbolsFunc","getRawTag","symToStringTag","toStringTag","baseGetTag","baseIsEqualDeep","baseIsEqual","equalArrays","equalByTag","equalObjects","arrayTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isMasked","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","isPrototype","nativeKeysIn","isProto","baseIsMatch","getMatchData","matchesStrictComparable","isKey","isStrictComparable","assignMergeValue","baseMergeDeep","safeGet","baseMerge","srcIndex","cloneTypedArray","isArrayLikeObject","toPlainObject","mergeFunc","isCommon","isTyped","baseGet","eachFunc","overRest","setToString","baseSetToString","arrayMap","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","assignFunc","valsLength","baseSlice","freeExports","freeModule","cloneArrayBuffer","dataView","reFlags","symbolValueOf","typedArray","isNew","getSymbols","getSymbolsIn","coreJsData","baseRest","isIterateeCall","assigner","sources","guard","castSlice","hasUnicode","stringToArray","strSymbols","arrayReduce","deburr","words","reApos","baseIteratee","findIndexFunc","deburrLetter","basePropertyOf","arraySome","cacheHas","isPartial","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","convert","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseGetAllKeys","isKeyable","baseIsNative","getPrototype","overArg","nativeObjectToString","unmasked","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","Ctor","ctorString","hasFunc","reHasUnicode","reHasUnicodeWord","nativeCreate","cloneDataView","cloneRegExp","cloneSymbol","spreadableSymbol","reIsUint","reIsDeepProp","reIsPlainProp","maskSrcKey","assocIndexOf","getMapData","freeProcess","nodeUtil","binding","otherArgs","shortOut","nativeNow","lastCalled","stamp","pairs","LARGE_ARRAY_SIZE","asciiToArray","unicodeToArray","memoizeCapped","reWhitespace","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsModifier","rsEmoji","reUnicodeWord","capitalize","createCompounder","word","timeWaiting","reLatin","reComboMark","createFind","baseFindIndex","toInteger","baseHasIn","hasPath","baseIsArguments","stubFalse","baseKeys","baseIsMap","baseUnary","nodeIsMap","objectCtorString","baseIsSet","nodeIsSet","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeysIn","createAssigner","baseUnset","customOmitClone","flatRest","CLONE_DEEP_FLAG","baseProperty","basePropertyDeep","baseReduce","baseSet","baseSome","INFINITY","toFinite","remainder","baseTrim","createCaseFirst","asciiWords","hasUnicodeWord","unicodeWords","baseZipObject","settings","subset","defaultPrefix","registerAlias","Emitter","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","bigIntValueOf","gOPS","symToString","hasShammedSymbols","isEnumerable","gPO","inspectCustom","inspectSymbol","wrapQuotes","quoteChar","quoteStyle","inspect_","maxStringLength","customInspect","inspectString","maxDepth","baseIndent","getIndent","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","HTMLElement","isElement","xs","singleLineValues","indentedJoin","mapParts","collectionOf","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isDate","ys","protoTag","stringTag","trailer","lowbyte","lineJoiner","symMap","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","browser","env","argv","cwd","chdir","umask","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","ReactPropTypes","bigint","bool","arrayOf","elementType","instanceOf","objectOf","oneOfType","shape","exact","checkPropTypes","qs","sep","maxKeys","kstr","vstr","stringifyPrimitive","ks","_setDefaults","ignoreCase","multiline","defaultRange","randInt","_gen","ROOT","GROUP","followedBy","notFollowedBy","remember","groupNumber","_randSelect","POSITION","SET","expandedSet","_expand","REPETITION","REFERENCE","CHAR","_randBool","_toOtherCase","RANGE","drange","otherCaseCode","_range","randexp","_randexp","MAX_BYTES","MAX_UINT32","crypto","msCrypto","getRandomValues","generated","_react","_interopRequireDefault","_copyToClipboard","_objectWithoutPropertiesLoose","_React$PureComponent","_getPrototypeOf2","_this$props","elem","Children","only","_this$props2","cloneElement","DebounceInput","_lodash","_createSuper","_isNativeReflectConstruct","persist","forceNotify","onKeyDown","onBlur","debounceTimeout","doNotify","debouncedChangeFunc","isDebouncing","_debounceTimeout2","createNotifier","prevProps","oldTimeout","stateValue","maybeOnKeyDown","maybeOnBlur","forceNotifyByEnter","forceNotifyOnBlur","inputRef","maybeRef","aa","ba","ca","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","_render","Ra","_payload","_init","Sa","Ta","Va","_valueTracker","setValue","stopTracking","Ua","Wa","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","controlled","$a","ab","bb","eb","db","fb","defaultSelected","gb","hb","ib","jb","kb","lb","mb","nb","ob","MSApp","execUnsafeLocalFunction","pb","lastChild","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","opacity","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","setProperty","ub","menuitem","area","br","col","embed","hr","keygen","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","transition","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","nd","od","keyCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","isPropagationStopped","cancelBubble","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","le","date","datetime","month","tel","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","compareDocumentPosition","Ne","HTMLIFrameElement","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","G","$e","af","bf","cf","df","capture","Nb","z","u","ef","ff","gf","hf","J","K","Q","L","je","ke","jf","kf","lf","mf","nf","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","H","I","Cf","M","N","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","firstBaseUpdate","lastBaseUpdate","pending","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useCallback","useImperativeHandle","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","ji","ki","li","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","componentStack","Ui","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","setStart","setEnd","scrollLeft","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","_calculateChangedBits","unstable_observedBits","unmount","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","ImmutablePropTypes","Immutable","ANONYMOUS","productionTypeChecker","getProductionTypeChecker","getPropType","propValue","propType","createChainableTypeChecker","checkType","locationName","chainedCheckType","createIterableSubclassTypeChecker","subclassName","immutableClassName","immutableClassTypeValidator","listOf","mapOf","orderedMapOf","setOf","orderedSetOf","stackOf","iterableOf","recordOf","mapContains","orderedMapContains","orderedMap","orderedSet","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","__self","__source","_status","_result","IsSomeRendererActing","createContext","_currentValue2","_threadCount","createFactory","createRef","isValidElement","lazy","NodeError","_Base","expected","determiner","this_len","endsWith","Duplex","Readable","Writable","allowHalfOpen","readable","onend","_writableState","ended","onEndNT","highWaterMark","getBuffer","_readableState","destroyed","PassThrough","Transform","_transform","chunk","ReadableState","EElistenerCount","Stream","OurUint8Array","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","_require$codes","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","decoder","_read","_destroy","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","_undestroy","undestroy","isPaused","setEncoding","enc","MAX_HWM","howMuchToRead","computeNewHighWaterMark","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","finished","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","pipeOnDrain","pause","dests","ev","asyncIterator","_fromList","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","_flush","prefinish","_write","err2","CorkedRequest","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","WritableState","internalUtil","deprecate","realHasInstance","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","final","_final","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","rState","hasInstance","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","custom","hasStrings","_getString","_getBuffer","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","eos","onlegacyfinish","writableEnded","readableEnded","onrequest","setHeader","isRequest","ERR_MISSING_ARGS","destroyer","closed","popCallback","streams","destroys","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","_immutable","_immutable2","_utilities","getDefaultState","reducerKeys","inputState","temporaryState","reducerName","nextDomainState","validateNextState","_combineReducers2","_combineReducers3","_getStateName2","reducerNames","stateName","unexpectedStatePropertyNames","getUnexpectedInvocationParameterMessage","getStateName","_getStateName3","_getUnexpectedInvocationParameterMessage3","_validateNextState3","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observeState","bindActionCreator","funcs","applyMiddleware","middlewares","_dispatch","middlewareAPI","middleware","runtime","Op","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isGeneratorFunction","genFun","awrap","async","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","regeneratorRuntime","accidentalStrictMode","textarea","decodeEntity","UNESCAPE_MD_RE","unescapeMd","isValidEntityCode","fromCodePoint","surrogate1","surrogate2","NAMED_ENTITY_RE","DIGITAL_ENTITY_TEST_RE","replaceEntityPattern","decoded","replaceEntities","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","escapeHtml","nextToken","tight","blockquote_open","blockquote_close","getBreak","fence","fences","fenceName","langClass","langPrefix","fence_custom","heading_open","hLevel","heading_close","xhtmlOut","bullet_list_open","bullet_list_close","list_item_open","list_item_close","ordered_list_open","ordered_list_close","paragraph_open","paragraph_close","addBreak","link_open","link_close","image","table_open","table_close","thead_open","thead_close","tbody_open","tbody_close","tr_open","tr_close","th_open","align","th_close","td_open","td_close","strong_open","strong_close","em_open","em_close","del_open","del_close","ins_open","ins_close","mark_open","mark_close","sup","hardbreak","softbreak","htmlblock","htmltag","abbr_open","abbr_close","footnote_ref","subId","footnote_block_open","footnote_block_close","footnote_open","footnote_close","footnote_anchor","dl_open","dt_open","dd_open","dl_close","dt_close","dd_close","Renderer","Ruler","__rules__","__cache__","StateInline","parserInline","outTokens","posMax","pendingLevel","isInLabel","linkLevel","linkContent","labelUnmatchedScopes","parseLinkLabel","labelEnd","oldPos","oldFlag","skipToken","parseAbbr","abbreviations","normalizeLink","parseLinkDestination","parseLinkTitle","normalizeReference","parseReference","references","renderInline","_rules","__find__","__compile__","chains","enabled","altName","at","opt","beforeName","ruleName","afterName","strict","getRules","chainName","pushPending","cacheSet","cacheGet","PUNCT_CHARS","regEscape","RARE_RE","SCOPED_ABBR_RE","SCOPED_ABBR","QUOTE_TEST_RE","QUOTE_RE","PUNCT_RE","isLetter","replaceAt","inlineMode","tok","lastParagraph","currentLabel","insideRef","refTokens","footnotes","reg","regText","abbrRegExp","inlineTokens","blkIdx","thisLevel","lastSpace","nextSpace","canOpen","canClose","isSingle","OUTER","single","quotes","Core","StateBlock","indent_found","bMarks","eMarks","tShift","blkIndent","lineMax","parentType","ddIndent","skipBulletListMarker","startLine","skipOrderedListMarker","skipEmptyLines","skipSpaces","skipChars","skipCharsBack","getLines","keepLastLF","html_blocks","HTML_TAG_OPEN_RE","HTML_TAG_CLOSE_RE","getLine","skipMarker","_rules$1","endLine","nextLine","silent","mem","haveEndMarker","lastLineEmpty","oldTShift","oldBMarks","oldIndent","oldParentType","terminatorRules","terminate","maxNesting","tokenize","cnt","oldTight","posAfterMarker","indentAfterMarker","markerValue","markerCharCode","contentStart","listTokIdx","prevEmptyEnd","listLines","itemLines","markTightParagraphs","oldBMark","isLetter$1","lineText","cell","aligns","tableLines","tbodyLines","ddLine","dtLine","oldDDIndent","markTightParagraphs$1","ParserBlock","hasEmptyLines","TABS_SCAN_RE","NEWLINES_RE","SPACES_RE","isTerminatorChar","lineStart","lastTabPos","ESCAPED","isAlphaNum","scanDelims","lastChar","can_open","can_close","delims","UNESCAPE_RE","UNESCAPE_RE$1","url_schemas","EMAIL_RE","AUTOLINK_RE","replace$1","attr_value","open_tag","HTML_TAG_RE","DIGITAL_RE","NAMED_RE","_rules$2","pmax","matchStart","matchEnd","startCount","oldCount","labelStart","isImage","footnoteId","oldLength","footnoteSubId","linkMatch","emailMatch","fullUrl","isLetter$2","ParserInline","cached_pos","StateCore","preset","presets","parseInline","NOT_FOUND","defaultEqualityCheck","defaultMemoize","equalityCheckOrOptions","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","resultEqualityCheck","createCacheKeyComparator","put","getEntries","cacheIndex","createLruCache","matchingEntry","getDependencies","dep","dependencyTypes","createSelectorCreator","memoizeOptionsFromArgs","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption","_directlyPassedOption2","finalMemoizeOptions","memoizedResultFunc","lastResult","recomputations","resetRecomputations","util","sets","positions","regexpStr","lastGroup","groupStack","repeatErr","strToChars","wordBoundary","nonWordBoundary","notWords","ints","notInts","notWhitespace","classTokens","tokenizeClass","anyChar","INTS","WORDS","WHITESPACE","SLSH","lbs","a16","b16","c8","dctrl","eslsh","performance","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","NonError","_prepareSuperMessage","commonProperties","isCalled","destroyCircular","to_","forceEnumerable","deserializeError","newError","blockSize","finalSize","_block","_finalSize","_blockSize","accum","assigned","_update","rem","bits","lowBits","highBits","_hash","algorithm","Algorithm","sha","sha1","sha224","sha256","sha384","sha512","inherits","Sha","_w","rotl30","ft","_b","_c","Sha1","rotl5","Sha256","Sha224","_f","_g","_h","maj","sigma0","sigma1","gamma0","T1","T2","SHA512","Sha384","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","writeInt64BE","Sha512","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","al","bl","cl","dl","fl","gl","hl","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","callBound","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","$wm","$m","$o","assert","listGet","listHas","listSet","EE","pipeline","_isStdio","didOnEnd","cleanup","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","utf8CheckByte","utf8CheckExtraBytes","total","utf8CheckIncomplete","copyProps","SafeBuffer","toLower","escapeString","openapi","v2OperationIdCompatibilityMode","idWithoutWhitespace","idFromPathMethod","legacyIdFromPathMethod","getOperationRaw","operationObj","cbValue","eachOperation","findOperation","rawOperationId","normalizeSwagger","parsedSpec","$$normalized","pathParameters","oid","opList","__originalOperationId","inheritsList","toBeInherit","inheritName","_loop2","opParam","pairSplitRegExp","eq_idx","tryDecode","fieldContentRegExp","maxAge","expires","toUTCString","httpOnly","secure","sameSite","percentTwenties","Format","formatters","RFC1738","RFC3986","formats","utils","allowDots","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","delimiter","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","$0","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","leaf","cleanRoot","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","encodedVal","combine","parseValues","compact","getSideChannel","arrayPrefixGenerators","brackets","pushToArray","valueOrArray","toISO","defaultFormat","addQueryPrefix","encodeValuesOnly","serializeDate","skipNulls","sentinel","generateArrayPrefix","sideChannel","tmpSc","findFlag","keyValue","valuesArray","valuesJoined","keyPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","hexTable","arrayToObject","compacted","compactQueue","strWithoutPlus","unescape","defaultEncoder","mapped","mergeTarget","targetItem","active","getRangeAt","blur","Traverse","immutable","parents","alive","walker","node_","modifiers","keepGoing","isRoot","circular","stopHere","pre","updateState","isLeaf","notLeaf","notRoot","isLast","toS","ps","controlOrWhitespace","CRHTLF","slashes","protocolre","windowsDriveLetter","trimLeft","ignore","lolcation","finaldestination","extractProtocol","forwardSlashes","otherSlashes","slashesCount","relative","extracted","instruction","instructions","up","ins","punycode","regexPunycode","stringFromCharCode","mapDomain","ucs2encode","flag","basic","oldi","urlParse","resolveObject","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","ipv6Hostname","hostparts","newpart","validParts","notHost","esc","qm","tkeys","tkey","rkeys","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","hasTrailingSlash","isAbsolute","trace","isClosingTag","isSelfClosingTag","lexer","xmlStr","isTag","isOpeningTag","indentor","textNodesOnSameLine","indicesToRemove","rawResult","indentation","oneBefore","twoBefore","XML_CHARACTER_MAP","escapeForXML","indent_count","character","indent_spaces","_elem","icount","indents","interrupt","isStringContent","get_attributes","_cdata","proceed","interrupted","instant","standalone","isNativeSmoothScrollEnabledOn","makeScroller","defaultDuration","edgeOffset","scrollTimeoutId","setScrollTimeoutId","stopScroll","getTopWithEdgeOffset","getTopOf","scrollToY","targetY","onDone","toY","startY","getY","distance","loopScroll","getHeight","scrollToElem","scrollIntoView","elemHeight","getBoundingClientRect","elemBottom","containerHeight","containerBottom","scrollToCenterOf","setup","newDefaultDuration","newEdgeOffset","intoView","center","moving","docElem","getDocY","scrollY","scrollingElement","innerHeight","clientHeight","offsetTop","createScroller","scrollContainer","noZensmooth","isHistorySupported","isScrollRestorationSupported","scrollRestoration","zenscrollY","targetElem","getElementById","diff","RE_noZensmooth","anchor","historyState","replaceState","webpackContext","webpackContextResolve","__webpack_require__","isNothing","subject","cycle","isNegativeZero","NEGATIVE_INFINITY","formatError","where","column","YAMLException$1","lineEnd","maxLineLength","maxHalfLength","padStart","linesBefore","linesAfter","lineStarts","lineEnds","foundLineNo","lineNoLength","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","represent","representName","multi","styleAliases","compileStyleAliases","currentType","newIndex","previousType","previousIndex","Schema$1","implicit","explicit","type$1","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","scalar","collectType","compileMap","failsafe","_null","canonical","lowercase","uppercase","camelcase","isOctCode","isDecCode","int","hasDigits","sign","octal","decimal","hexadecimal","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","timestamp","year","day","hour","minute","fraction","UTC","setTime","BASE64_MAP","bitlen","tailbits","_hasOwnProperty$3","_toString$2","pairKey","pairHasKey","_toString$1","_hasOwnProperty$2","_hasOwnProperty$1","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","simpleEscapeSequence","charFromCodepoint","simpleEscapeCheck","simpleEscapeMap","State$1","onWarning","legacy","implicitTypes","typeMap","lineIndent","firstTabInLine","documents","generateError","throwError","throwWarning","directiveHandlers","major","minor","checkLineBreaks","tagMap","captureSegment","checkJson","_position","_length","_character","mergeMappings","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLineStart","startPos","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readBlockSequence","nodeIndent","_tag","_anchor","detected","anchorMap","composeNode","readTagProperty","tagHandle","isVerbatim","isNamed","readAnchorProperty","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","typeList","flowIndent","blockIndent","indentStatus","atNewLine","hasContent","following","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readBlockMapping","_lineStart","_pos","terminator","isPair","isExplicitPair","isMapping","readNext","readFlowCollection","captureStart","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockScalar","captureEnd","readSingleQuotedScalar","hexLength","hexResult","readDoubleQuotedScalar","readAlias","withinFlowCollection","hasPendingContent","_lineIndent","_kind","readPlainScalar","readDocument","directiveName","directiveArgs","documentStart","hasDirectives","loadDocuments","nullpos","loader","loadAll","load","_toString","CHAR_BOM","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","encodeHex","State","noArrayIndent","skipInvalid","flowLevel","styleMap","compileStyleMap","sortKeys","noRefs","noCompatMode","condenseFlow","quotingType","forceQuotes","explicitTypes","duplicates","usedDuplicates","indentString","spaces","ind","generateNextLine","isWhitespace","isPrintable","isNsCharOrWhitespace","isPlainSafe","inblock","cIsNsCharOrWhitespace","cIsNsChar","codePointAt","needIndentIndicator","chooseScalarStyle","singleLineOnly","indentPerLevel","testAmbiguousType","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","isPlainSafeLast","writeScalar","iskey","dump","testImplicitResolving","blockHeader","dropEndingNewline","moreIndented","lineRe","nextLF","foldLine","prevMoreIndented","foldString","escapeSeq","indentIndicator","breakRe","writeBlockSequence","writeNode","detectType","isblockseq","tagStr","duplicateIndex","duplicate","objectOrArray","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","writeBlockMapping","writeFlowMapping","writeFlowSequence","getDuplicateReferences","duplicatesIndexes","inspectNode","renamed","Type","Schema","FAILSAFE_SCHEMA","JSON_SCHEMA","CORE_SCHEMA","DEFAULT_SCHEMA","YAMLException","null","safeLoad","safeLoadAll","safeDump","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","nmd","idFn","Store","pluginsOptions","boundSystem","_getSystem","configureStore","buildSystem","register","rebuild","pluginSystem","combinePlugins","systemExtend","needAnotherRebuild","callAfterLoad","buildReducer","getRootInjects","getWrappedAndBoundActions","getWrappedAndBoundSelectors","getStateThunks","getFn","rebuildReducer","_getConfigs","reducerSystem","states","reducerObj","redFn","wrapWithTryCatch","makeReducer","combineReducers","upName","actionHolders","actionName","actionGroups","getBoundActions","actionGroupName","wrappers","newAction","selectorGroups","getBoundSelectors","selectorGroupName","selectorName","wrappedSelector","getSelectors","getNestedState","getActions","creator","pluginOptions","pluginLoadType","hasLoaded","calledSomething","wrapperFn","namespaceObj","logErrors","rootReducer","initialState","middlwares","composeEnhancers","createStoreWithMiddleware","resolvedSubtree","getResolvedSubtree","tryItOutEnabled","executeInProgress","docExpansion","displayOperationId","displayRequestDuration","supportedSubmitMethods","isDeepLinkingEnabled","jumpToKey","unresolvedOp","Operation","operationProps","summary","originalOperationId","toggleShown","onTryoutClick","onCancelClick","onExecute","layoutName","Layout","getLayout","AuthorizationPopup","Auths","AuthorizeBtn","showPopup","AuthorizeBtnContainer","authorizableDefinitions","AuthorizeOperationBtn","auths","Oauth2","Button","authorizedAuth","nonOauthDefinitions","oauthDefinitions","onSubmit","submitAuth","logoutClick","authEl","ApiKeyAuth","BasicAuth","showValue","ExamplesSelect","isSyntheticChange","selectedOptions","_onSelect","currentExampleKey","currentExamplePerProps","firstExamplesKey","firstExample","firstExampleKey","isValueModified","isModifiedValueAvailable","showLabels","_onDomSelect","exampleName","stringifyUnlessList","currentNamespace","_setStateForNamespace","newStateForNamespace","_getCurrentExampleValue","exampleKey","_getValueForExample","_getStateForCurrentNamespace","lastUserEditedValue","valueFromExample","_setStateForCurrentNamespace","isModifiedValueSelected","lastDownstreamValue","valueFromCurrentExample","examplesMatchingNewValue","_onExamplesSelect","authConfigs","oauth2RedirectUrl","scopesArray","scopeSeparator","realm","usePkceWithAuthorizationCodeGrant","codeChallenge","useBasicAuthenticationWithAccessCodeGrant","errCb","oauth2Authorize","dataset","newScopes","appName","InitializedInput","oidcUrl","AUTH_FLOW_IMPLICIT","AUTH_FLOW_PASSWORD","AUTH_FLOW_ACCESS_CODE","AUTH_FLOW_APPLICATION","isPkceCodeGrant","flowToDisplay","tablet","desktop","onInputChange","selectScopes","onScopeChange","Clear","Duration","LiveResponse","showMutatedRequest","requestSnippetsEnabled","curlRequest","notDocumented","headersKeys","ResponseBody","returnObject","joinedHeaders","hasHeaders","Curl","SWAGGER2_OPERATION_METHODS","OAS3_OPERATION_METHODS","Operations","validMethods","renderOperationTag","isAbsoluteUrl","buildBaseUrl","safeBuildUrl","tagExternalDocsUrl","Collapse","DeepLink","Link","tagDescription","tagExternalDocsDescription","rawTagExternalDocsUrl","showTag","focusable","isOpened","externalDocsUrl","extensions","Responses","Parameters","Execute","Schemes","OperationExt","OperationSummary","showExtensions","onChangeKey","currentScheme","tryItOutResponse","resolvedSummary","OperationSummaryMethod","OperationSummaryPath","hasSecurity","securityIsOptional","allowAnonymous","applicableDefinitions","pathParts","OperationExtRow","xNormalizedValue","fileName","downloadable","canCopy","saveAs","controlsAcceptHeader","defaultCode","ContentType","acceptControllingResponse","regionId","createHtmlReadyId","controlId","ariaControls","ariaLabel","contentTypes","onChangeProducesWrapper","role","isDefault","onContentTypeChange","onResponseContentTypeChange","activeContentType","specPathWithPossibleSchema","ResponseExtension","activeMediaType","examplesForMediaType","oas3SchemaForContentType","sampleSchema","shouldOverrideSchemaExample","sampleGenConfig","targetExamplesKey","getTargetExamplesKey","getMediaTypeExample","targetExample","oldOASMediaTypeExample","sampleResponse","getExampleComponent","_onContentTypeChange","omitValue","parsedContent","prevContent","updateParsedContent","bodyEl","downloadName","disposition","formatXml","controls","tab","parametersVisible","callbackVisible","ParameterRow","TryItOutButton","groupedParametersArr","toggleTab","onResetClick","rawParam","onChangeConsumes","onChangeConsumesWrapper","onChangeMediaType","lastValue","usableValue","ParameterIncludeEmptyDefaultProps","onCheckboxChange","getParamKey","paramWithMeta","parameterMediaType","generatedSampleValue","onChangeWrapper","setDefaultValue","paramItems","paramEnum","paramDefaultValue","paramExample","ParamBody","bodyParam","consumesValue","itemType","isFormData","isFormDataSupported","isDisplayParamEnum","_onExampleSelect","oas3ValidateBeforeExecuteSuccess","missingKey","isPass","handleValidationResultPass","handleValidationResultFail","paramsResult","handleValidateParameters","requestBodyResult","handleValidateRequestBody","handleValidationResult","Property","schemaExample","propVal","propClass","Errors","editorActions","jumpToLine","allErrorsToDisplay","isVisible","sortedJSErrors","animated","ThrownErrorItem","SpecErrorItem","errorLine","toTitleCase","locationMessage","xclass","Container","fullscreen","full","containerClass","DEVICES","hide","keepContents","mobile","large","classesAr","device","deviceClass","Select","option","allowedValues","NoMargin","renderNotAnimated","Overview","setTagShown","_setTagShown","showTagId","showOpIdPrefix","showOpId","_onClick","otherProps","InfoBasePath","Contact","License","InfoUrl","Info","termsOfServiceUrl","contact","externalDocsDescription","InfoContainer","Footer","FilterContainer","isLoading","isFailed","placeholder","onFilterChange","isJson","isEditBox","_onChange","updateValues","defaultProp","handleOnChange","toggleIsEditBox","curl","curlBlock","SchemesContainer","ModelCollapse","onToggle","modelName","expanded","toggleCollapsed","collapsedContent","hideSelfOnExpand","activeTab","defaultModelRendering","defaultModelExpandDepth","ModelWrapper","exampleTabId","examplePanelId","modelTabId","modelPanelId","inactive","tabIndex","Models","getSchemaBasePath","defaultModelsExpandDepth","specPathBase","showModels","onLoadModels","schemaValue","rawSchemaValue","rawSchema","onLoadModel","getCollapsedContent","handleToggle","requiredProperties","infoProperties","JumpToPathSection","titleEl","isDeprecated","normalizedValue","Primitive","enumArray","EnumModel","showReset","VersionPragmaFilter","bypass","alsoShow","xmlns","xmlnsXlink","viewBox","BaseLayout","SvgAssets","isSpecEmpty","loadingMessage","lastErr","lastErrMsg","hasServers","hasSchemes","hasSecurityDefinitions","JsonSchemaDefaultProps","keyName","getComponentSilently","Comp","schemaIn","onEnumChange","JsonSchema_array","itemVal","valueOrEmptyList","ArrayItemsComponent","arrayErrors","needsRemoveError","shouldRenderValue","schemaItemsEnum","schemaItemsType","schemaItemsFormat","schemaItemsSchema","isArrayItemText","isArrayItemFile","itemErrors","JsonSchemaArrayItemFile","onItemChange","JsonSchemaArrayItemText","removeItem","addItem","onFileChange","JsonSchema_boolean","booleanValue","stringifyObjectErrors","stringError","currentError","JsonSchema_object","coreComponents","authorizationPopup","authorizeBtn","authorizeOperationBtn","authError","oauth2","apiKeyAuth","basicAuth","liveResponse","highlightCode","responseBody","parameterRow","overview","footer","modelExample","formComponents","LayoutUtils","jsonSchemaComponents","JsonSchemaComponents","logs","samples","swaggerJs","deepLinkingPlugin","safeRender","PresetApis","BasePreset","OAS3Plugin","GIT_DIRTY","buildInfo","GIT_COMMIT","PACKAGE_VERSION","BUILD_TIME","SwaggerUI","gitRevision","gitDirty","buildTimestamp","dom_id","defaultExpanded","queryConfigEnabled","ApisPreset","syntaxHighlight","activated","theme","queryConfig","constructorConfig","storeConfigs","System","downloadSpec","fetchedConfig","localConfig","mergedConfig","setConfigs","configsActions","querySelector","configUrl","loadRemoteConfig","apis","AllPlugins"],"sourceRoot":""} \ No newline at end of file diff --git a/swagger/swagger-ui/swagger-ui-es-bundle-core.js.map b/swagger/swagger-ui/swagger-ui-es-bundle-core.js.map deleted file mode 100644 index 7af58508..00000000 --- a/swagger/swagger-ui/swagger-ui-es-bundle-core.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"swagger-ui-es-bundle-core.js","mappings":"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","sources":["webpack://swagger-ui/./node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js","webpack://swagger-ui/external module \"react-immutable-pure-component\"","webpack://swagger-ui/./src/core/components/model.jsx","webpack://swagger-ui/./src/core/components/online-validator-badge.jsx","webpack://swagger-ui/external module \"remarkable/linkify\"","webpack://swagger-ui/external module \"dompurify\"","webpack://swagger-ui/./src/core/components/providers/markdown.jsx","webpack://swagger-ui/./src/core/plugins/all.js","webpack://swagger-ui/./src/core/plugins/auth/actions.js","webpack://swagger-ui/./src/core/plugins/auth/index.js","webpack://swagger-ui/./src/core/plugins/auth/reducers.js","webpack://swagger-ui/./src/core/plugins/auth/selectors.js","webpack://swagger-ui/./src/core/plugins/auth/spec-wrap-actions.js","webpack://swagger-ui/./src/core/plugins/configs/actions.js","webpack://swagger-ui/./src/core/plugins/configs/helpers.js","webpack://swagger-ui/./src/core/plugins/configs/index.js","webpack://swagger-ui/./src/core/plugins/configs/reducers.js","webpack://swagger-ui/./src/core/plugins/configs/selectors.js","webpack://swagger-ui/./src/core/plugins/configs/spec-actions.js","webpack://swagger-ui/./src/core/plugins/deep-linking/helpers.js","webpack://swagger-ui/./src/core/plugins/deep-linking/index.js","webpack://swagger-ui/external module \"zenscroll\"","webpack://swagger-ui/./src/core/plugins/deep-linking/layout.js","webpack://swagger-ui/./src/core/plugins/deep-linking/operation-tag-wrapper.jsx","webpack://swagger-ui/./src/core/plugins/deep-linking/operation-wrapper.jsx","webpack://swagger-ui/./src/core/plugins/download-url.js","webpack://swagger-ui/./src/core/plugins/err/actions.js","webpack://swagger-ui/external module \"lodash/reduce\"","webpack://swagger-ui/./src/core/plugins/err/error-transformers/hook.js","webpack://swagger-ui/./src/core/plugins/err/error-transformers/transformers/not-of-type.js","webpack://swagger-ui/./src/core/plugins/err/error-transformers/transformers/parameter-oneof.js","webpack://swagger-ui/./src/core/plugins/err/index.js","webpack://swagger-ui/./src/core/plugins/err/reducers.js","webpack://swagger-ui/./src/core/plugins/err/selectors.js","webpack://swagger-ui/./src/core/plugins/filter/index.js","webpack://swagger-ui/./src/core/plugins/filter/opsFilter.js","webpack://swagger-ui/./src/core/plugins/layout/actions.js","webpack://swagger-ui/./src/core/plugins/layout/index.js","webpack://swagger-ui/./src/core/plugins/layout/reducers.js","webpack://swagger-ui/./src/core/plugins/layout/selectors.js","webpack://swagger-ui/./src/core/plugins/layout/spec-extensions/wrap-selector.js","webpack://swagger-ui/./src/core/plugins/logs/index.js","webpack://swagger-ui/./src/core/plugins/oas3/actions.js","webpack://swagger-ui/./src/core/plugins/oas3/auth-extensions/wrap-selectors.js","webpack://swagger-ui/./src/core/plugins/oas3/components/callbacks.jsx","webpack://swagger-ui/./src/core/plugins/oas3/components/http-auth.jsx","webpack://swagger-ui/./src/core/plugins/oas3/components/index.js","webpack://swagger-ui/./src/core/plugins/oas3/components/operation-link.jsx","webpack://swagger-ui/./src/core/plugins/oas3/components/operation-servers.jsx","webpack://swagger-ui/./src/core/plugins/oas3/components/request-body-editor.jsx","webpack://swagger-ui/./src/core/plugins/oas3/components/request-body.jsx","webpack://swagger-ui/./src/core/plugins/oas3/components/servers-container.jsx","webpack://swagger-ui/./src/core/plugins/oas3/components/servers.jsx","webpack://swagger-ui/./src/core/plugins/oas3/helpers.jsx","webpack://swagger-ui/./src/core/plugins/oas3/index.js","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/toArray\"","webpack://swagger-ui/./src/core/plugins/oas3/reducers.js","webpack://swagger-ui/./src/core/plugins/oas3/selectors.js","webpack://swagger-ui/./src/core/plugins/oas3/spec-extensions/selectors.js","webpack://swagger-ui/./src/core/plugins/oas3/spec-extensions/wrap-selectors.js","webpack://swagger-ui/./src/core/plugins/oas3/wrap-components/auth-item.jsx","webpack://swagger-ui/./src/core/plugins/oas3/wrap-components/index.js","webpack://swagger-ui/./src/core/plugins/oas3/wrap-components/json-schema-string.jsx","webpack://swagger-ui/./src/core/plugins/oas3/wrap-components/markdown.jsx","webpack://swagger-ui/./src/core/plugins/oas3/wrap-components/model.jsx","webpack://swagger-ui/./src/core/plugins/oas3/wrap-components/online-validator-badge.js","webpack://swagger-ui/./src/core/plugins/oas3/wrap-components/version-stamp.jsx","webpack://swagger-ui/./src/core/plugins/on-complete/index.js","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/repeat\"","webpack://swagger-ui/./src/core/plugins/request-snippets/fn.js","webpack://swagger-ui/./src/core/plugins/request-snippets/index.js","webpack://swagger-ui/./src/core/plugins/request-snippets/request-snippets.jsx","webpack://swagger-ui/./src/core/plugins/request-snippets/selectors.js","webpack://swagger-ui/./src/core/plugins/safe-render/components/error-boundary.jsx","webpack://swagger-ui/./src/core/plugins/safe-render/components/fallback.jsx","webpack://swagger-ui/./src/core/plugins/safe-render/fn.jsx","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/fill\"","webpack://swagger-ui/external module \"lodash/zipObject\"","webpack://swagger-ui/./src/core/plugins/safe-render/index.js","webpack://swagger-ui/external module \"randexp\"","webpack://swagger-ui/external module \"lodash/isEmpty\"","webpack://swagger-ui/./src/core/plugins/samples/fn.js","webpack://swagger-ui/./src/core/plugins/samples/index.js","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/asyncToGenerator\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/regenerator\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/promise\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/date/now\"","webpack://swagger-ui/external module \"lodash/isString\"","webpack://swagger-ui/external module \"lodash/debounce\"","webpack://swagger-ui/external module \"lodash/set\"","webpack://swagger-ui/./src/core/plugins/spec/actions.js","webpack://swagger-ui/./src/core/plugins/spec/index.js","webpack://swagger-ui/./src/core/plugins/spec/reducers.js","webpack://swagger-ui/./src/core/plugins/spec/selectors.js","webpack://swagger-ui/./src/core/plugins/spec/wrap-actions.js","webpack://swagger-ui/./src/core/plugins/swagger-js/configs-wrap-actions.js","webpack://swagger-ui/external module \"swagger-client/es/resolver\"","webpack://swagger-ui/external module \"swagger-client/es/execute\"","webpack://swagger-ui/external module \"swagger-client/es/http\"","webpack://swagger-ui/external module \"swagger-client/es/subtree-resolver\"","webpack://swagger-ui/./src/core/plugins/swagger-js/index.js","webpack://swagger-ui/./src/core/plugins/util/index.js","webpack://swagger-ui/./src/core/plugins/view/fn.js","webpack://swagger-ui/./src/core/plugins/view/index.js","webpack://swagger-ui/external module \"react-dom\"","webpack://swagger-ui/external module \"react-redux\"","webpack://swagger-ui/external module \"lodash/omit\"","webpack://swagger-ui/external module \"lodash/identity\"","webpack://swagger-ui/./src/core/plugins/view/root-injects.jsx","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/light\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/languages/hljs/javascript\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/languages/hljs/json\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/languages/hljs/xml\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/languages/hljs/bash\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/languages/hljs/yaml\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/languages/hljs/http\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/languages/hljs/powershell\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/styles/hljs/agate\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/styles/hljs/arta\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/styles/hljs/monokai\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/styles/hljs/nord\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/styles/hljs/obsidian\"","webpack://swagger-ui/external module \"react-syntax-highlighter/dist/esm/styles/hljs/tomorrow-night\"","webpack://swagger-ui/./src/core/syntax-highlighting.js","webpack://swagger-ui/external module \"@braintree/sanitize-url\"","webpack://swagger-ui/external module \"lodash/camelCase\"","webpack://swagger-ui/external module \"lodash/upperFirst\"","webpack://swagger-ui/external module \"lodash/find\"","webpack://swagger-ui/external module \"lodash/some\"","webpack://swagger-ui/external module \"lodash/eq\"","webpack://swagger-ui/external module \"css.escape\"","webpack://swagger-ui/./src/core/utils.js","webpack://swagger-ui/./src/core/utils/jsonParse.js","webpack://swagger-ui/./src/core/window.js","webpack://swagger-ui/./src/helpers/get-parameter-schema.js","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/get\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/getPrototypeOf\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/wrapNativeSuper\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/find-index\"","webpack://swagger-ui/./src/helpers/memoizeN.js","webpack://swagger-ui/./node_modules/buffer/index.js","webpack://swagger-ui/./node_modules/core-js-pure/es/object/define-property.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/a-callable.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/an-object.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/classof-raw.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/create-non-enumerable-property.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/create-property-descriptor.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/descriptors.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/document-create-element.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/engine-user-agent.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/engine-v8-version.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/export.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/fails.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/function-apply.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/function-bind-context.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/function-bind-native.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/function-call.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/function-uncurry-this.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/get-built-in.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/get-method.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/global.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/has-own-property.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/ie8-dom-define.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/indexed-object.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/is-callable.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/is-forced.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/is-object.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/is-pure.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/is-symbol.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/native-symbol.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/object-define-property.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/object-is-prototype-of.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/object-property-is-enumerable.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/ordinary-to-primitive.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/path.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/require-object-coercible.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/set-global.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/shared-store.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/shared.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/to-indexed-object.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/to-object.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/to-primitive.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/to-property-key.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/try-to-string.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/uid.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/use-symbol-as-uid.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/v8-prototype-define-bug.js","webpack://swagger-ui/./node_modules/core-js-pure/internals/well-known-symbol.js","webpack://swagger-ui/./node_modules/core-js-pure/modules/es.object.define-property.js","webpack://swagger-ui/./node_modules/core-js-pure/stable/object/define-property.js","webpack://swagger-ui/./node_modules/deep-extend/lib/deep-extend.js","webpack://swagger-ui/./node_modules/events/events.js","webpack://swagger-ui/./node_modules/inherits/inherits_browser.js","webpack://swagger-ui/./node_modules/process/browser.js","webpack://swagger-ui/./node_modules/randombytes/browser.js","webpack://swagger-ui/./node_modules/readable-stream/errors-browser.js","webpack://swagger-ui/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://swagger-ui/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://swagger-ui/./node_modules/readable-stream/lib/_stream_readable.js","webpack://swagger-ui/./node_modules/readable-stream/lib/_stream_transform.js","webpack://swagger-ui/./node_modules/readable-stream/lib/_stream_writable.js","webpack://swagger-ui/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://swagger-ui/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://swagger-ui/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://swagger-ui/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://swagger-ui/./node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://swagger-ui/./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://swagger-ui/./node_modules/readable-stream/lib/internal/streams/state.js","webpack://swagger-ui/./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://swagger-ui/./node_modules/sha.js/hash.js","webpack://swagger-ui/./node_modules/sha.js/index.js","webpack://swagger-ui/./node_modules/sha.js/sha.js","webpack://swagger-ui/./node_modules/sha.js/sha1.js","webpack://swagger-ui/./node_modules/sha.js/sha224.js","webpack://swagger-ui/./node_modules/sha.js/sha256.js","webpack://swagger-ui/./node_modules/sha.js/sha384.js","webpack://swagger-ui/./node_modules/sha.js/sha512.js","webpack://swagger-ui/./node_modules/stream-browserify/index.js","webpack://swagger-ui/./node_modules/string_decoder/lib/string_decoder.js","webpack://swagger-ui/./node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack://swagger-ui/./node_modules/util-deprecate/browser.js","webpack://swagger-ui/./node_modules/xml/lib/escapeForXML.js","webpack://swagger-ui/./node_modules/xml/lib/xml.js","webpack://swagger-ui//home/ubuntu/workspace/oss-swagger-ui-release/src/core/plugins|sync|/\\.jsx","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/array/from\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/array/is-array\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/bind\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/concat\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/entries\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/every\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/filter\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/find\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/for-each\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/includes\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/index-of\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/keys\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/map\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/reduce\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/slice\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/some\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/sort\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/starts-with\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/trim\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/json/stringify\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/map\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/object/assign\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/object/keys\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/object/values\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/set-timeout\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/url\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/assertThisInitialized\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/classCallCheck\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/createClass\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/createForOfIteratorHelper\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/createSuper\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/defineProperty\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/extends\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/inherits\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/objectSpread2\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/objectWithoutProperties\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/slicedToArray\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/toConsumableArray\"","webpack://swagger-ui/external module \"@babel/runtime-corejs3/helpers/typeof\"","webpack://swagger-ui/external module \"base64-js\"","webpack://swagger-ui/external module \"classnames\"","webpack://swagger-ui/external module \"ieee754\"","webpack://swagger-ui/external module \"immutable\"","webpack://swagger-ui/external module \"js-yaml\"","webpack://swagger-ui/external module \"lodash/get\"","webpack://swagger-ui/external module \"lodash/isFunction\"","webpack://swagger-ui/external module \"lodash/memoize\"","webpack://swagger-ui/external module \"prop-types\"","webpack://swagger-ui/external module \"react\"","webpack://swagger-ui/external module \"react-copy-to-clipboard\"","webpack://swagger-ui/external module \"react-immutable-proptypes\"","webpack://swagger-ui/external module \"redux\"","webpack://swagger-ui/external module \"remarkable\"","webpack://swagger-ui/external module \"reselect\"","webpack://swagger-ui/external module \"serialize-error\"","webpack://swagger-ui/external module \"swagger-client/es/helpers\"","webpack://swagger-ui/external module \"url-parse\"","webpack://swagger-ui/webpack/bootstrap","webpack://swagger-ui/webpack/runtime/compat get default export","webpack://swagger-ui/webpack/runtime/define property getters","webpack://swagger-ui/webpack/runtime/global","webpack://swagger-ui/webpack/runtime/hasOwnProperty shorthand","webpack://swagger-ui/webpack/runtime/make namespace object","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/last-index-of\"","webpack://swagger-ui/external module \"redux-immutable\"","webpack://swagger-ui/external module \"lodash/merge\"","webpack://swagger-ui/./src/core/system.js","webpack://swagger-ui/./src/core/containers/OperationContainer.jsx","webpack://swagger-ui/./src/core/components/app.jsx","webpack://swagger-ui/./src/core/components/auth/authorization-popup.jsx","webpack://swagger-ui/./src/core/components/auth/authorize-btn.jsx","webpack://swagger-ui/./src/core/containers/authorize-btn.jsx","webpack://swagger-ui/./src/core/components/auth/authorize-operation-btn.jsx","webpack://swagger-ui/./src/core/components/auth/auths.jsx","webpack://swagger-ui/./src/core/components/auth/auth-item.jsx","webpack://swagger-ui/./src/core/components/auth/error.jsx","webpack://swagger-ui/./src/core/components/auth/api-key-auth.jsx","webpack://swagger-ui/./src/core/components/auth/basic-auth.jsx","webpack://swagger-ui/./src/core/components/example.jsx","webpack://swagger-ui/./src/core/components/examples-select.jsx","webpack://swagger-ui/./src/core/components/examples-select-value-retainer.jsx","webpack://swagger-ui/./src/core/components/auth/oauth2.jsx","webpack://swagger-ui/./src/core/oauth2-authorize.js","webpack://swagger-ui/./src/core/components/clear.jsx","webpack://swagger-ui/./src/core/components/live-response.jsx","webpack://swagger-ui/./src/core/components/operations.jsx","webpack://swagger-ui/./src/core/utils/url.js","webpack://swagger-ui/./src/core/components/operation-tag.jsx","webpack://swagger-ui/./src/core/components/operation.jsx","webpack://swagger-ui/external module \"lodash/toString\"","webpack://swagger-ui/./src/core/components/operation-summary.jsx","webpack://swagger-ui/./src/core/components/operation-summary-method.jsx","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/splice\"","webpack://swagger-ui/./src/core/components/operation-summary-path.jsx","webpack://swagger-ui/./src/core/components/operation-extensions.jsx","webpack://swagger-ui/./src/core/components/operation-extension-row.jsx","webpack://swagger-ui/external module \"js-file-download\"","webpack://swagger-ui/./src/core/components/highlight-code.jsx","webpack://swagger-ui/./src/core/components/responses.jsx","webpack://swagger-ui/./src/helpers/create-html-ready-id.js","webpack://swagger-ui/external module \"@babel/runtime-corejs3/core-js-stable/instance/values\"","webpack://swagger-ui/./src/core/components/response.jsx","webpack://swagger-ui/./src/core/components/response-extension.jsx","webpack://swagger-ui/external module \"xml-but-prettier\"","webpack://swagger-ui/external module \"lodash/toLower\"","webpack://swagger-ui/./src/core/components/response-body.jsx","webpack://swagger-ui/./src/core/components/parameters/parameters.jsx","webpack://swagger-ui/./src/core/components/parameter-extension.jsx","webpack://swagger-ui/./src/core/components/parameter-include-empty.jsx","webpack://swagger-ui/./src/core/components/parameter-row.jsx","webpack://swagger-ui/./src/core/components/execute.jsx","webpack://swagger-ui/./src/core/components/headers.jsx","webpack://swagger-ui/./src/core/components/errors.jsx","webpack://swagger-ui/./src/core/components/content-type.jsx","webpack://swagger-ui/./src/core/components/layout-utils.jsx","webpack://swagger-ui/./src/core/components/overview.jsx","webpack://swagger-ui/./src/core/components/initialized-input.jsx","webpack://swagger-ui/./src/core/components/info.jsx","webpack://swagger-ui/./src/core/containers/info.jsx","webpack://swagger-ui/./src/core/components/jump-to-path.jsx","webpack://swagger-ui/./src/core/components/footer.jsx","webpack://swagger-ui/./src/core/containers/filter.jsx","webpack://swagger-ui/./src/core/components/param-body.jsx","webpack://swagger-ui/./src/core/components/curl.jsx","webpack://swagger-ui/./src/core/components/schemes.jsx","webpack://swagger-ui/./src/core/containers/schemes.jsx","webpack://swagger-ui/./src/core/components/model-collapse.jsx","webpack://swagger-ui/./src/core/components/model-example.jsx","webpack://swagger-ui/./src/core/components/model-wrapper.jsx","webpack://swagger-ui/./src/core/components/models.jsx","webpack://swagger-ui/./src/core/components/enum-model.jsx","webpack://swagger-ui/./src/core/components/object-model.jsx","webpack://swagger-ui/./src/core/components/array-model.jsx","webpack://swagger-ui/./src/core/components/primitive-model.jsx","webpack://swagger-ui/./src/core/components/property.jsx","webpack://swagger-ui/./src/core/components/try-it-out-button.jsx","webpack://swagger-ui/./src/core/components/version-pragma-filter.jsx","webpack://swagger-ui/./src/core/components/version-stamp.jsx","webpack://swagger-ui/./src/core/components/deep-link.jsx","webpack://swagger-ui/./src/core/components/svg-assets.jsx","webpack://swagger-ui/./src/core/components/layouts/base.jsx","webpack://swagger-ui/external module \"react-debounce-input\"","webpack://swagger-ui/./src/core/json-schema-components.jsx","webpack://swagger-ui/./src/core/presets/base.js","webpack://swagger-ui/./src/core/presets/apis.js","webpack://swagger-ui/./src/core/index.js","webpack://swagger-ui/./src/index.js"],"sourcesContent":["module.exports = require(\"core-js-pure/stable/object/define-property\");","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_immutable_pure_component_cbcfaebd__[\"default\"] });","import React from \"react\"\nimport ImmutablePureComponent from \"react-immutable-pure-component\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport PropTypes from \"prop-types\"\n\nexport default class Model extends ImmutablePureComponent {\n static propTypes = {\n schema: ImPropTypes.map.isRequired,\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired,\n specSelectors: PropTypes.object.isRequired,\n name: PropTypes.string,\n displayName: PropTypes.string,\n isRef: PropTypes.bool,\n required: PropTypes.bool,\n expandDepth: PropTypes.number,\n depth: PropTypes.number,\n specPath: ImPropTypes.list.isRequired,\n includeReadOnly: PropTypes.bool,\n includeWriteOnly: PropTypes.bool,\n }\n\n getModelName =( ref )=> {\n if ( ref.indexOf(\"#/definitions/\") !== -1 ) {\n return ref.replace(/^.*#\\/definitions\\//, \"\")\n }\n if ( ref.indexOf(\"#/components/schemas/\") !== -1 ) {\n return ref.replace(/^.*#\\/components\\/schemas\\//, \"\")\n }\n }\n\n getRefSchema =( model )=> {\n let { specSelectors } = this.props\n\n return specSelectors.findDefinition(model)\n }\n\n render () {\n let { getComponent, getConfigs, specSelectors, schema, required, name, isRef, specPath, displayName,\n includeReadOnly, includeWriteOnly} = this.props\n const ObjectModel = getComponent(\"ObjectModel\")\n const ArrayModel = getComponent(\"ArrayModel\")\n const PrimitiveModel = getComponent(\"PrimitiveModel\")\n let type = \"object\"\n let $$ref = schema && schema.get(\"$$ref\")\n\n // If we weren't passed a `name` but have a ref, grab the name from the ref\n if ( !name && $$ref ) {\n name = this.getModelName( $$ref )\n }\n // If we weren't passed a `schema` but have a ref, grab the schema from the ref\n if ( !schema && $$ref ) {\n schema = this.getRefSchema( name )\n }\n\n if(!schema) {\n return \n { displayName || name }\n \n \n }\n\n const deprecated = specSelectors.isOAS3() && schema.get(\"deprecated\")\n isRef = isRef !== undefined ? isRef : !!$$ref\n type = schema && schema.get(\"type\") || type\n\n switch(type) {\n case \"object\":\n return \n case \"array\":\n return \n case \"string\":\n case \"number\":\n case \"integer\":\n case \"boolean\":\n default:\n return \n }\n }\n}\n","import React from \"react\"\nimport URL from \"url-parse\"\n\nimport PropTypes from \"prop-types\"\nimport { sanitizeUrl, requiresValidationURL } from \"core/utils\"\nimport win from \"core/window\"\n\nexport default class OnlineValidatorBadge extends React.Component {\n static propTypes = {\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired,\n specSelectors: PropTypes.object.isRequired\n }\n\n constructor(props, context) {\n super(props, context)\n let { getConfigs } = props\n let { validatorUrl } = getConfigs()\n this.state = {\n url: this.getDefinitionUrl(),\n validatorUrl: validatorUrl === undefined ? \"https://validator.swagger.io/validator\" : validatorUrl\n }\n }\n\n getDefinitionUrl = () => {\n // TODO: test this behavior by stubbing `window.location` in an Enzyme/JSDom env\n let { specSelectors } = this.props\n\n const urlObject = new URL(specSelectors.url(), win.location)\n return urlObject.toString()\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n let { getConfigs } = nextProps\n let { validatorUrl } = getConfigs()\n\n this.setState({\n url: this.getDefinitionUrl(),\n validatorUrl: validatorUrl === undefined ? \"https://validator.swagger.io/validator\" : validatorUrl\n })\n }\n\n render() {\n let { getConfigs } = this.props\n let { spec } = getConfigs()\n\n let sanitizedValidatorUrl = sanitizeUrl(this.state.validatorUrl)\n\n if ( typeof spec === \"object\" && Object.keys(spec).length) return null\n\n if (!this.state.url || !requiresValidationURL(this.state.validatorUrl)\n || !requiresValidationURL(this.state.url)) {\n return null\n }\n\n return (\n \n \n \n )\n }\n}\n\n\nclass ValidatorImage extends React.Component {\n static propTypes = {\n src: PropTypes.string,\n alt: PropTypes.string\n }\n\n constructor(props) {\n super(props)\n this.state = {\n loaded: false,\n error: false\n }\n }\n\n componentDidMount() {\n const img = new Image()\n img.onload = () => {\n this.setState({\n loaded: true\n })\n }\n img.onerror = () => {\n this.setState({\n error: true\n })\n }\n img.src = this.props.src\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.src !== this.props.src) {\n const img = new Image()\n img.onload = () => {\n this.setState({\n loaded: true\n })\n }\n img.onerror = () => {\n this.setState({\n error: true\n })\n }\n img.src = nextProps.src\n }\n }\n\n render() {\n if (this.state.error) {\n return {\"Error\"}\n } else if (!this.state.loaded) {\n return null\n }\n return {this.props.alt}\n }\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"linkify\"]: () => __WEBPACK_EXTERNAL_MODULE_remarkable_linkify_34829ba6__.linkify });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_dompurify__[\"default\"] });","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { Remarkable } from \"remarkable\"\nimport { linkify } from \"remarkable/linkify\"\nimport DomPurify from \"dompurify\"\nimport cx from \"classnames\"\n\nif (DomPurify.addHook) {\n DomPurify.addHook(\"beforeSanitizeElements\", function (current, ) {\n // Attach safe `rel` values to all elements that contain an `href`,\n // i.e. all anchors that are links.\n // We _could_ just look for elements that have a non-self target,\n // but applying it more broadly shouldn't hurt anything, and is safer.\n if (current.href) {\n current.setAttribute(\"rel\", \"noopener noreferrer\")\n }\n return current\n })\n}\n\nfunction Markdown({ source, className = \"\", getConfigs }) {\n if (typeof source !== \"string\") {\n return null\n }\n\n const md = new Remarkable({\n html: true,\n typographer: true,\n breaks: true,\n linkTarget: \"_blank\"\n }).use(linkify)\n\n md.core.ruler.disable([\"replacements\", \"smartquotes\"])\n\n const { useUnsafeMarkdown } = getConfigs()\n const html = md.render(source)\n const sanitized = sanitizer(html, { useUnsafeMarkdown })\n\n if (!source || !html || !sanitized) {\n return null\n }\n\n return (\n
\n )\n}\n\nMarkdown.propTypes = {\n source: PropTypes.string.isRequired,\n className: PropTypes.string,\n getConfigs: PropTypes.func,\n}\n\nMarkdown.defaultProps = {\n getConfigs: () => ({ useUnsafeMarkdown: false }),\n}\n\nexport default Markdown\n\nexport function sanitizer(str, { useUnsafeMarkdown = false } = {}) {\n const ALLOW_DATA_ATTR = useUnsafeMarkdown\n const FORBID_ATTR = useUnsafeMarkdown ? [] : [\"style\", \"class\"]\n\n if (useUnsafeMarkdown && !sanitizer.hasWarnedAboutDeprecation) {\n console.warn(`useUnsafeMarkdown display configuration parameter is deprecated since >3.26.0 and will be removed in v4.0.0.`)\n sanitizer.hasWarnedAboutDeprecation = true\n }\n\n return DomPurify.sanitize(str, {\n ADD_ATTR: [\"target\"],\n FORBID_TAGS: [\"style\", \"form\"],\n ALLOW_DATA_ATTR,\n FORBID_ATTR,\n })\n}\nsanitizer.hasWarnedAboutDeprecation = false\n","import { pascalCaseFilename } from \"core/utils\"\nimport SafeRender from \"core/plugins/safe-render\"\n\nconst request = require.context(\".\", true, /\\.jsx?$/)\n\nconst allPlugins = {}\n\nexport default allPlugins\n\nrequest.keys().forEach( function( key ){\n if( key === \"./index.js\" ) {\n return\n }\n\n // if( key.slice(2).indexOf(\"/\") > -1) {\n // // skip files in subdirs\n // return\n // }\n\n let mod = request(key)\n allPlugins[pascalCaseFilename(key)] = mod.default ? mod.default : mod\n})\n\nallPlugins.SafeRender = SafeRender\n","import parseUrl from \"url-parse\"\nimport win from \"core/window\"\nimport { btoa, buildFormData } from \"core/utils\"\n\nexport const SHOW_AUTH_POPUP = \"show_popup\"\nexport const AUTHORIZE = \"authorize\"\nexport const LOGOUT = \"logout\"\nexport const PRE_AUTHORIZE_OAUTH2 = \"pre_authorize_oauth2\"\nexport const AUTHORIZE_OAUTH2 = \"authorize_oauth2\"\nexport const VALIDATE = \"validate\"\nexport const CONFIGURE_AUTH = \"configure_auth\"\nexport const RESTORE_AUTHORIZATION = \"restore_authorization\"\n\nconst scopeSeparator = \" \"\n\nexport function showDefinitions(payload) {\n return {\n type: SHOW_AUTH_POPUP,\n payload: payload\n }\n}\n\nexport function authorize(payload) {\n return {\n type: AUTHORIZE,\n payload: payload\n }\n}\n\nexport const authorizeWithPersistOption = (payload) => ( { authActions } ) => {\n authActions.authorize(payload)\n authActions.persistAuthorizationIfNeeded()\n}\n\nexport function logout(payload) {\n return {\n type: LOGOUT,\n payload: payload\n }\n}\n\nexport const logoutWithPersistOption = (payload) => ( { authActions } ) => {\n authActions.logout(payload)\n authActions.persistAuthorizationIfNeeded()\n}\n\nexport const preAuthorizeImplicit = (payload) => ( { authActions, errActions } ) => {\n let { auth , token, isValid } = payload\n let { schema, name } = auth\n let flow = schema.get(\"flow\")\n\n // remove oauth2 property from window after redirect from authentication\n delete win.swaggerUIRedirectOauth2\n\n if ( flow !== \"accessCode\" && !isValid ) {\n errActions.newAuthErr( {\n authId: name,\n source: \"auth\",\n level: \"warning\",\n message: \"Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server\"\n })\n }\n\n if ( token.error ) {\n errActions.newAuthErr({\n authId: name,\n source: \"auth\",\n level: \"error\",\n message: JSON.stringify(token)\n })\n return\n }\n\n authActions.authorizeOauth2WithPersistOption({ auth, token })\n}\n\n\nexport function authorizeOauth2(payload) {\n return {\n type: AUTHORIZE_OAUTH2,\n payload: payload\n }\n}\n\n\nexport const authorizeOauth2WithPersistOption = (payload) => ( { authActions } ) => {\n authActions.authorizeOauth2(payload)\n authActions.persistAuthorizationIfNeeded()\n}\n\nexport const authorizePassword = ( auth ) => ( { authActions } ) => {\n let { schema, name, username, password, passwordType, clientId, clientSecret } = auth\n let form = {\n grant_type: \"password\",\n scope: auth.scopes.join(scopeSeparator),\n username,\n password\n }\n let query = {}\n let headers = {}\n\n switch (passwordType) {\n case \"request-body\":\n setClientIdAndSecret(form, clientId, clientSecret)\n break\n\n case \"basic\":\n headers.Authorization = \"Basic \" + btoa(clientId + \":\" + clientSecret)\n break\n default:\n console.warn(`Warning: invalid passwordType ${passwordType} was passed, not including client id and secret`)\n }\n\n return authActions.authorizeRequest({ body: buildFormData(form), url: schema.get(\"tokenUrl\"), name, headers, query, auth})\n}\n\nfunction setClientIdAndSecret(target, clientId, clientSecret) {\n if ( clientId ) {\n Object.assign(target, {client_id: clientId})\n }\n\n if ( clientSecret ) {\n Object.assign(target, {client_secret: clientSecret})\n }\n}\n\nexport const authorizeApplication = ( auth ) => ( { authActions } ) => {\n let { schema, scopes, name, clientId, clientSecret } = auth\n let headers = {\n Authorization: \"Basic \" + btoa(clientId + \":\" + clientSecret)\n }\n let form = {\n grant_type: \"client_credentials\",\n scope: scopes.join(scopeSeparator)\n }\n\n return authActions.authorizeRequest({body: buildFormData(form), name, url: schema.get(\"tokenUrl\"), auth, headers })\n}\n\nexport const authorizeAccessCodeWithFormParams = ( { auth, redirectUrl } ) => ( { authActions } ) => {\n let { schema, name, clientId, clientSecret, codeVerifier } = auth\n let form = {\n grant_type: \"authorization_code\",\n code: auth.code,\n client_id: clientId,\n client_secret: clientSecret,\n redirect_uri: redirectUrl,\n code_verifier: codeVerifier\n }\n\n return authActions.authorizeRequest({body: buildFormData(form), name, url: schema.get(\"tokenUrl\"), auth})\n}\n\nexport const authorizeAccessCodeWithBasicAuthentication = ( { auth, redirectUrl } ) => ( { authActions } ) => {\n let { schema, name, clientId, clientSecret, codeVerifier } = auth\n let headers = {\n Authorization: \"Basic \" + btoa(clientId + \":\" + clientSecret)\n }\n let form = {\n grant_type: \"authorization_code\",\n code: auth.code,\n client_id: clientId,\n redirect_uri: redirectUrl,\n code_verifier: codeVerifier\n }\n\n return authActions.authorizeRequest({body: buildFormData(form), name, url: schema.get(\"tokenUrl\"), auth, headers})\n}\n\nexport const authorizeRequest = ( data ) => ( { fn, getConfigs, authActions, errActions, oas3Selectors, specSelectors, authSelectors } ) => {\n let { body, query={}, headers={}, name, url, auth } = data\n\n let { additionalQueryStringParams } = authSelectors.getConfigs() || {}\n\n let parsedUrl\n\n if (specSelectors.isOAS3()) {\n let finalServerUrl = oas3Selectors.serverEffectiveValue(oas3Selectors.selectedServer())\n parsedUrl = parseUrl(url, finalServerUrl, true)\n } else {\n parsedUrl = parseUrl(url, specSelectors.url(), true)\n }\n\n if(typeof additionalQueryStringParams === \"object\") {\n parsedUrl.query = Object.assign({}, parsedUrl.query, additionalQueryStringParams)\n }\n\n const fetchUrl = parsedUrl.toString()\n\n let _headers = Object.assign({\n \"Accept\":\"application/json, text/plain, */*\",\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n }, headers)\n\n fn.fetch({\n url: fetchUrl,\n method: \"post\",\n headers: _headers,\n query: query,\n body: body,\n requestInterceptor: getConfigs().requestInterceptor,\n responseInterceptor: getConfigs().responseInterceptor\n })\n .then(function (response) {\n let token = JSON.parse(response.data)\n let error = token && ( token.error || \"\" )\n let parseError = token && ( token.parseError || \"\" )\n\n if ( !response.ok ) {\n errActions.newAuthErr( {\n authId: name,\n level: \"error\",\n source: \"auth\",\n message: response.statusText\n } )\n return\n }\n\n if ( error || parseError ) {\n errActions.newAuthErr({\n authId: name,\n level: \"error\",\n source: \"auth\",\n message: JSON.stringify(token)\n })\n return\n }\n\n authActions.authorizeOauth2WithPersistOption({ auth, token})\n })\n .catch(e => {\n let err = new Error(e)\n let message = err.message\n // swagger-js wraps the response (if available) into the e.response property;\n // investigate to check whether there are more details on why the authorization\n // request failed (according to RFC 6479).\n // See also https://github.com/swagger-api/swagger-ui/issues/4048\n if (e.response && e.response.data) {\n const errData = e.response.data\n try {\n const jsonResponse = typeof errData === \"string\" ? JSON.parse(errData) : errData\n if (jsonResponse.error)\n message += `, error: ${jsonResponse.error}`\n if (jsonResponse.error_description)\n message += `, description: ${jsonResponse.error_description}`\n } catch (jsonError) {\n // Ignore\n }\n }\n errActions.newAuthErr( {\n authId: name,\n level: \"error\",\n source: \"auth\",\n message: message\n } )\n })\n}\n\nexport function configureAuth(payload) {\n return {\n type: CONFIGURE_AUTH,\n payload: payload\n }\n}\n\nexport function restoreAuthorization(payload) {\n return {\n type: RESTORE_AUTHORIZATION,\n payload: payload\n }\n}\n\nexport const persistAuthorizationIfNeeded = () => ( { authSelectors, getConfigs } ) => {\n const configs = getConfigs()\n if (configs.persistAuthorization)\n {\n const authorized = authSelectors.authorized()\n localStorage.setItem(\"authorized\", JSON.stringify(authorized.toJS()))\n }\n}\n\nexport const authPopup = (url, swaggerUIRedirectOauth2) => ( ) => {\n win.swaggerUIRedirectOauth2 = swaggerUIRedirectOauth2\n\n win.open(url)\n}\n","import reducers from \"./reducers\"\nimport * as actions from \"./actions\"\nimport * as selectors from \"./selectors\"\nimport * as specWrapActionReplacements from \"./spec-wrap-actions\"\n\nexport default function() {\n return {\n afterLoad(system) {\n this.rootInjects = this.rootInjects || {}\n this.rootInjects.initOAuth = system.authActions.configureAuth\n this.rootInjects.preauthorizeApiKey = preauthorizeApiKey.bind(null, system)\n this.rootInjects.preauthorizeBasic = preauthorizeBasic.bind(null, system)\n },\n statePlugins: {\n auth: {\n reducers,\n actions,\n selectors\n },\n spec: {\n wrapActions: specWrapActionReplacements\n }\n }\n }\n}\n\nexport function preauthorizeBasic(system, key, username, password) {\n const {\n authActions: { authorize },\n specSelectors: { specJson, isOAS3 }\n } = system\n\n const definitionBase = isOAS3() ? [\"components\", \"securitySchemes\"] : [\"securityDefinitions\"]\n\n const schema = specJson().getIn([...definitionBase, key])\n\n if(!schema) {\n return null\n }\n\n return authorize({\n [key]: {\n value: {\n username,\n password,\n },\n schema: schema.toJS()\n }\n })\n}\n\nexport function preauthorizeApiKey(system, key, value) {\n const {\n authActions: { authorize },\n specSelectors: { specJson, isOAS3 }\n } = system\n\n const definitionBase = isOAS3() ? [\"components\", \"securitySchemes\"] : [\"securityDefinitions\"]\n\n const schema = specJson().getIn([...definitionBase, key])\n\n if(!schema) {\n return null\n }\n\n return authorize({\n [key]: {\n value,\n schema: schema.toJS()\n }\n })\n}\n","import { fromJS, Map } from \"immutable\"\nimport { btoa, isFunc } from \"core/utils\"\n\nimport {\n SHOW_AUTH_POPUP,\n AUTHORIZE,\n AUTHORIZE_OAUTH2,\n LOGOUT,\n CONFIGURE_AUTH,\n RESTORE_AUTHORIZATION\n} from \"./actions\"\n\nexport default {\n [SHOW_AUTH_POPUP]: (state, { payload } ) =>{\n return state.set( \"showDefinitions\", payload )\n },\n\n [AUTHORIZE]: (state, { payload } ) =>{\n let securities = fromJS(payload)\n let map = state.get(\"authorized\") || Map()\n\n // refactor withMutations\n securities.entrySeq().forEach( ([ key, security ]) => {\n if (!isFunc(security.getIn)) {\n return state.set(\"authorized\", map)\n }\n let type = security.getIn([\"schema\", \"type\"])\n\n if ( type === \"apiKey\" || type === \"http\" ) {\n map = map.set(key, security)\n } else if ( type === \"basic\" ) {\n let username = security.getIn([\"value\", \"username\"])\n let password = security.getIn([\"value\", \"password\"])\n\n map = map.setIn([key, \"value\"], {\n username: username,\n header: \"Basic \" + btoa(username + \":\" + password)\n })\n\n map = map.setIn([key, \"schema\"], security.get(\"schema\"))\n }\n })\n\n return state.set( \"authorized\", map )\n },\n\n [AUTHORIZE_OAUTH2]: (state, { payload } ) =>{\n let { auth, token } = payload\n let parsedAuth\n\n auth.token = Object.assign({}, token)\n parsedAuth = fromJS(auth)\n\n let map = state.get(\"authorized\") || Map()\n map = map.set(parsedAuth.get(\"name\"), parsedAuth)\n \n return state.set( \"authorized\", map )\n },\n\n [LOGOUT]: (state, { payload } ) =>{\n let result = state.get(\"authorized\").withMutations((authorized) => {\n payload.forEach((auth) => {\n authorized.delete(auth)\n })\n })\n\n return state.set(\"authorized\", result)\n },\n\n [CONFIGURE_AUTH]: (state, { payload } ) =>{\n return state.set(\"configs\", payload)\n },\n\n [RESTORE_AUTHORIZATION]: (state, { payload } ) =>{ \n return state.set(\"authorized\", fromJS(payload.authorized))\n },\n}\n","import { createSelector } from \"reselect\"\nimport { List, Map } from \"immutable\"\n\nconst state = state => state\n\nexport const shownDefinitions = createSelector(\n state,\n auth => auth.get( \"showDefinitions\" )\n)\n\nexport const definitionsToAuthorize = createSelector(\n state,\n () => ( { specSelectors } ) => {\n let definitions = specSelectors.securityDefinitions() || Map({})\n let list = List()\n\n //todo refactor\n definitions.entrySeq().forEach( ([ key, val ]) => {\n let map = Map()\n\n map = map.set(key, val)\n list = list.push(map)\n })\n\n return list\n }\n)\n\n\nexport const getDefinitionsByNames = ( state, securities ) => ( { specSelectors } ) => {\n console.warn(\"WARNING: getDefinitionsByNames is deprecated and will be removed in the next major version.\")\n let securityDefinitions = specSelectors.securityDefinitions()\n let result = List()\n\n securities.valueSeq().forEach( (names) => {\n let map = Map()\n names.entrySeq().forEach( ([name, scopes]) => {\n let definition = securityDefinitions.get(name)\n let allowedScopes\n\n if ( definition.get(\"type\") === \"oauth2\" && scopes.size ) {\n allowedScopes = definition.get(\"scopes\")\n\n allowedScopes.keySeq().forEach( (key) => {\n if ( !scopes.contains(key) ) {\n allowedScopes = allowedScopes.delete(key)\n }\n })\n\n definition = definition.set(\"allowedScopes\", allowedScopes)\n }\n\n map = map.set(name, definition)\n })\n\n result = result.push(map)\n })\n\n return result\n}\n\nexport const definitionsForRequirements = (state, securities = List()) => ({ authSelectors }) => {\n const allDefinitions = authSelectors.definitionsToAuthorize() || List()\n return allDefinitions.filter((def) => {\n return securities.some(sec => sec.get(def.keySeq().first()))\n })\n}\n\nexport const authorized = createSelector(\n state,\n auth => auth.get(\"authorized\") || Map()\n)\n\n\nexport const isAuthorized = ( state, securities ) => ( { authSelectors } ) => {\n let authorized = authSelectors.authorized()\n\n if(!List.isList(securities)) {\n return null\n }\n\n return !!securities.toJS().filter( ( security ) => {\n let isAuthorized = true\n\n return Object.keys(security).map((key) => {\n return !isAuthorized || !!authorized.get(key)\n }).indexOf(false) === -1\n }).length\n}\n\nexport const getConfigs = createSelector(\n state,\n auth => auth.get( \"configs\" )\n)\n","// Add security to the final `execute` call ( via `extras` )\nexport const execute = ( oriAction, { authSelectors, specSelectors }) => ({ path, method, operation, extras }) => {\n let securities = {\n authorized: authSelectors.authorized() && authSelectors.authorized().toJS(),\n definitions: specSelectors.securityDefinitions() && specSelectors.securityDefinitions().toJS(),\n specSecurity: specSelectors.security() && specSelectors.security().toJS()\n }\n\n return oriAction({ path, method, operation, securities, ...extras })\n}\n","export const UPDATE_CONFIGS = \"configs_update\"\nexport const TOGGLE_CONFIGS = \"configs_toggle\"\n\n// Update the configs, with a merge ( not deep )\nexport function update(configName, configValue) {\n return {\n type: UPDATE_CONFIGS,\n payload: {\n [configName]: configValue\n },\n }\n}\n\n// Toggle's the config, by name\nexport function toggle(configName) {\n return {\n type: TOGGLE_CONFIGS,\n payload: configName,\n }\n}\n\n\n// Hook\nexport const loaded = () => ({getConfigs, authActions}) => {\n // check if we should restore authorization data from localStorage\n const configs = getConfigs()\n if (configs.persistAuthorization)\n { \n const authorized = localStorage.getItem(\"authorized\") \n if(authorized)\n { \n authActions.restoreAuthorization({ \n authorized: JSON.parse(authorized)\n }) \n }\n }\n}\n","import YAML from \"js-yaml\"\n\nexport const parseYamlConfig = (yaml, system) => {\n try {\n return YAML.load(yaml)\n } catch(e) {\n if (system) {\n system.errActions.newThrownErr( new Error(e) )\n }\n return {}\n }\n}\n","import yamlConfig from \"root/swagger-config.yaml\"\nimport { parseYamlConfig } from \"./helpers\"\nimport * as actions from \"./actions\"\nimport * as specActions from \"./spec-actions\"\nimport * as selectors from \"./selectors\"\nimport reducers from \"./reducers\"\n\nconst specSelectors = {\n getLocalConfig: () => {\n return parseYamlConfig(yamlConfig)\n }\n}\n\n\nexport default function configsPlugin() {\n\n return {\n statePlugins: {\n spec: {\n actions: specActions,\n selectors: specSelectors,\n },\n configs: {\n reducers,\n actions,\n selectors,\n }\n }\n }\n}\n","import { fromJS } from \"immutable\"\n\nimport {\n\tUPDATE_CONFIGS,\n\tTOGGLE_CONFIGS,\n} from \"./actions\"\n\nexport default {\n\n [UPDATE_CONFIGS]: (state, action) => {\n return state.merge(fromJS(action.payload))\n },\n\n [TOGGLE_CONFIGS]: (state, action) => {\n const configName = action.payload\n const oriVal = state.get(configName)\n return state.set(configName, !oriVal)\n },\n\n}\n","// Just get the config value ( it can possibly be an immutable object)\nexport const get = (state, path) => {\n return state.getIn(Array.isArray(path) ? path : [path])\n}\n","import { parseYamlConfig } from \"./helpers\"\n\nexport const downloadConfig = (req) => (system) => {\n const {fn: { fetch }} = system\n\n return fetch(req)\n}\n\nexport const getConfigByUrl = (req, cb)=> ({ specActions }) => {\n if (req) {\n return specActions.downloadConfig(req).then(next, next)\n }\n\n function next(res) {\n if (res instanceof Error || res.status >= 400) {\n specActions.updateLoadingStatus(\"failedConfig\")\n specActions.updateLoadingStatus(\"failedConfig\")\n specActions.updateUrl(\"\")\n console.error(res.statusText + \" \" + req.url)\n cb(null)\n } else {\n cb(parseYamlConfig(res.text))\n }\n }\n}\n","export const setHash = (value) => {\n if(value) {\n return history.pushState(null, null, `#${value}`)\n } else {\n return window.location.hash = \"\"\n }\n}\n","import layout from \"./layout\"\nimport OperationWrapper from \"./operation-wrapper\"\nimport OperationTagWrapper from \"./operation-tag-wrapper\"\n\nexport default function() {\n return [layout, {\n statePlugins: {\n configs: {\n wrapActions: {\n loaded: (ori, system) => (...args) => {\n ori(...args)\n // location.hash was an UTF-16 String, here is required UTF-8\n const hash = decodeURIComponent(window.location.hash)\n system.layoutActions.parseDeepLinkHash(hash)\n }\n }\n }\n },\n wrapComponents: {\n operation: OperationWrapper,\n OperationTag: OperationTagWrapper,\n },\n }]\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_zenscroll__[\"default\"] });","import { setHash } from \"./helpers\"\nimport zenscroll from \"zenscroll\"\nimport { createDeepLinkPath } from \"core/utils\"\nimport Im, { fromJS } from \"immutable\"\n\nconst SCROLL_TO = \"layout_scroll_to\"\nconst CLEAR_SCROLL_TO = \"layout_clear_scroll\"\n\nexport const show = (ori, { getConfigs, layoutSelectors }) => (...args) => {\n ori(...args)\n\n if(!getConfigs().deepLinking) {\n return\n }\n\n try {\n let [tokenArray, shown] = args\n //Coerce in to array\n tokenArray = Array.isArray(tokenArray) ? tokenArray : [tokenArray]\n // Convert into something we can put in the URL hash\n // Or return empty, if we cannot\n const urlHashArray = layoutSelectors.urlHashArrayFromIsShownKey(tokenArray) // Will convert\n\n // No hash friendly list?\n if(!urlHashArray.length)\n return\n\n const [type, assetName] = urlHashArray\n\n if (!shown) {\n return setHash(\"/\")\n }\n\n if (urlHashArray.length === 2) {\n setHash(createDeepLinkPath(`/${encodeURIComponent(type)}/${encodeURIComponent(assetName)}`))\n } else if (urlHashArray.length === 1) {\n setHash(createDeepLinkPath(`/${encodeURIComponent(type)}`))\n }\n\n } catch (e) {\n // This functionality is not mission critical, so if something goes wrong\n // we'll just move on\n console.error(e) // eslint-disable-line no-console\n }\n}\n\nexport const scrollTo = (path) => {\n return {\n type: SCROLL_TO,\n payload: Array.isArray(path) ? path : [path]\n }\n}\n\nexport const parseDeepLinkHash = (rawHash) => ({ layoutActions, layoutSelectors, getConfigs }) => {\n\n if(!getConfigs().deepLinking) {\n return\n }\n\n if(rawHash) {\n let hash = rawHash.slice(1) // # is first character\n\n\n if(hash[0] === \"!\") {\n // Parse UI 2.x shebangs\n hash = hash.slice(1)\n }\n\n if(hash[0] === \"/\") {\n // \"/pet/addPet\" => \"pet/addPet\"\n // makes the split result cleaner\n // also handles forgotten leading slash\n hash = hash.slice(1)\n }\n\n const hashArray = hash.split(\"/\").map(val => (val || \"\"))\n\n const isShownKey = layoutSelectors.isShownKeyFromUrlHashArray(hashArray)\n\n const [type, tagId = \"\", maybeOperationId = \"\"] = isShownKey\n\n if(type === \"operations\") {\n // we're going to show an operation, so we need to expand the tag as well\n const tagIsShownKey = layoutSelectors.isShownKeyFromUrlHashArray([tagId])\n\n // If an `_` is present, trigger the legacy escaping behavior to be safe\n // TODO: remove this in v4.0, it is deprecated\n if(tagId.indexOf(\"_\") > -1) {\n console.warn(\"Warning: escaping deep link whitespace with `_` will be unsupported in v4.0, use `%20` instead.\")\n layoutActions.show(tagIsShownKey.map(val => val.replace(/_/g, \" \")), true)\n }\n\n layoutActions.show(tagIsShownKey, true)\n }\n\n // If an `_` is present, trigger the legacy escaping behavior to be safe\n // TODO: remove this in v4.0, it is deprecated\n if (tagId.indexOf(\"_\") > -1 || maybeOperationId.indexOf(\"_\") > -1) {\n console.warn(\"Warning: escaping deep link whitespace with `_` will be unsupported in v4.0, use `%20` instead.\")\n layoutActions.show(isShownKey.map(val => val.replace(/_/g, \" \")), true)\n }\n\n layoutActions.show(isShownKey, true)\n\n // Scroll to the newly expanded entity\n layoutActions.scrollTo(isShownKey)\n }\n}\n\nexport const readyToScroll = (isShownKey, ref) => (system) => {\n const scrollToKey = system.layoutSelectors.getScrollToKey()\n\n if(Im.is(scrollToKey, fromJS(isShownKey))) {\n system.layoutActions.scrollToElement(ref)\n system.layoutActions.clearScrollTo()\n }\n}\n\n// Scroll to \"ref\" (dom node) with the scrollbar on \"container\" or the nearest parent\nexport const scrollToElement = (ref, container) => (system) => {\n try {\n container = container || system.fn.getScrollParent(ref)\n let myScroller = zenscroll.createScroller(container)\n myScroller.to(ref)\n } catch(e) {\n console.error(e) // eslint-disable-line no-console\n }\n}\n\nexport const clearScrollTo = () => {\n return {\n type: CLEAR_SCROLL_TO,\n }\n}\n\n// From: https://stackoverflow.com/a/42543908/3933724\n// Modified to return html instead of body element as last resort\nfunction getScrollParent(element, includeHidden) {\n const LAST_RESORT = document.documentElement\n let style = getComputedStyle(element)\n const excludeStaticParent = style.position === \"absolute\"\n const overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/\n\n if (style.position === \"fixed\")\n return LAST_RESORT\n for (let parent = element; (parent = parent.parentElement);) {\n style = getComputedStyle(parent)\n if (excludeStaticParent && style.position === \"static\") {\n continue\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX))\n return parent\n }\n\n return LAST_RESORT\n}\n\nexport default {\n fn: {\n getScrollParent,\n },\n statePlugins: {\n layout: {\n actions: {\n scrollToElement,\n scrollTo,\n clearScrollTo,\n readyToScroll,\n parseDeepLinkHash\n },\n selectors: {\n getScrollToKey(state) {\n return state.get(\"scrollToKey\")\n },\n isShownKeyFromUrlHashArray(state, urlHashArray) {\n const [tag, operationId] = urlHashArray\n // We only put operations in the URL\n if(operationId) {\n return [\"operations\", tag, operationId]\n } else if (tag) {\n return [\"operations-tag\", tag]\n }\n return []\n },\n urlHashArrayFromIsShownKey(state, isShownKey) {\n let [type, tag, operationId] = isShownKey\n // We only put operations in the URL\n if(type == \"operations\") {\n return [tag, operationId]\n } else if (type == \"operations-tag\") {\n return [tag]\n }\n return []\n },\n },\n reducers: {\n [SCROLL_TO](state, action) {\n return state.set(\"scrollToKey\", Im.fromJS(action.payload))\n },\n [CLEAR_SCROLL_TO](state) {\n return state.delete(\"scrollToKey\")\n }\n },\n wrapActions: {\n show\n }\n }\n }\n}\n","import React from \"react\"\nimport { PropTypes } from \"prop-types\"\n\nconst Wrapper = (Ori, system) => class OperationTagWrapper extends React.Component {\n\n static propTypes = {\n tag: PropTypes.object.isRequired,\n }\n\n onLoad = (ref) => {\n const { tag } = this.props\n const isShownKey = [\"operations-tag\", tag]\n system.layoutActions.readyToScroll(isShownKey, ref)\n }\n\n render() {\n return (\n \n \n \n )\n }\n}\n\nexport default Wrapper\n","import React from \"react\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nconst Wrapper = (Ori, system) => class OperationWrapper extends React.Component {\n\n static propTypes = {\n operation: ImPropTypes.map.isRequired,\n }\n\n onLoad = (ref) => {\n const { operation } = this.props\n const { tag, operationId } = operation.toObject()\n let { isShownKey } = operation.toObject()\n isShownKey = isShownKey || [\"operations\", tag, operationId]\n system.layoutActions.readyToScroll(isShownKey, ref)\n }\n\n render() {\n return (\n \n \n \n )\n }\n}\n\nexport default Wrapper\n","import { createSelector } from \"reselect\"\nimport { Map } from \"immutable\"\nimport win from \"../window\"\n\nexport default function downloadUrlPlugin (toolbox) {\n let { fn } = toolbox\n\n const actions = {\n download: (url)=> ({ errActions, specSelectors, specActions, getConfigs }) => {\n let { fetch } = fn\n const config = getConfigs()\n url = url || specSelectors.url()\n specActions.updateLoadingStatus(\"loading\")\n errActions.clear({source: \"fetch\"})\n fetch({\n url,\n loadSpec: true,\n requestInterceptor: config.requestInterceptor || (a => a),\n responseInterceptor: config.responseInterceptor || (a => a),\n credentials: \"same-origin\",\n headers: {\n \"Accept\": \"application/json,*/*\"\n }\n }).then(next,next)\n\n function next(res) {\n if(res instanceof Error || res.status >= 400) {\n specActions.updateLoadingStatus(\"failed\")\n errActions.newThrownErr(Object.assign( new Error((res.message || res.statusText) + \" \" + url), {source: \"fetch\"}))\n // Check if the failure was possibly due to CORS or mixed content\n if (!res.status && res instanceof Error) checkPossibleFailReasons()\n return\n }\n specActions.updateLoadingStatus(\"success\")\n specActions.updateSpec(res.text)\n if(specSelectors.url() !== url) {\n specActions.updateUrl(url)\n }\n }\n\n function checkPossibleFailReasons() {\n try {\n let specUrl\n\n if(\"URL\" in win ) {\n specUrl = new URL(url)\n } else {\n // legacy browser, use to parse the URL\n specUrl = document.createElement(\"a\")\n specUrl.href = url\n }\n\n if(specUrl.protocol !== \"https:\" && win.location.protocol === \"https:\") {\n const error = Object.assign(\n new Error(`Possible mixed-content issue? The page was loaded over https:// but a ${specUrl.protocol}// URL was specified. Check that you are not attempting to load mixed content.`),\n {source: \"fetch\"}\n )\n errActions.newThrownErr(error)\n return\n }\n if(specUrl.origin !== win.location.origin) {\n const error = Object.assign(\n new Error(`Possible cross-origin (CORS) issue? The URL origin (${specUrl.origin}) does not match the page (${win.location.origin}). Check the server returns the correct 'Access-Control-Allow-*' headers.`),\n {source: \"fetch\"}\n )\n errActions.newThrownErr(error)\n }\n } catch (e) {\n return\n }\n }\n\n },\n\n updateLoadingStatus: (status) => {\n let enums = [null, \"loading\", \"failed\", \"success\", \"failedConfig\"]\n if(enums.indexOf(status) === -1) {\n console.error(`Error: ${status} is not one of ${JSON.stringify(enums)}`)\n }\n\n return {\n type: \"spec_update_loading_status\",\n payload: status\n }\n }\n }\n\n let reducers = {\n \"spec_update_loading_status\": (state, action) => {\n return (typeof action.payload === \"string\")\n ? state.set(\"loadingStatus\", action.payload)\n : state\n }\n }\n\n let selectors = {\n loadingStatus: createSelector(\n state => {\n return state || Map()\n },\n spec => spec.get(\"loadingStatus\") || null\n )\n }\n\n return {\n statePlugins: {\n spec: { actions, reducers, selectors }\n }\n }\n}\n","import { serializeError } from \"serialize-error\"\n\nexport const NEW_THROWN_ERR = \"err_new_thrown_err\"\nexport const NEW_THROWN_ERR_BATCH = \"err_new_thrown_err_batch\"\nexport const NEW_SPEC_ERR = \"err_new_spec_err\"\nexport const NEW_SPEC_ERR_BATCH = \"err_new_spec_err_batch\"\nexport const NEW_AUTH_ERR = \"err_new_auth_err\"\nexport const CLEAR = \"err_clear\"\nexport const CLEAR_BY = \"err_clear_by\"\n\nexport function newThrownErr(err) {\n return {\n type: NEW_THROWN_ERR,\n payload: serializeError(err)\n }\n}\n\nexport function newThrownErrBatch(errors) {\n return {\n type: NEW_THROWN_ERR_BATCH,\n payload: errors\n }\n}\n\nexport function newSpecErr(err) {\n return {\n type: NEW_SPEC_ERR,\n payload: err\n }\n}\n\nexport function newSpecErrBatch(errArray) {\n return {\n type: NEW_SPEC_ERR_BATCH,\n payload: errArray\n }\n}\n\nexport function newAuthErr(err) {\n return {\n type: NEW_AUTH_ERR,\n payload: err\n }\n}\n\nexport function clear(filter = {}) {\n // filter looks like: {type: 'spec'}, {source: 'parser'}\n return {\n type: CLEAR,\n payload: filter\n }\n}\n\nexport function clearBy(filter = () => true) {\n // filter is a function\n return {\n type: CLEAR_BY,\n payload: filter\n }\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_reduce_11e69996__[\"default\"] });","import reduce from \"lodash/reduce\"\nimport * as NotOfType from \"./transformers/not-of-type\"\nimport * as ParameterOneOf from \"./transformers/parameter-oneof\"\n\nconst errorTransformers = [\n NotOfType,\n ParameterOneOf\n]\n\nexport default function transformErrors (errors) {\n // Dev note: unimplemented artifact where\n // jsSpec: system.specSelectors.specJson().toJS()\n // regardless, to be compliant with redux@4, instead of calling the store method here,\n // jsSpec should be pass down as an argument,\n let inputs = {\n jsSpec: {}\n }\n\n let transformedErrors = reduce(errorTransformers, (result, transformer) => {\n try {\n let newlyTransformedErrors = transformer.transform(result, inputs)\n return newlyTransformedErrors.filter(err => !!err) // filter removed errors\n } catch(e) {\n console.error(\"Transformer error:\", e)\n return result\n }\n }, errors)\n\n return transformedErrors\n .filter(err => !!err) // filter removed errors\n .map(err => {\n if(!err.get(\"line\") && err.get(\"path\")) {\n // TODO: re-resolve line number if we've transformed it away\n }\n return err\n })\n\n}\n","export function transform(errors) {\n // JSONSchema refers to the current object being validated\n // as 'instance'. This isn't helpful to users, so we remove it.\n return errors\n .map(err => {\n let seekStr = \"is not of a type(s)\"\n let i = err.get(\"message\").indexOf(seekStr)\n if(i > -1) {\n let types = err.get(\"message\").slice(i + seekStr.length).split(\",\")\n return err.set(\"message\", err.get(\"message\").slice(0, i) + makeNewMessage(types))\n } else {\n return err\n }\n })\n}\n\nfunction makeNewMessage(types) {\n return types.reduce((p, c, i, arr) => {\n if(i === arr.length - 1 && arr.length > 1) {\n return p + \"or \" + c\n } else if(arr[i+1] && arr.length > 2) {\n return p + c + \", \"\n } else if(arr[i+1]) {\n return p + c + \" \"\n } else {\n return p + c\n }\n }, \"should be a\")\n}\n","import get from \"lodash/get\"\nimport { fromJS } from \"immutable\"\n\nexport function transform(errors, { jsSpec }) {\n // LOOK HERE THIS TRANSFORMER IS CURRENTLY DISABLED πŸ˜ƒ\n // TODO: finish implementing, fix flattening problem\n /* eslint-disable no-unreachable */\n return errors\n\n\n // JSONSchema gives us very little to go on\n let searchStr = \"is not exactly one from <#/definitions/parameter>,<#/definitions/jsonReference>\"\n return errors\n .map(err => {\n let message = err.get(\"message\")\n let isParameterOneOfError = message.indexOf(searchStr) > -1\n if(isParameterOneOfError) {\n // try to find what's wrong\n return createTailoredParameterError(err, jsSpec)\n } else {\n return err\n }\n })\n .flatten(true) // shallow Immutable flatten\n}\n\nconst VALID_IN_VALUES = [\"path\", \"query\", \"header\", \"body\", \"formData\"]\nconst VALID_COLLECTIONFORMAT_VALUES = [\"csv\", \"ssv\", \"tsv\", \"pipes\", \"multi\"]\n\nfunction createTailoredParameterError(err, jsSpec) {\n let newErrs = []\n let parameter = get(jsSpec, err.get(\"path\"))\n\n // find addressable cases\n if(parameter.in && VALID_IN_VALUES.indexOf(parameter.in) === -1) {\n let message = `Wrong value for the \"in\" keyword. Expected one of: ${VALID_IN_VALUES.join(\", \")}.`\n newErrs.push({\n message,\n path: err.get(\"path\") + \".in\",\n type: \"spec\",\n source: \"structural\",\n level: \"error\"\n })\n }\n\n if(parameter.collectionFormat && VALID_COLLECTIONFORMAT_VALUES.indexOf(parameter.collectionFormat) === -1) {\n let message = `Wrong value for the \"collectionFormat\" keyword. Expected one of: ${VALID_COLLECTIONFORMAT_VALUES.join(\", \")}.`\n newErrs.push({\n message,\n path: err.get(\"path\") + \".collectionFormat\",\n type: \"spec\",\n source: \"structural\",\n level: \"error\"\n })\n }\n\n return newErrs.length ? fromJS(newErrs) : err // fall back to making no changes\n\n}\n","import makeReducers from \"./reducers\"\nimport * as actions from \"./actions\"\nimport * as selectors from \"./selectors\"\n\nexport default function(system) {\n return {\n statePlugins: {\n err: {\n reducers: makeReducers(system),\n actions,\n selectors\n }\n }\n }\n}\n","import {\n NEW_THROWN_ERR,\n NEW_THROWN_ERR_BATCH,\n NEW_SPEC_ERR,\n NEW_SPEC_ERR_BATCH,\n NEW_AUTH_ERR,\n CLEAR,\n CLEAR_BY,\n} from \"./actions\"\n\nimport { fromJS, List } from \"immutable\"\n\nimport transformErrors from \"./error-transformers/hook\"\n\nlet DEFAULT_ERROR_STRUCTURE = {\n // defaults\n line: 0,\n level: \"error\",\n message: \"Unknown error\"\n}\n\nexport default function() {\n return {\n [NEW_THROWN_ERR]: (state, { payload }) => {\n let error = Object.assign(DEFAULT_ERROR_STRUCTURE, payload, {type: \"thrown\"})\n return state\n .update(\"errors\", errors => (errors || List()).push( fromJS( error )) )\n .update(\"errors\", errors => transformErrors(errors))\n },\n\n [NEW_THROWN_ERR_BATCH]: (state, { payload }) => {\n payload = payload.map(err => {\n return fromJS(Object.assign(DEFAULT_ERROR_STRUCTURE, err, { type: \"thrown\" }))\n })\n return state\n .update(\"errors\", errors => (errors || List()).concat( fromJS( payload )) )\n .update(\"errors\", errors => transformErrors(errors))\n },\n\n [NEW_SPEC_ERR]: (state, { payload }) => {\n let error = fromJS(payload)\n error = error.set(\"type\", \"spec\")\n return state\n .update(\"errors\", errors => (errors || List()).push( fromJS(error)).sortBy(err => err.get(\"line\")) )\n .update(\"errors\", errors => transformErrors(errors))\n },\n\n [NEW_SPEC_ERR_BATCH]: (state, { payload }) => {\n payload = payload.map(err => {\n return fromJS(Object.assign(DEFAULT_ERROR_STRUCTURE, err, { type: \"spec\" }))\n })\n return state\n .update(\"errors\", errors => (errors || List()).concat(fromJS(payload)))\n .update(\"errors\", errors => transformErrors(errors))\n },\n\n [NEW_AUTH_ERR]: (state, { payload }) => {\n let error = fromJS(Object.assign({}, payload))\n\n error = error.set(\"type\", \"auth\")\n return state\n .update(\"errors\", errors => (errors || List()).push( fromJS(error)) )\n .update(\"errors\", errors => transformErrors(errors))\n },\n\n [CLEAR]: (state, { payload }) => {\n if(!payload || !state.get(\"errors\")) {\n return state\n }\n\n let newErrors = state.get(\"errors\")\n .filter(err => {\n return err.keySeq().every(k => {\n const errValue = err.get(k)\n const filterValue = payload[k]\n\n if(!filterValue) return true\n\n return errValue !== filterValue\n })\n })\n return state.merge({\n errors: newErrors\n })\n },\n\n [CLEAR_BY]: (state, { payload }) => {\n if(!payload || typeof payload !== \"function\") {\n return state\n }\n let newErrors = state.get(\"errors\")\n .filter(err => {\n return payload(err)\n })\n return state.merge({\n errors: newErrors\n })\n }\n }\n}\n","import { List } from \"immutable\"\nimport { createSelector } from \"reselect\"\n\nconst state = state => state\n\nexport const allErrors = createSelector(\n state,\n err => err.get(\"errors\", List())\n)\n\nexport const lastError = createSelector(\n allErrors,\n all => all.last()\n)\n\n","import opsFilter from \"./opsFilter\"\n\nexport default function() {\n return {\n fn: {\n opsFilter\n }\n }\n}\n","export default function(taggedOps, phrase) {\n return taggedOps.filter((tagObj, tag) => tag.indexOf(phrase) !== -1)\n}\n","import { normalizeArray } from \"core/utils\"\n\nexport const UPDATE_LAYOUT = \"layout_update_layout\"\nexport const UPDATE_FILTER = \"layout_update_filter\"\nexport const UPDATE_MODE = \"layout_update_mode\"\nexport const SHOW = \"layout_show\"\n\n// export const ONLY_SHOW = \"layout_only_show\"\n\nexport function updateLayout(layout) {\n return {\n type: UPDATE_LAYOUT,\n payload: layout\n }\n}\n\nexport function updateFilter(filter) {\n return {\n type: UPDATE_FILTER,\n payload: filter\n }\n}\n\nexport function show(thing, shown=true) {\n thing = normalizeArray(thing)\n return {\n type: SHOW,\n payload: {thing, shown}\n }\n}\n\n// Simple string key-store, used for\nexport function changeMode(thing, mode=\"\") {\n thing = normalizeArray(thing)\n return {\n type: UPDATE_MODE,\n payload: {thing, mode}\n }\n}\n","import reducers from \"./reducers\"\nimport * as actions from \"./actions\"\nimport * as selectors from \"./selectors\"\nimport * as wrapSelectors from \"./spec-extensions/wrap-selector\"\n\nexport default function() {\n return {\n statePlugins: {\n layout: {\n reducers,\n actions,\n selectors\n },\n spec: {\n wrapSelectors\n }\n }\n }\n}\n","import { fromJS } from \"immutable\"\nimport {\n UPDATE_LAYOUT,\n UPDATE_FILTER,\n UPDATE_MODE,\n SHOW\n} from \"./actions\"\n\nexport default {\n\n [UPDATE_LAYOUT]: (state, action) => state.set(\"layout\", action.payload),\n\n [UPDATE_FILTER]: (state, action) => state.set(\"filter\", action.payload),\n\n [SHOW]: (state, action) => {\n const isShown = action.payload.shown\n // This is one way to serialize an array, another (preferred) is to convert to json-pointer\n // TODO: use json-pointer serilization instead of fromJS(...), for performance\n const thingToShow = fromJS(action.payload.thing)\n // This is a map of paths to bools\n // eg: [one, two] => true\n // eg: [one] => false\n return state.update(\"shown\", fromJS({}), a => a.set(thingToShow, isShown))\n },\n\n [UPDATE_MODE]: (state, action) => {\n let thing = action.payload.thing\n let mode = action.payload.mode\n return state.setIn([\"modes\"].concat(thing), (mode || \"\") + \"\")\n }\n\n}\n","import { createSelector } from \"reselect\"\nimport { normalizeArray } from \"core/utils\"\nimport { fromJS } from \"immutable\"\n\nconst state = state => state\n\nexport const current = state => state.get(\"layout\")\n\nexport const currentFilter = state => state.get(\"filter\")\n\nexport const isShown = (state, thing, def) => {\n thing = normalizeArray(thing)\n return state.get(\"shown\", fromJS({})).get(fromJS(thing), def)\n}\n\nexport const whatMode = (state, thing, def=\"\") => {\n thing = normalizeArray(thing)\n return state.getIn([\"modes\", ...thing], def)\n}\n\nexport const showSummary = createSelector(\n state,\n state => !isShown(state, \"editor\")\n)\n","\nexport const taggedOperations = (oriSelector, system) => (state, ...args) => {\n let taggedOps = oriSelector(state, ...args)\n\n const { fn, layoutSelectors, getConfigs } = system.getSystem()\n const configs = getConfigs()\n const { maxDisplayedTags } = configs\n\n // Filter, if requested\n let filter = layoutSelectors.currentFilter()\n if (filter) {\n if (filter !== true && filter !== \"true\" && filter !== \"false\") {\n taggedOps = fn.opsFilter(taggedOps, filter)\n }\n }\n // Limit to [max] items, if specified\n if (maxDisplayedTags && !isNaN(maxDisplayedTags) && maxDisplayedTags >= 0) {\n taggedOps = taggedOps.slice(0, maxDisplayedTags)\n }\n\n return taggedOps\n}\n","export default function ({configs}) {\n\n const levels = {\n \"debug\": 0,\n \"info\": 1,\n \"log\": 2,\n \"warn\": 3,\n \"error\": 4\n }\n\n const getLevel = (level) => levels[level] || -1\n\n let { logLevel } = configs\n let logLevelInt = getLevel(logLevel)\n\n function log(level, ...args) {\n if(getLevel(level) >= logLevelInt)\n // eslint-disable-next-line no-console\n console[level](...args)\n }\n\n log.warn = log.bind(null, \"warn\")\n log.error = log.bind(null, \"error\")\n log.info = log.bind(null, \"info\")\n log.debug = log.bind(null, \"debug\")\n\n return { rootInjects: { log } }\n}\n","// Actions conform to FSA (flux-standard-actions)\n// {type: string,payload: Any|Error, meta: obj, error: bool}\n\nexport const UPDATE_SELECTED_SERVER = \"oas3_set_servers\"\nexport const UPDATE_REQUEST_BODY_VALUE = \"oas3_set_request_body_value\"\nexport const UPDATE_REQUEST_BODY_VALUE_RETAIN_FLAG = \"oas3_set_request_body_retain_flag\"\nexport const UPDATE_REQUEST_BODY_INCLUSION = \"oas3_set_request_body_inclusion\"\nexport const UPDATE_ACTIVE_EXAMPLES_MEMBER = \"oas3_set_active_examples_member\"\nexport const UPDATE_REQUEST_CONTENT_TYPE = \"oas3_set_request_content_type\"\nexport const UPDATE_RESPONSE_CONTENT_TYPE = \"oas3_set_response_content_type\"\nexport const UPDATE_SERVER_VARIABLE_VALUE = \"oas3_set_server_variable_value\"\nexport const SET_REQUEST_BODY_VALIDATE_ERROR = \"oas3_set_request_body_validate_error\"\nexport const CLEAR_REQUEST_BODY_VALIDATE_ERROR = \"oas3_clear_request_body_validate_error\"\nexport const CLEAR_REQUEST_BODY_VALUE = \"oas3_clear_request_body_value\"\n\nexport function setSelectedServer (selectedServerUrl, namespace) {\n return {\n type: UPDATE_SELECTED_SERVER,\n payload: {selectedServerUrl, namespace}\n }\n}\n\nexport function setRequestBodyValue ({ value, pathMethod }) {\n return {\n type: UPDATE_REQUEST_BODY_VALUE,\n payload: { value, pathMethod }\n }\n}\n\nexport const setRetainRequestBodyValueFlag = ({ value, pathMethod }) => {\n return {\n type: UPDATE_REQUEST_BODY_VALUE_RETAIN_FLAG,\n payload: { value, pathMethod }\n }\n}\n\n\nexport function setRequestBodyInclusion ({ value, pathMethod, name }) {\n return {\n type: UPDATE_REQUEST_BODY_INCLUSION,\n payload: { value, pathMethod, name }\n }\n}\n\nexport function setActiveExamplesMember ({ name, pathMethod, contextType, contextName }) {\n return {\n type: UPDATE_ACTIVE_EXAMPLES_MEMBER,\n payload: { name, pathMethod, contextType, contextName }\n }\n}\n\nexport function setRequestContentType ({ value, pathMethod }) {\n return {\n type: UPDATE_REQUEST_CONTENT_TYPE,\n payload: { value, pathMethod }\n }\n}\n\nexport function setResponseContentType ({ value, path, method }) {\n return {\n type: UPDATE_RESPONSE_CONTENT_TYPE,\n payload: { value, path, method }\n }\n}\n\nexport function setServerVariableValue ({ server, namespace, key, val }) {\n return {\n type: UPDATE_SERVER_VARIABLE_VALUE,\n payload: { server, namespace, key, val }\n }\n}\n\nexport const setRequestBodyValidateError = ({ path, method, validationErrors }) => {\n return {\n type: SET_REQUEST_BODY_VALIDATE_ERROR,\n payload: { path, method, validationErrors }\n }\n}\n\nexport const clearRequestBodyValidateError = ({ path, method }) => {\n return {\n type: CLEAR_REQUEST_BODY_VALIDATE_ERROR,\n payload: { path, method }\n }\n}\n\nexport const initRequestBodyValidateError = ({ pathMethod } ) => {\n return {\n type: CLEAR_REQUEST_BODY_VALIDATE_ERROR,\n payload: { path: pathMethod[0], method: pathMethod[1] }\n }\n}\n\nexport const clearRequestBodyValue = ({ pathMethod }) => {\n return {\n type: CLEAR_REQUEST_BODY_VALUE,\n payload: { pathMethod }\n }\n}\n","import { createSelector } from \"reselect\"\nimport { List, Map, fromJS } from \"immutable\"\nimport { isOAS3 as isOAS3Helper } from \"../helpers\"\n\n\n// Helpers\n\nconst state = state => state\n\nfunction onlyOAS3(selector) {\n return (ori, system) => (...args) => {\n const spec = system.getSystem().specSelectors.specJson()\n if(isOAS3Helper(spec)) {\n // Pass the spec plugin state to Reselect to trigger on securityDefinitions update\n let resolvedSchemes = system.getState().getIn([\"spec\", \"resolvedSubtrees\",\n \"components\", \"securitySchemes\"])\n return selector(system, resolvedSchemes, ...args)\n } else {\n return ori(...args)\n }\n }\n}\n\nexport const definitionsToAuthorize = onlyOAS3(createSelector(\n state,\n ({specSelectors}) => specSelectors.securityDefinitions(),\n (system, definitions) => {\n // Coerce our OpenAPI 3.0 definitions into monoflow definitions\n // that look like Swagger2 definitions.\n let list = List()\n\n if(!definitions) {\n return list\n }\n\n definitions.entrySeq().forEach( ([ defName, definition ]) => {\n const type = definition.get(\"type\")\n\n if(type === \"oauth2\") {\n definition.get(\"flows\").entrySeq().forEach(([flowKey, flowVal]) => {\n let translatedDef = fromJS({\n flow: flowKey,\n authorizationUrl: flowVal.get(\"authorizationUrl\"),\n tokenUrl: flowVal.get(\"tokenUrl\"),\n scopes: flowVal.get(\"scopes\"),\n type: definition.get(\"type\"),\n description: definition.get(\"description\")\n })\n\n list = list.push(new Map({\n [defName]: translatedDef.filter((v) => {\n // filter out unset values, sometimes `authorizationUrl`\n // and `tokenUrl` come out as `undefined` in the data\n return v !== undefined\n })\n }))\n })\n }\n if(type === \"http\" || type === \"apiKey\") {\n list = list.push(new Map({\n [defName]: definition\n }))\n }\n if(type === \"openIdConnect\" && definition.get(\"openIdConnectData\")) {\n let oidcData = definition.get(\"openIdConnectData\")\n let grants = oidcData.get(\"grant_types_supported\") || [\"authorization_code\", \"implicit\"]\n grants.forEach((grant) => {\n // Convert from OIDC list of scopes to the OAS-style map with empty descriptions\n let translatedScopes = oidcData.get(\"scopes_supported\") &&\n oidcData.get(\"scopes_supported\").reduce((acc, cur) => acc.set(cur, \"\"), new Map())\n\n let translatedDef = fromJS({\n flow: grant,\n authorizationUrl: oidcData.get(\"authorization_endpoint\"),\n tokenUrl: oidcData.get(\"token_endpoint\"),\n scopes: translatedScopes,\n type: \"oauth2\",\n openIdConnectUrl: definition.get(\"openIdConnectUrl\")\n })\n\n list = list.push(new Map({\n [defName]: translatedDef.filter((v) => {\n // filter out unset values, sometimes `authorizationUrl`\n // and `tokenUrl` come out as `undefined` in the data\n return v !== undefined\n })\n }))\n })\n }\n })\n\n return list\n }\n))\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport { fromJS } from \"immutable\"\n\nconst Callbacks = (props) => {\n let { callbacks, getComponent, specPath } = props\n // const Markdown = getComponent(\"Markdown\", true)\n const OperationContainer = getComponent(\"OperationContainer\", true)\n\n if(!callbacks) {\n return No callbacks\n }\n\n let callbackElements = callbacks.entrySeq().map(([callbackName, callback]) => {\n return
\n

{callbackName}

\n { callback.entrySeq().map(([pathItemName, pathItem]) => {\n if(pathItemName === \"$$ref\") {\n return null\n }\n return
\n { pathItem.entrySeq().map(([method, operation]) => {\n if(method === \"$$ref\") {\n return null\n }\n let op = fromJS({\n operation\n })\n return \n }) }\n
\n }) }\n
\n })\n return
\n {callbackElements}\n
\n}\n\nCallbacks.propTypes = {\n getComponent: PropTypes.func.isRequired,\n callbacks: ImPropTypes.iterable.isRequired,\n specPath: ImPropTypes.list.isRequired,\n}\n\nexport default Callbacks\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class HttpAuth extends React.Component {\n static propTypes = {\n authorized: PropTypes.object,\n getComponent: PropTypes.func.isRequired,\n errSelectors: PropTypes.object.isRequired,\n schema: PropTypes.object.isRequired,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func\n }\n\n constructor(props, context) {\n super(props, context)\n let { name, schema } = this.props\n let value = this.getValue()\n\n this.state = {\n name: name,\n schema: schema,\n value: value\n }\n }\n\n getValue () {\n let { name, authorized } = this.props\n\n return authorized && authorized.getIn([name, \"value\"])\n }\n\n onChange =(e) => {\n let { onChange } = this.props\n let { value, name } = e.target\n\n let newValue = Object.assign({}, this.state.value)\n\n if(name) {\n newValue[name] = value\n } else {\n newValue = value\n }\n\n this.setState({ value: newValue }, () => onChange(this.state))\n\n }\n\n render() {\n let { schema, getComponent, errSelectors, name } = this.props\n const Input = getComponent(\"Input\")\n const Row = getComponent(\"Row\")\n const Col = getComponent(\"Col\")\n const AuthError = getComponent(\"authError\")\n const Markdown = getComponent(\"Markdown\", true)\n const JumpToPath = getComponent(\"JumpToPath\", true)\n\n const scheme = (schema.get(\"scheme\") || \"\").toLowerCase()\n let value = this.getValue()\n let errors = errSelectors.allErrors().filter( err => err.get(\"authId\") === name)\n\n if(scheme === \"basic\") {\n let username = value ? value.get(\"username\") : null\n return
\n

\n { name || schema.get(\"name\") } \n (http, Basic)\n \n

\n { username &&
Authorized
}\n \n \n \n \n \n {\n username ? { username } \n : \n }\n \n \n \n {\n username ? ****** \n : \n }\n \n {\n errors.valueSeq().map( (error, key) => {\n return \n } )\n }\n
\n }\n\n if(scheme === \"bearer\") {\n return (\n
\n

\n { name || schema.get(\"name\") } \n (http, Bearer)\n \n

\n { value &&
Authorized
}\n \n \n \n \n \n {\n value ? ****** \n : \n }\n \n {\n errors.valueSeq().map( (error, key) => {\n return \n } )\n }\n
\n )\n }\n return
\n {name} HTTP authentication: unsupported scheme {`'${scheme}'`}\n
\n }\n}\n","import Callbacks from \"./callbacks\"\nimport RequestBody from \"./request-body\"\nimport OperationLink from \"./operation-link\"\nimport Servers from \"./servers\"\nimport ServersContainer from \"./servers-container\"\nimport RequestBodyEditor from \"./request-body-editor\"\nimport HttpAuth from \"./http-auth\"\nimport OperationServers from \"./operation-servers\"\n\nexport default {\n Callbacks,\n HttpAuth,\n RequestBody,\n Servers,\n ServersContainer,\n RequestBodyEditor,\n OperationServers,\n operationLink: OperationLink\n}\n","import React, { Component } from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nclass OperationLink extends Component {\n render() {\n const { link, name, getComponent } = this.props\n\n const Markdown = getComponent(\"Markdown\", true)\n\n let targetOp = link.get(\"operationId\") || link.get(\"operationRef\")\n let parameters = link.get(\"parameters\") && link.get(\"parameters\").toJS()\n let description = link.get(\"description\")\n\n return
\n
\n {name}\n { description ? : null }\n
\n
\n        Operation `{targetOp}`

\n Parameters {padString(0, JSON.stringify(parameters, null, 2)) || \"{}\"}
\n
\n
\n }\n\n}\n\nfunction padString(n, string) {\n if(typeof string !== \"string\") { return \"\" }\n return string\n .split(\"\\n\")\n .map((line, i) => i > 0 ? Array(n + 1).join(\" \") + line : line)\n .join(\"\\n\")\n}\n\nOperationLink.propTypes = {\n getComponent: PropTypes.func.isRequired,\n link: ImPropTypes.orderedMap.isRequired,\n name: PropTypes.String\n}\n\nexport default OperationLink\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nexport default class OperationServers extends React.Component {\n static propTypes = {\n // for self\n path: PropTypes.string.isRequired,\n method: PropTypes.string.isRequired,\n operationServers: ImPropTypes.list,\n pathServers: ImPropTypes.list,\n setSelectedServer: PropTypes.func.isRequired,\n setServerVariableValue: PropTypes.func.isRequired,\n getSelectedServer: PropTypes.func.isRequired,\n getServerVariable: PropTypes.func.isRequired,\n getEffectiveServerValue: PropTypes.func.isRequired,\n\n // utils\n getComponent: PropTypes.func.isRequired\n }\n\n setSelectedServer = (server) => {\n const { path, method } = this.props\n // FIXME: we should be keeping up with this in props/state upstream of us\n // instead of cheatingβ„’ with `forceUpdate`\n this.forceUpdate()\n return this.props.setSelectedServer(server, `${path}:${method}`)\n }\n\n setServerVariableValue = (obj) => {\n const { path, method } = this.props\n // FIXME: we should be keeping up with this in props/state upstream of us\n // instead of cheatingβ„’ with `forceUpdate`\n this.forceUpdate()\n return this.props.setServerVariableValue({\n ...obj,\n namespace: `${path}:${method}`\n })\n }\n\n getSelectedServer = () => {\n const { path, method } = this.props\n return this.props.getSelectedServer(`${path}:${method}`)\n }\n\n getServerVariable = (server, key) => {\n const { path, method } = this.props\n return this.props.getServerVariable({\n namespace: `${path}:${method}`,\n server\n }, key)\n }\n\n getEffectiveServerValue = (server) => {\n const { path, method } = this.props\n return this.props.getEffectiveServerValue({\n server,\n namespace: `${path}:${method}`\n })\n }\n\n render() {\n const {\n // for self\n operationServers,\n pathServers,\n\n // util\n getComponent\n } = this.props\n\n if(!operationServers && !pathServers) {\n return null\n }\n\n const Servers = getComponent(\"Servers\")\n\n const serversToDisplay = operationServers || pathServers\n const displaying = operationServers ? \"operation\" : \"path\"\n\n return
\n
\n
\n

Servers

\n
\n
\n
\n

\n These {displaying}-level options override the global server options.\n

\n \n
\n
\n }\n}\n","import React, { PureComponent } from \"react\"\nimport PropTypes from \"prop-types\"\nimport cx from \"classnames\"\nimport { stringify } from \"core/utils\"\n\nconst NOOP = Function.prototype\n\nexport default class RequestBodyEditor extends PureComponent {\n\n static propTypes = {\n onChange: PropTypes.func,\n getComponent: PropTypes.func.isRequired,\n value: PropTypes.string,\n defaultValue: PropTypes.string,\n errors: PropTypes.array,\n };\n\n static defaultProps = {\n onChange: NOOP,\n userHasEditedBody: false,\n };\n\n constructor(props, context) {\n super(props, context)\n\n this.state = {\n value: stringify(props.value) || props.defaultValue\n }\n\n // this is the glue that makes sure our initial value gets set as the\n // current request body value\n // TODO: achieve this in a selector instead\n props.onChange(props.value)\n }\n\n applyDefaultValue = (nextProps) => {\n const { onChange, defaultValue } = (nextProps ? nextProps : this.props)\n\n this.setState({\n value: defaultValue\n })\n\n return onChange(defaultValue)\n }\n\n onChange = (value) => {\n this.props.onChange(stringify(value))\n }\n\n onDomChange = e => {\n const inputValue = e.target.value\n\n this.setState({\n value: inputValue,\n }, () => this.onChange(inputValue))\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if(\n this.props.value !== nextProps.value &&\n nextProps.value !== this.state.value\n ) {\n\n this.setState({\n value: stringify(nextProps.value)\n })\n }\n\n\n\n if(!nextProps.value && nextProps.defaultValue && !!this.state.value) {\n // if new value is falsy, we have a default, AND the falsy value didn't\n // come from us originally\n this.applyDefaultValue(nextProps)\n }\n }\n\n render() {\n let {\n getComponent,\n errors,\n } = this.props\n\n let {\n value\n } = this.state\n\n let isInvalid = errors.size > 0 ? true : false\n const TextArea = getComponent(\"TextArea\")\n\n return (\n
\n \n
\n )\n\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport { Map, OrderedMap, List } from \"immutable\"\nimport { getCommonExtensions, getSampleSchema, stringify, isEmptyValue } from \"core/utils\"\nimport { getKnownSyntaxHighlighterLanguage } from \"core/utils/jsonParse\"\n\nexport const getDefaultRequestBodyValue = (requestBody, mediaType, activeExamplesKey) => {\n const mediaTypeValue = requestBody.getIn([\"content\", mediaType])\n const schema = mediaTypeValue.get(\"schema\").toJS()\n\n const hasExamplesKey = mediaTypeValue.get(\"examples\") !== undefined\n const exampleSchema = mediaTypeValue.get(\"example\")\n const mediaTypeExample = hasExamplesKey\n ? mediaTypeValue.getIn([\n \"examples\",\n activeExamplesKey,\n \"value\"\n ])\n : exampleSchema\n\n const exampleValue = getSampleSchema(\n schema,\n mediaType,\n {\n includeWriteOnly: true\n },\n mediaTypeExample\n )\n return stringify(exampleValue)\n}\n\n\n\nconst RequestBody = ({\n userHasEditedBody,\n requestBody,\n requestBodyValue,\n requestBodyInclusionSetting,\n requestBodyErrors,\n getComponent,\n getConfigs,\n specSelectors,\n fn,\n contentType,\n isExecute,\n specPath,\n onChange,\n onChangeIncludeEmpty,\n activeExamplesKey,\n updateActiveExamplesKey,\n setRetainRequestBodyValueFlag\n}) => {\n const handleFile = (e) => {\n onChange(e.target.files[0])\n }\n const setIsIncludedOptions = (key) => {\n let options = {\n key,\n shouldDispatchInit: false,\n defaultValue: true\n }\n let currentInclusion = requestBodyInclusionSetting.get(key, \"no value\")\n if (currentInclusion === \"no value\") {\n options.shouldDispatchInit = true\n // future: can get/set defaultValue from a config setting\n }\n return options\n }\n\n const Markdown = getComponent(\"Markdown\", true)\n const ModelExample = getComponent(\"modelExample\")\n const RequestBodyEditor = getComponent(\"RequestBodyEditor\")\n const HighlightCode = getComponent(\"highlightCode\")\n const ExamplesSelectValueRetainer = getComponent(\"ExamplesSelectValueRetainer\")\n const Example = getComponent(\"Example\")\n const ParameterIncludeEmpty = getComponent(\"ParameterIncludeEmpty\")\n\n const { showCommonExtensions } = getConfigs()\n\n const requestBodyDescription = (requestBody && requestBody.get(\"description\")) || null\n const requestBodyContent = (requestBody && requestBody.get(\"content\")) || new OrderedMap()\n contentType = contentType || requestBodyContent.keySeq().first() || \"\"\n\n const mediaTypeValue = requestBodyContent.get(contentType, OrderedMap())\n const schemaForMediaType = mediaTypeValue.get(\"schema\", OrderedMap())\n const rawExamplesOfMediaType = mediaTypeValue.get(\"examples\", null)\n const sampleForMediaType = rawExamplesOfMediaType?.map((container, key) => {\n const val = container?.get(\"value\", null)\n if(val) {\n container = container.set(\"value\", getDefaultRequestBodyValue(\n requestBody,\n contentType,\n key,\n ), val)\n }\n return container\n })\n\n const handleExamplesSelect = (key /*, { isSyntheticChange } */) => {\n updateActiveExamplesKey(key)\n }\n requestBodyErrors = List.isList(requestBodyErrors) ? requestBodyErrors : List()\n\n if(!mediaTypeValue.size) {\n return null\n }\n\n const isObjectContent = mediaTypeValue.getIn([\"schema\", \"type\"]) === \"object\"\n const isBinaryFormat = mediaTypeValue.getIn([\"schema\", \"format\"]) === \"binary\"\n const isBase64Format = mediaTypeValue.getIn([\"schema\", \"format\"]) === \"base64\"\n\n if(\n contentType === \"application/octet-stream\"\n || contentType.indexOf(\"image/\") === 0\n || contentType.indexOf(\"audio/\") === 0\n || contentType.indexOf(\"video/\") === 0\n || isBinaryFormat\n || isBase64Format\n ) {\n const Input = getComponent(\"Input\")\n\n if(!isExecute) {\n return \n Example values are not available for {contentType} media types.\n \n }\n\n return \n }\n\n if (\n isObjectContent &&\n (\n contentType === \"application/x-www-form-urlencoded\" ||\n contentType.indexOf(\"multipart/\") === 0\n ) &&\n schemaForMediaType.get(\"properties\", OrderedMap()).size > 0\n ) {\n const JsonSchemaForm = getComponent(\"JsonSchemaForm\")\n const ParameterExt = getComponent(\"ParameterExt\")\n const bodyProperties = schemaForMediaType.get(\"properties\", OrderedMap())\n requestBodyValue = Map.isMap(requestBodyValue) ? requestBodyValue : OrderedMap()\n\n return
\n { requestBodyDescription &&\n \n }\n \n \n {\n Map.isMap(bodyProperties) && bodyProperties.entrySeq().map(([key, prop]) => {\n if (prop.get(\"readOnly\")) return\n\n let commonExt = showCommonExtensions ? getCommonExtensions(prop) : null\n const required = schemaForMediaType.get(\"required\", List()).includes(key)\n const type = prop.get(\"type\")\n const format = prop.get(\"format\")\n const description = prop.get(\"description\")\n const currentValue = requestBodyValue.getIn([key, \"value\"])\n const currentErrors = requestBodyValue.getIn([key, \"errors\"]) || requestBodyErrors\n const included = requestBodyInclusionSetting.get(key) || false\n\n const useInitialValFromSchemaSamples = prop.has(\"default\")\n || prop.has(\"example\")\n || prop.hasIn([\"items\", \"example\"])\n || prop.hasIn([\"items\", \"default\"])\n const useInitialValFromEnum = prop.has(\"enum\") && (prop.get(\"enum\").size === 1 || required)\n const useInitialValue = useInitialValFromSchemaSamples || useInitialValFromEnum\n\n let initialValue = \"\"\n if (type === \"array\" && !useInitialValue) {\n initialValue = []\n }\n if (type === \"object\" || useInitialValue) {\n // TODO: what about example or examples from requestBody could be passed as exampleOverride\n initialValue = getSampleSchema(prop, false, {\n includeWriteOnly: true\n })\n }\n\n if (typeof initialValue !== \"string\" && type === \"object\") {\n initialValue = stringify(initialValue)\n }\n if (typeof initialValue === \"string\" && type === \"array\") {\n initialValue = JSON.parse(initialValue)\n }\n\n const isFile = type === \"string\" && (format === \"binary\" || format === \"base64\")\n\n return \n \n \n \n })\n }\n \n
\n
\n { key }\n { !required ? null :  * }\n
\n
\n { type }\n { format && (${format})}\n {!showCommonExtensions || !commonExt.size ? null : commonExt.entrySeq().map(([key, v]) => )}\n
\n
\n { prop.get(\"deprecated\") ? \"deprecated\": null }\n
\n
\n \n {isExecute ?
\n {\n onChange(value, [key])\n }}\n />\n {required ? null : (\n onChangeIncludeEmpty(key, value)}\n isIncluded={included}\n isIncludedOptions={setIsIncludedOptions(key)}\n isDisabled={Array.isArray(currentValue) ? currentValue.length !== 0 : !isEmptyValue(currentValue)}\n />\n )}\n
: null }\n
\n
\n }\n\n const sampleRequestBody = getDefaultRequestBodyValue(\n requestBody,\n contentType,\n activeExamplesKey,\n )\n let language = null\n let testValueForJson = getKnownSyntaxHighlighterLanguage(sampleRequestBody)\n if (testValueForJson) {\n language = \"json\"\n }\n\n return
\n { requestBodyDescription &&\n \n }\n {\n sampleForMediaType ? (\n \n ) : null\n }\n {\n isExecute ? (\n
\n \n
\n ) : (\n \n }\n includeWriteOnly={true}\n />\n )\n }\n {\n sampleForMediaType ? (\n \n ) : null\n }\n
\n}\n\nRequestBody.propTypes = {\n userHasEditedBody: PropTypes.bool.isRequired,\n requestBody: ImPropTypes.orderedMap.isRequired,\n requestBodyValue: ImPropTypes.orderedMap.isRequired,\n requestBodyInclusionSetting: ImPropTypes.Map.isRequired,\n requestBodyErrors: ImPropTypes.list.isRequired,\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired,\n fn: PropTypes.object.isRequired,\n specSelectors: PropTypes.object.isRequired,\n contentType: PropTypes.string,\n isExecute: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n onChangeIncludeEmpty: PropTypes.func.isRequired,\n specPath: PropTypes.array.isRequired,\n activeExamplesKey: PropTypes.string,\n updateActiveExamplesKey: PropTypes.func,\n setRetainRequestBodyValueFlag: PropTypes.func,\n oas3Actions: PropTypes.object.isRequired\n}\n\nexport default RequestBody\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class ServersContainer extends React.Component {\n\n static propTypes = {\n specSelectors: PropTypes.object.isRequired,\n oas3Selectors: PropTypes.object.isRequired,\n oas3Actions: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n }\n\n render () {\n const {specSelectors, oas3Selectors, oas3Actions, getComponent} = this.props\n\n const servers = specSelectors.servers()\n\n const Servers = getComponent(\"Servers\")\n\n return servers && servers.size ? (\n
\n Servers\n \n
) : null\n }\n}","import React from \"react\"\nimport { OrderedMap } from \"immutable\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nexport default class Servers extends React.Component {\n\n static propTypes = {\n servers: ImPropTypes.list.isRequired,\n currentServer: PropTypes.string.isRequired,\n setSelectedServer: PropTypes.func.isRequired,\n setServerVariableValue: PropTypes.func.isRequired,\n getServerVariable: PropTypes.func.isRequired,\n getEffectiveServerValue: PropTypes.func.isRequired\n }\n\n componentDidMount() {\n let { servers, currentServer } = this.props\n\n if(currentServer) {\n return\n }\n\n // fire 'change' event to set default 'value' of select\n this.setServer(servers.first()?.get(\"url\"))\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n let {\n servers,\n setServerVariableValue,\n getServerVariable\n } = nextProps\n if (this.props.currentServer !== nextProps.currentServer || this.props.servers !== nextProps.servers) {\n // Server has changed, we may need to set default values\n let currentServerDefinition = servers\n .find(v => v.get(\"url\") === nextProps.currentServer)\n let prevServerDefinition = this.props.servers\n .find(v => v.get(\"url\") === this.props.currentServer) || OrderedMap()\n \n if(!currentServerDefinition) {\n return this.setServer(servers.first().get(\"url\"))\n }\n \n let prevServerVariableDefs = prevServerDefinition.get(\"variables\") || OrderedMap()\n let prevServerVariableDefaultKey = prevServerVariableDefs.find(v => v.get(\"default\")) || OrderedMap()\n let prevServerVariableDefaultValue = prevServerVariableDefaultKey.get(\"default\")\n \n let currentServerVariableDefs = currentServerDefinition.get(\"variables\") || OrderedMap()\n let currentServerVariableDefaultKey = currentServerVariableDefs.find(v => v.get(\"default\")) || OrderedMap()\n let currentServerVariableDefaultValue = currentServerVariableDefaultKey.get(\"default\")\n \n currentServerVariableDefs.map((val, key) => {\n let currentValue = getServerVariable(nextProps.currentServer, key)\n \n // note: it is possible for both key/val to be the same across definitions,\n // but we will try to detect a change in default values between definitions\n // only set the default value if the user hasn't set one yet\n // or if the definition appears to have changed\n if (!currentValue || prevServerVariableDefaultValue !== currentServerVariableDefaultValue) {\n setServerVariableValue({\n server: nextProps.currentServer,\n key,\n val: val.get(\"default\") || \"\"\n })\n }\n })\n }\n }\n\n onServerChange =( e ) => {\n this.setServer( e.target.value )\n\n // set default variable values\n }\n\n onServerVariableValueChange = ( e ) => {\n let {\n setServerVariableValue,\n currentServer\n } = this.props\n\n let variableName = e.target.getAttribute(\"data-variable\")\n let newVariableValue = e.target.value\n\n if(typeof setServerVariableValue === \"function\") {\n setServerVariableValue({\n server: currentServer,\n key: variableName,\n val: newVariableValue\n })\n }\n }\n\n setServer = ( value ) => {\n let { setSelectedServer } = this.props\n\n setSelectedServer(value)\n }\n\n render() {\n let { servers,\n currentServer,\n getServerVariable,\n getEffectiveServerValue\n } = this.props\n\n\n let currentServerDefinition = servers.find(s => s.get(\"url\") === currentServer) || OrderedMap()\n\n let currentServerVariableDefs = currentServerDefinition.get(\"variables\") || OrderedMap()\n\n let shouldShowVariableUI = currentServerVariableDefs.size !== 0\n\n return (\n
\n \n { shouldShowVariableUI ?\n
\n\n
\n Computed URL:\n \n {getEffectiveServerValue(currentServer)}\n \n
\n

Server variables

\n \n \n {\n currentServerVariableDefs.entrySeq().map(([name, val]) => {\n return \n \n \n \n })\n }\n \n
{name}\n { val.get(\"enum\") ?\n :\n \n }\n
\n
: null\n }\n
\n )\n }\n}\n","import React from \"react\"\n\nexport function isOAS3(jsSpec) {\n const oasVersion = jsSpec.get(\"openapi\")\n if(typeof oasVersion !== \"string\") {\n return false\n }\n\n // we gate against `3.1` becasue we want to explicitly opt into supporting it\n // at some point in the future -- KS, 7/2018\n\n // starts with, but is not `3.0.` exactly\n return oasVersion.startsWith(\"3.0.\") && oasVersion.length > 4\n}\n\nexport function isSwagger2(jsSpec) {\n const swaggerVersion = jsSpec.get(\"swagger\")\n if(typeof swaggerVersion !== \"string\") {\n return false\n }\n\n return swaggerVersion.startsWith(\"2.0\")\n}\n\nexport function OAS3ComponentWrapFactory(Component) {\n return (Ori, system) => (props) => {\n if(system && system.specSelectors && system.specSelectors.specJson) {\n const spec = system.specSelectors.specJson()\n\n if(isOAS3(spec)) {\n return \n } else {\n return \n }\n } else {\n console.warn(\"OAS3 wrapper: couldn't get spec\")\n return null\n }\n }\n}\n","// import reducers from \"./reducers\"\n// import * as actions from \"./actions\"\nimport * as specWrapSelectors from \"./spec-extensions/wrap-selectors\"\nimport * as authWrapSelectors from \"./auth-extensions/wrap-selectors\"\nimport * as specSelectors from \"./spec-extensions/selectors\"\nimport components from \"./components\"\nimport wrapComponents from \"./wrap-components\"\nimport * as oas3Actions from \"./actions\"\nimport * as oas3Selectors from \"./selectors\"\nimport oas3Reducers from \"./reducers\"\n\nexport default function() {\n return {\n components,\n wrapComponents,\n statePlugins: {\n spec: {\n wrapSelectors: specWrapSelectors,\n selectors: specSelectors\n },\n auth: {\n wrapSelectors: authWrapSelectors\n },\n oas3: {\n actions: oas3Actions,\n reducers: oas3Reducers,\n selectors: oas3Selectors,\n }\n }\n }\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_toArray_6cf1f7f9__[\"default\"] });","import { fromJS, Map } from \"immutable\"\n\nimport {\n UPDATE_SELECTED_SERVER,\n UPDATE_REQUEST_BODY_VALUE,\n UPDATE_REQUEST_BODY_INCLUSION,\n UPDATE_ACTIVE_EXAMPLES_MEMBER,\n UPDATE_REQUEST_CONTENT_TYPE,\n UPDATE_SERVER_VARIABLE_VALUE,\n UPDATE_RESPONSE_CONTENT_TYPE,\n SET_REQUEST_BODY_VALIDATE_ERROR,\n CLEAR_REQUEST_BODY_VALIDATE_ERROR,\n CLEAR_REQUEST_BODY_VALUE, UPDATE_REQUEST_BODY_VALUE_RETAIN_FLAG,\n} from \"./actions\"\n\nexport default {\n [UPDATE_SELECTED_SERVER]: (state, { payload: { selectedServerUrl, namespace } } ) =>{\n const path = namespace ? [ namespace, \"selectedServer\"] : [ \"selectedServer\"]\n return state.setIn( path, selectedServerUrl)\n },\n [UPDATE_REQUEST_BODY_VALUE]: (state, { payload: { value, pathMethod } } ) =>{\n let [path, method] = pathMethod\n if (!Map.isMap(value)) {\n // context: application/json is always a String (instead of Map)\n return state.setIn( [ \"requestData\", path, method, \"bodyValue\" ], value)\n }\n let currentVal = state.getIn([\"requestData\", path, method, \"bodyValue\"]) || Map()\n if (!Map.isMap(currentVal)) {\n // context: user switch from application/json to application/x-www-form-urlencoded\n currentVal = Map()\n }\n let newVal\n const [...valueKeys] = value.keys()\n valueKeys.forEach((valueKey) => {\n let valueKeyVal = value.getIn([valueKey])\n if (!currentVal.has(valueKey)) {\n newVal = currentVal.setIn([valueKey, \"value\"], valueKeyVal)\n } else if (!Map.isMap(valueKeyVal)) {\n // context: user input will be received as String\n newVal = currentVal.setIn([valueKey, \"value\"], valueKeyVal)\n }\n })\n return state.setIn([\"requestData\", path, method, \"bodyValue\"], newVal)\n },\n [UPDATE_REQUEST_BODY_VALUE_RETAIN_FLAG]: (state, { payload: { value, pathMethod } } ) =>{\n let [path, method] = pathMethod\n return state.setIn([\"requestData\", path, method, \"retainBodyValue\"], value)\n },\n [UPDATE_REQUEST_BODY_INCLUSION]: (state, { payload: { value, pathMethod, name } } ) =>{\n let [path, method] = pathMethod\n return state.setIn( [ \"requestData\", path, method, \"bodyInclusion\", name ], value)\n },\n [UPDATE_ACTIVE_EXAMPLES_MEMBER]: (state, { payload: { name, pathMethod, contextType, contextName } } ) =>{\n let [path, method] = pathMethod\n return state.setIn( [ \"examples\", path, method, contextType, contextName, \"activeExample\" ], name)\n },\n [UPDATE_REQUEST_CONTENT_TYPE]: (state, { payload: { value, pathMethod } } ) =>{\n let [path, method] = pathMethod\n return state.setIn( [ \"requestData\", path, method, \"requestContentType\" ], value)\n },\n [UPDATE_RESPONSE_CONTENT_TYPE]: (state, { payload: { value, path, method } } ) =>{\n return state.setIn( [ \"requestData\", path, method, \"responseContentType\" ], value)\n },\n [UPDATE_SERVER_VARIABLE_VALUE]: (state, { payload: { server, namespace, key, val } } ) =>{\n const path = namespace ? [ namespace, \"serverVariableValues\", server, key ] : [ \"serverVariableValues\", server, key ]\n return state.setIn(path, val)\n },\n [SET_REQUEST_BODY_VALIDATE_ERROR]: (state, { payload: { path, method, validationErrors } } ) => {\n let errors = []\n errors.push(\"Required field is not provided\")\n if (validationErrors.missingBodyValue) {\n // context: is application/json or application/xml, where typeof (missing) bodyValue = String\n return state.setIn([\"requestData\", path, method, \"errors\"], fromJS(errors))\n }\n if (validationErrors.missingRequiredKeys && validationErrors.missingRequiredKeys.length > 0) {\n // context: is application/x-www-form-urlencoded, with list of missing keys\n const { missingRequiredKeys } = validationErrors\n return state.updateIn([\"requestData\", path, method, \"bodyValue\"], fromJS({}), missingKeyValues => {\n return missingRequiredKeys.reduce((bodyValue, currentMissingKey) => {\n return bodyValue.setIn([currentMissingKey, \"errors\"], fromJS(errors))\n }, missingKeyValues)\n })\n }\n console.warn(\"unexpected result: SET_REQUEST_BODY_VALIDATE_ERROR\")\n return state\n },\n [CLEAR_REQUEST_BODY_VALIDATE_ERROR]: (state, { payload: { path, method } }) => {\n const requestBodyValue = state.getIn([\"requestData\", path, method, \"bodyValue\"])\n if (!Map.isMap(requestBodyValue)) {\n return state.setIn([\"requestData\", path, method, \"errors\"], fromJS([]))\n }\n const [...valueKeys] = requestBodyValue.keys()\n if (!valueKeys) {\n return state\n }\n return state.updateIn([\"requestData\", path, method, \"bodyValue\"], fromJS({}), bodyValues => {\n return valueKeys.reduce((bodyValue, curr) => {\n return bodyValue.setIn([curr, \"errors\"], fromJS([]))\n }, bodyValues)\n })\n },\n [CLEAR_REQUEST_BODY_VALUE]: (state, { payload: { pathMethod }}) => {\n let [path, method] = pathMethod\n const requestBodyValue = state.getIn([\"requestData\", path, method, \"bodyValue\"])\n if (!requestBodyValue) {\n return state\n }\n if (!Map.isMap(requestBodyValue)) {\n return state.setIn([\"requestData\", path, method, \"bodyValue\"], \"\")\n }\n return state.setIn([\"requestData\", path, method, \"bodyValue\"], Map())\n }\n}\n","import { OrderedMap, Map, List } from \"immutable\"\nimport { isOAS3 as isOAS3Helper } from \"./helpers\"\nimport { getDefaultRequestBodyValue } from \"./components/request-body\"\nimport { stringify } from \"../../utils\"\n\n// Helpers\n\nfunction onlyOAS3(selector) {\n return (...args) => (system) => {\n const spec = system.getSystem().specSelectors.specJson()\n if(isOAS3Helper(spec)) {\n return selector(...args)\n } else {\n return null\n }\n }\n}\n\nfunction validateRequestBodyIsRequired(selector) {\n return (...args) => (system) => {\n const specJson = system.getSystem().specSelectors.specJson()\n const argsList = [...args]\n // expect argsList[0] = state\n let pathMethod = argsList[1] || []\n let isOas3RequestBodyRequired = specJson.getIn([\"paths\", ...pathMethod, \"requestBody\", \"required\"])\n\n if (isOas3RequestBodyRequired) {\n return selector(...args)\n } else {\n // validation pass b/c not required\n return true\n }\n }\n}\n\nconst validateRequestBodyValueExists = (state, pathMethod) => {\n pathMethod = pathMethod || []\n let oas3RequestBodyValue = state.getIn([\"requestData\", ...pathMethod, \"bodyValue\"])\n // context: bodyValue can be a String, or a Map\n if (!oas3RequestBodyValue) {\n return false\n }\n // validation pass if String is not empty, or if Map exists\n return true\n}\n\n\nexport const selectedServer = onlyOAS3((state, namespace) => {\n const path = namespace ? [namespace, \"selectedServer\"] : [\"selectedServer\"]\n return state.getIn(path) || \"\"\n }\n)\n\nexport const requestBodyValue = onlyOAS3((state, path, method) => {\n return state.getIn([\"requestData\", path, method, \"bodyValue\"]) || null\n }\n)\n\nexport const shouldRetainRequestBodyValue = onlyOAS3((state, path, method) => {\n return state.getIn([\"requestData\", path, method, \"retainBodyValue\"]) || false\n }\n)\n\nexport const hasUserEditedBody = (state, path, method) => (system) => {\n const {oas3Selectors, specSelectors} = system.getSystem()\n const spec = specSelectors.specJson()\n if(isOAS3Helper(spec)) {\n let userHasEditedBody = false\n const currentMediaType = oas3Selectors.requestContentType(path, method)\n let userEditedRequestBody = oas3Selectors.requestBodyValue(path, method)\n if (Map.isMap(userEditedRequestBody)) {\n // context is not application/json media-type\n userEditedRequestBody = stringify(userEditedRequestBody.mapEntries((kv) => Map.isMap(kv[1]) ? [kv[0], kv[1].get(\"value\")] : kv).toJS())\n }\n if(List.isList(userEditedRequestBody)) {\n userEditedRequestBody = stringify(userEditedRequestBody)\n }\n if (currentMediaType) {\n const currentMediaTypeDefaultBodyValue = getDefaultRequestBodyValue(\n specSelectors.specResolvedSubtree([\"paths\", path, method, \"requestBody\"]),\n currentMediaType,\n oas3Selectors.activeExamplesMember(\n path, method,\n \"requestBody\",\n \"requestBody\",\n )\n )\n userHasEditedBody = !!userEditedRequestBody && userEditedRequestBody !== currentMediaTypeDefaultBodyValue\n }\n return userHasEditedBody\n } else {\n return null\n }\n}\n\nexport const requestBodyInclusionSetting = onlyOAS3((state, path, method) => {\n return state.getIn([\"requestData\", path, method, \"bodyInclusion\"]) || Map()\n }\n)\n\nexport const requestBodyErrors = onlyOAS3((state, path, method) => {\n return state.getIn([\"requestData\", path, method, \"errors\"]) || null\n }\n)\n\nexport const activeExamplesMember = onlyOAS3((state, path, method, type, name) => {\n return state.getIn([\"examples\", path, method, type, name, \"activeExample\"]) || null\n }\n)\n\nexport const requestContentType = onlyOAS3((state, path, method) => {\n return state.getIn([\"requestData\", path, method, \"requestContentType\"]) || null\n }\n)\n\nexport const responseContentType = onlyOAS3((state, path, method) => {\n return state.getIn([\"requestData\", path, method, \"responseContentType\"]) || null\n }\n)\n\nexport const serverVariableValue = onlyOAS3((state, locationData, key) => {\n let path\n\n // locationData may take one of two forms, for backwards compatibility\n // Object: ({server, namespace?}) or String:(server)\n if(typeof locationData !== \"string\") {\n const { server, namespace } = locationData\n if(namespace) {\n path = [namespace, \"serverVariableValues\", server, key]\n } else {\n path = [\"serverVariableValues\", server, key]\n }\n } else {\n const server = locationData\n path = [\"serverVariableValues\", server, key]\n }\n\n return state.getIn(path) || null\n }\n)\n\nexport const serverVariables = onlyOAS3((state, locationData) => {\n let path\n\n // locationData may take one of two forms, for backwards compatibility\n // Object: ({server, namespace?}) or String:(server)\n if(typeof locationData !== \"string\") {\n const { server, namespace } = locationData\n if(namespace) {\n path = [namespace, \"serverVariableValues\", server]\n } else {\n path = [\"serverVariableValues\", server]\n }\n } else {\n const server = locationData\n path = [\"serverVariableValues\", server]\n }\n\n return state.getIn(path) || OrderedMap()\n }\n)\n\nexport const serverEffectiveValue = onlyOAS3((state, locationData) => {\n var varValues, serverValue\n\n // locationData may take one of two forms, for backwards compatibility\n // Object: ({server, namespace?}) or String:(server)\n if(typeof locationData !== \"string\") {\n const { server, namespace } = locationData\n serverValue = server\n if(namespace) {\n varValues = state.getIn([namespace, \"serverVariableValues\", serverValue])\n } else {\n varValues = state.getIn([\"serverVariableValues\", serverValue])\n }\n } else {\n serverValue = locationData\n varValues = state.getIn([\"serverVariableValues\", serverValue])\n }\n\n varValues = varValues || OrderedMap()\n let str = serverValue\n\n varValues.map((val, key) => {\n str = str.replace(new RegExp(`{${key}}`, \"g\"), val)\n })\n\n return str\n }\n)\n\nexport const validateBeforeExecute = validateRequestBodyIsRequired(\n (state, pathMethod) => validateRequestBodyValueExists(state, pathMethod)\n)\n\nexport const validateShallowRequired = (state, { oas3RequiredRequestBodyContentType, oas3RequestContentType, oas3RequestBodyValue} ) => {\n let missingRequiredKeys = []\n // context: json => String; urlencoded, form-data => Map\n if (!Map.isMap(oas3RequestBodyValue)) {\n return missingRequiredKeys\n }\n let requiredKeys = []\n // Cycle through list of possible contentTypes for matching contentType and defined requiredKeys\n Object.keys(oas3RequiredRequestBodyContentType.requestContentType).forEach((contentType) => {\n if (contentType === oas3RequestContentType) {\n let contentTypeVal = oas3RequiredRequestBodyContentType.requestContentType[contentType]\n contentTypeVal.forEach((requiredKey) => {\n if (requiredKeys.indexOf(requiredKey) < 0 ) {\n requiredKeys.push(requiredKey)\n }\n })\n }\n })\n requiredKeys.forEach((key) => {\n let requiredKeyValue = oas3RequestBodyValue.getIn([key, \"value\"])\n if (!requiredKeyValue) {\n missingRequiredKeys.push(key)\n }\n })\n return missingRequiredKeys\n}\n","import { createSelector } from \"reselect\"\nimport { Map } from \"immutable\"\nimport { isOAS3 as isOAS3Helper, isSwagger2 as isSwagger2Helper } from \"../helpers\"\n\n\n// Helpers\n\nfunction onlyOAS3(selector) {\n return () => (system, ...args) => {\n const spec = system.getSystem().specSelectors.specJson()\n if(isOAS3Helper(spec)) {\n return selector(...args)\n } else {\n return null\n }\n }\n}\n\nconst state = state => {\n return state || Map()\n}\n\nconst specJson = createSelector(\n state,\n spec => spec.get(\"json\", Map())\n)\n\nconst specResolved = createSelector(\n state,\n spec => spec.get(\"resolved\", Map())\n)\n\nconst spec = state => {\n let res = specResolved(state)\n if(res.count() < 1)\n res = specJson(state)\n return res\n}\n\n// New selectors\n\nexport const servers = onlyOAS3(createSelector(\n spec,\n spec => spec.getIn([\"servers\"]) || Map()\n))\n\nexport const isSwagger2 = (ori, system) => () => {\n const spec = system.getSystem().specSelectors.specJson()\n return isSwagger2Helper(spec)\n}\n","import { createSelector } from \"reselect\"\nimport { specJsonWithResolvedSubtrees } from \"../../spec/selectors\"\nimport { Map } from \"immutable\"\nimport { isOAS3 as isOAS3Helper, isSwagger2 as isSwagger2Helper } from \"../helpers\"\n\n\n// Helpers\n\nfunction onlyOAS3(selector) {\n return (ori, system) => (...args) => {\n const spec = system.getSystem().specSelectors.specJson()\n if(isOAS3Helper(spec)) {\n return selector(...args)\n } else {\n return ori(...args)\n }\n }\n}\n\nconst state = state => {\n return state || Map()\n}\n\nconst nullSelector = createSelector(() => null)\n\nconst OAS3NullSelector = onlyOAS3(nullSelector)\n\nconst specJson = createSelector(\n state,\n spec => spec.get(\"json\", Map())\n)\n\nconst specResolved = createSelector(\n state,\n spec => spec.get(\"resolved\", Map())\n)\n\nconst spec = state => {\n let res = specResolved(state)\n if(res.count() < 1)\n res = specJson(state)\n return res\n}\n\n// Wrappers\n\nexport const definitions = onlyOAS3(createSelector(\n spec,\n spec => {\n const res = spec.getIn([\"components\", \"schemas\"])\n return Map.isMap(res) ? res : Map()\n }\n))\n\nexport const hasHost = onlyOAS3((state) => {\n return spec(state).hasIn([\"servers\", 0])\n})\n\nexport const securityDefinitions = onlyOAS3(createSelector(\n specJsonWithResolvedSubtrees,\n spec => spec.getIn([\"components\", \"securitySchemes\"]) || null\n))\n\nexport const host = OAS3NullSelector\nexport const basePath = OAS3NullSelector\nexport const consumes = OAS3NullSelector\nexport const produces = OAS3NullSelector\nexport const schemes = OAS3NullSelector\n\n// New selectors\n\nexport const servers = onlyOAS3(createSelector(\n spec,\n spec => spec.getIn([\"servers\"]) || Map()\n))\n\nexport const isOAS3 = (ori, system) => () => {\n const spec = system.getSystem().specSelectors.specJson()\n return isOAS3Helper(Map.isMap(spec) ? spec : Map())\n}\n\nexport const isSwagger2 = (ori, system) => () => {\n const spec = system.getSystem().specSelectors.specJson()\n return isSwagger2Helper(Map.isMap(spec) ? spec : Map())\n}\n","import React from \"react\"\nimport { OAS3ComponentWrapFactory } from \"../helpers\"\n\nexport default OAS3ComponentWrapFactory(({ Ori, ...props }) => {\n const {\n schema, getComponent, errSelectors, authorized, onAuthChange, name\n } = props\n\n const HttpAuth = getComponent(\"HttpAuth\")\n const type = schema.get(\"type\")\n\n if(type === \"http\") {\n return \n } else {\n return \n }\n})\n","import Markdown from \"./markdown\"\nimport AuthItem from \"./auth-item\"\nimport VersionStamp from \"./version-stamp\"\nimport OnlineValidatorBadge from \"./online-validator-badge\"\nimport Model from \"./model\"\nimport JsonSchema_string from \"./json-schema-string\"\n\nexport default {\n Markdown,\n AuthItem,\n JsonSchema_string,\n VersionStamp,\n model: Model,\n onlineValidatorBadge: OnlineValidatorBadge,\n}\n","import React from \"react\"\nimport { OAS3ComponentWrapFactory } from \"../helpers\"\n\nexport default OAS3ComponentWrapFactory(({ Ori, ...props }) => {\n const {\n schema,\n getComponent,\n errors,\n onChange\n } = props\n\n const format = schema && schema.get ? schema.get(\"format\") : null\n const type = schema && schema.get ? schema.get(\"type\") : null\n const Input = getComponent(\"Input\")\n\n if(type && type === \"string\" && (format && (format === \"binary\" || format === \"base64\"))) {\n return {\n onChange(e.target.files[0])\n }}\n disabled={Ori.isDisabled}/>\n } else {\n return \n }\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport cx from \"classnames\"\nimport { Remarkable } from \"remarkable\"\nimport { OAS3ComponentWrapFactory } from \"../helpers\"\nimport { sanitizer } from \"core/components/providers/markdown\"\n\nconst parser = new Remarkable(\"commonmark\")\nparser.block.ruler.enable([\"table\"])\nparser.set({ linkTarget: \"_blank\" })\n\nexport const Markdown = ({ source, className = \"\", getConfigs }) => {\n if(typeof source !== \"string\") {\n return null\n }\n\n if ( source ) {\n const { useUnsafeMarkdown } = getConfigs()\n const html = parser.render(source)\n const sanitized = sanitizer(html, { useUnsafeMarkdown })\n\n let trimmed\n\n if(typeof sanitized === \"string\") {\n trimmed = sanitized.trim()\n }\n\n return (\n \n )\n }\n return null\n}\nMarkdown.propTypes = {\n source: PropTypes.string,\n className: PropTypes.string,\n getConfigs: PropTypes.func,\n}\n\nMarkdown.defaultProps = {\n getConfigs: () => ({ useUnsafeMarkdown: false }),\n}\n\nexport default OAS3ComponentWrapFactory(Markdown)\n","import React, { Component } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { OAS3ComponentWrapFactory } from \"../helpers\"\nimport Model from \"core/components/model\"\n\nclass ModelComponent extends Component {\n static propTypes = {\n schema: PropTypes.object.isRequired,\n name: PropTypes.string,\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired,\n specSelectors: PropTypes.object.isRequired,\n expandDepth: PropTypes.number,\n includeReadOnly: PropTypes.bool,\n includeWriteOnly: PropTypes.bool,\n }\n\n render(){\n let { getConfigs, schema } = this.props\n let classes = [\"model-box\"]\n let isDeprecated = schema.get(\"deprecated\") === true\n let message = null\n\n if(isDeprecated) {\n classes.push(\"deprecated\")\n message = Deprecated:\n }\n\n return
\n {message}\n \n
\n }\n}\n\nexport default OAS3ComponentWrapFactory(ModelComponent)\n","import { OAS3ComponentWrapFactory } from \"../helpers\"\nimport OnlineValidatorBadge from \"core/components/online-validator-badge\"\n\n// OAS3 spec is now supported by the online validator.\nexport default OAS3ComponentWrapFactory(OnlineValidatorBadge)\n","import React from \"react\"\nimport { OAS3ComponentWrapFactory } from \"../helpers\"\n\nexport default OAS3ComponentWrapFactory((props) => {\n const { Ori } = props\n\n return \n \n \n
OAS3
\n
\n
\n})\n","let engaged = false\n\nexport default function() {\n\n return {\n statePlugins: {\n spec: {\n wrapActions: {\n updateSpec: (ori) => (...args) => {\n engaged = true\n return ori(...args)\n },\n updateJsonSpec: (ori, system) => (...args) => {\n const cb = system.getConfigs().onComplete\n if(engaged && typeof cb === \"function\") {\n // call `onComplete` on next tick, which allows React to\n // reconcile the DOM before we notify the user\n setTimeout(cb, 0)\n engaged = false\n }\n\n return ori(...args)\n }\n }\n }\n }\n }\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_repeat_18ab8b74__[\"default\"] });","import win from \"../../window\"\nimport { Map } from \"immutable\"\n\n/**\n * if duplicate key name existed from FormData entries,\n * we mutated the key name by appending a hashIdx\n * @param {String} k - possibly mutated key name\n * @return {String} - src key name\n */\nconst extractKey = (k) => {\n const hashIdx = \"_**[]\"\n if (k.indexOf(hashIdx) < 0) {\n return k\n }\n return k.split(hashIdx)[0].trim()\n}\n\nconst escapeShell = (str) => {\n if (str === \"-d \") {\n return str\n }\n // eslint-disable-next-line no-useless-escape\n if (!/^[_\\/-]/g.test(str))\n return (\"'\" + str\n .replace(/'/g, \"'\\\\''\") + \"'\")\n else\n return str\n}\n\nconst escapeCMD = (str) => {\n str = str\n .replace(/\\^/g, \"^^\")\n .replace(/\\\\\"/g, \"\\\\\\\\\\\"\")\n .replace(/\"/g, \"\\\"\\\"\")\n .replace(/\\n/g, \"^\\n\")\n if (str === \"-d \") {\n return str\n .replace(/-d /g, \"-d ^\\n\")\n }\n // eslint-disable-next-line no-useless-escape\n if (!/^[_\\/-]/g.test(str))\n return \"\\\"\" + str + \"\\\"\"\n else\n return str\n}\n\nconst escapePowershell = (str) => {\n if (str === \"-d \") {\n return str\n }\n if (/\\n/.test(str)) {\n return \"@\\\"\\n\" + str.replace(/\"/g, \"\\\\\\\"\").replace(/`/g, \"``\").replace(/\\$/, \"`$\") + \"\\n\\\"@\"\n }\n // eslint-disable-next-line no-useless-escape\n if (!/^[_\\/-]/g.test(str))\n return \"'\" + str\n .replace(/\"/g, \"\\\"\\\"\")\n .replace(/'/g, \"''\") + \"'\"\n else\n return str\n}\n\nfunction getStringBodyOfMap(request) {\n let curlifyToJoin = []\n for (let [k, v] of request.get(\"body\").entrySeq()) {\n let extractedKey = extractKey(k)\n if (v instanceof win.File) {\n curlifyToJoin.push(` \"${extractedKey}\": {\\n \"name\": \"${v.name}\"${v.type ? `,\\n \"type\": \"${v.type}\"` : \"\"}\\n }`)\n } else {\n curlifyToJoin.push(` \"${extractedKey}\": ${JSON.stringify(v, null, 2).replace(/(\\r\\n|\\r|\\n)/g, \"\\n \")}`)\n }\n }\n return `{\\n${curlifyToJoin.join(\",\\n\")}\\n}`\n}\n\nconst curlify = (request, escape, newLine, ext = \"\") => {\n let isMultipartFormDataRequest = false\n let curlified = \"\"\n const addWords = (...args) => curlified += \" \" + args.map(escape).join(\" \")\n const addWordsWithoutLeadingSpace = (...args) => curlified += args.map(escape).join(\" \")\n const addNewLine = () => curlified += ` ${newLine}`\n const addIndent = (level = 1) => curlified += \" \".repeat(level)\n let headers = request.get(\"headers\")\n curlified += \"curl\" + ext\n\n if (request.has(\"curlOptions\")) {\n addWords(...request.get(\"curlOptions\"))\n }\n\n addWords(\"-X\", request.get(\"method\"))\n\n addNewLine()\n addIndent()\n addWordsWithoutLeadingSpace(`${request.get(\"url\")}`)\n\n if (headers && headers.size) {\n for (let p of request.get(\"headers\").entries()) {\n addNewLine()\n addIndent()\n let [h, v] = p\n addWordsWithoutLeadingSpace(\"-H\", `${h}: ${v}`)\n isMultipartFormDataRequest = isMultipartFormDataRequest || /^content-type$/i.test(h) && /^multipart\\/form-data$/i.test(v)\n }\n }\n\n const body = request.get(\"body\")\n if (body) {\n if (isMultipartFormDataRequest && [\"POST\", \"PUT\", \"PATCH\"].includes(request.get(\"method\"))) {\n for (let [k, v] of body.entrySeq()) {\n let extractedKey = extractKey(k)\n addNewLine()\n addIndent()\n addWordsWithoutLeadingSpace(\"-F\")\n if (v instanceof win.File) {\n addWords(`${extractedKey}=@${v.name}${v.type ? `;type=${v.type}` : \"\"}`)\n } else {\n addWords(`${extractedKey}=${v}`)\n }\n }\n } else if(body instanceof win.File) {\n addNewLine()\n addIndent()\n addWordsWithoutLeadingSpace(`--data-binary '@${body.name}'`)\n } else {\n addNewLine()\n addIndent()\n addWordsWithoutLeadingSpace(\"-d \")\n let reqBody = body\n if (!Map.isMap(reqBody)) {\n if (typeof reqBody !== \"string\") {\n reqBody = JSON.stringify(reqBody)\n }\n addWordsWithoutLeadingSpace(reqBody)\n } else {\n addWordsWithoutLeadingSpace(getStringBodyOfMap(request))\n }\n }\n } else if (!body && request.get(\"method\") === \"POST\") {\n addNewLine()\n addIndent()\n addWordsWithoutLeadingSpace(\"-d ''\")\n }\n\n return curlified\n}\n\n// eslint-disable-next-line camelcase\nexport const requestSnippetGenerator_curl_powershell = (request) => {\n return curlify(request, escapePowershell, \"`\\n\", \".exe\")\n}\n\n// eslint-disable-next-line camelcase\nexport const requestSnippetGenerator_curl_bash = (request) => {\n return curlify(request, escapeShell, \"\\\\\\n\")\n}\n\n// eslint-disable-next-line camelcase\nexport const requestSnippetGenerator_curl_cmd = (request) => {\n return curlify(request, escapeCMD, \"^\\n\")\n}\n","import * as fn from \"./fn\"\nimport * as selectors from \"./selectors\"\nimport RequestSnippets from \"./request-snippets\"\nexport default () => {\n return {\n components: {\n RequestSnippets\n },\n fn,\n statePlugins: {\n requestSnippets: {\n selectors\n }\n }\n }\n}\n","import React, { useRef, useEffect, useState } from \"react\"\nimport PropTypes from \"prop-types\"\nimport get from \"lodash/get\"\nimport isFunction from \"lodash/isFunction\"\nimport { CopyToClipboard } from \"react-copy-to-clipboard\"\nimport { SyntaxHighlighter, getStyle } from \"core/syntax-highlighting\"\n\nconst style = {\n cursor: \"pointer\",\n lineHeight: 1,\n display: \"inline-flex\",\n backgroundColor: \"rgb(250, 250, 250)\",\n paddingBottom: \"0\",\n paddingTop: \"0\",\n border: \"1px solid rgb(51, 51, 51)\",\n borderRadius: \"4px 4px 0 0\",\n boxShadow: \"none\",\n borderBottom: \"none\"\n}\n\nconst activeStyle = {\n cursor: \"pointer\",\n lineHeight: 1,\n display: \"inline-flex\",\n backgroundColor: \"rgb(51, 51, 51)\",\n boxShadow: \"none\",\n border: \"1px solid rgb(51, 51, 51)\",\n paddingBottom: \"0\",\n paddingTop: \"0\",\n borderRadius: \"4px 4px 0 0\",\n marginTop: \"-5px\",\n marginRight: \"-5px\",\n marginLeft: \"-5px\",\n zIndex: \"9999\",\n borderBottom: \"none\"\n}\n\nconst RequestSnippets = ({ request, requestSnippetsSelectors, getConfigs }) => {\n const config = isFunction(getConfigs) ? getConfigs() : null\n const canSyntaxHighlight = get(config, \"syntaxHighlight\") !== false && get(config, \"syntaxHighlight.activated\", true)\n const rootRef = useRef(null)\n\n const [activeLanguage, setActiveLanguage] = useState(requestSnippetsSelectors.getSnippetGenerators()?.keySeq().first())\n const [isExpanded, setIsExpanded] = useState(requestSnippetsSelectors?.getDefaultExpanded())\n useEffect(() => {\n const doIt = () => {\n\n }\n doIt()\n }, [])\n useEffect(() => {\n const childNodes = Array\n .from(rootRef.current.childNodes)\n .filter(node => !!node.nodeType && node.classList?.contains(\"curl-command\"))\n // eslint-disable-next-line no-use-before-define\n childNodes.forEach(node => node.addEventListener(\"mousewheel\", handlePreventYScrollingBeyondElement, { passive: false }))\n\n return () => {\n // eslint-disable-next-line no-use-before-define\n childNodes.forEach(node => node.removeEventListener(\"mousewheel\", handlePreventYScrollingBeyondElement))\n }\n }, [request])\n\n const snippetGenerators = requestSnippetsSelectors.getSnippetGenerators()\n const activeGenerator = snippetGenerators.get(activeLanguage)\n const snippet = activeGenerator.get(\"fn\")(request)\n\n const handleGenChange = (key) => {\n const needsChange = activeLanguage !== key\n if (needsChange) {\n setActiveLanguage(key)\n }\n }\n\n const handleSetIsExpanded = () => {\n setIsExpanded(!isExpanded)\n }\n\n const handleGetBtnStyle = (key) => {\n if (key === activeLanguage) {\n return activeStyle\n }\n return style\n }\n\n const handlePreventYScrollingBeyondElement = (e) => {\n const { target, deltaY } = e\n const { scrollHeight: contentHeight, offsetHeight: visibleHeight, scrollTop } = target\n const scrollOffset = visibleHeight + scrollTop\n const isElementScrollable = contentHeight > visibleHeight\n const isScrollingPastTop = scrollTop === 0 && deltaY < 0\n const isScrollingPastBottom = scrollOffset >= contentHeight && deltaY > 0\n\n if (isElementScrollable && (isScrollingPastTop || isScrollingPastBottom)) {\n e.preventDefault()\n }\n }\n\n const SnippetComponent = canSyntaxHighlight\n ? \n {snippet}\n \n :\n \n\n return (\n
\n
\n handleSetIsExpanded()}\n style={{ cursor: \"pointer\" }}\n >Snippets\n handleSetIsExpanded()}\n style={{ border: \"none\", background: \"none\" }}\n title={isExpanded ? \"Collapse operation\" : \"Expand operation\"}\n >\n \n \n \n \n
\n {\n isExpanded &&
\n
\n {\n snippetGenerators.entrySeq().map(([key, gen]) => {\n return (
handleGenChange(key)}>\n

{gen.get(\"title\")}

\n
)\n })\n }\n
\n
\n \n
\n
\n {SnippetComponent}\n
\n
\n }\n
\n ) \n}\n\nRequestSnippets.propTypes = {\n request: PropTypes.object.isRequired,\n requestSnippetsSelectors: PropTypes.object.isRequired,\n getConfigs: PropTypes.object.isRequired,\n requestSnippetsActions: PropTypes.object,\n}\n\nexport default RequestSnippets\n","import { createSelector } from \"reselect\"\nimport { Map } from \"immutable\"\n\nconst state = state => state || Map()\n\nexport const getGenerators = createSelector(\n state,\n state => {\n const languageKeys = state\n .get(\"languages\")\n const generators = state\n .get(\"generators\", Map())\n if(!languageKeys || languageKeys.isEmpty()) {\n return generators\n }\n return generators\n .filter((v, key) => languageKeys.includes(key))\n }\n)\n\nexport const getSnippetGenerators = (state) => ({ fn }) => {\n const getGenFn = (key) => fn[`requestSnippetGenerator_${key}`]\n return getGenerators(state)\n .map((gen, key) => {\n const genFn = getGenFn(key)\n if(typeof genFn !== \"function\") {\n return null\n }\n\n return gen.set(\"fn\", genFn)\n })\n .filter(v => v)\n}\n\nexport const getActiveLanguage = createSelector(\n state,\n state => state\n .get(\"activeLanguage\")\n)\n\nexport const getDefaultExpanded = createSelector(\n state,\n state => state\n .get(\"defaultExpanded\")\n)\n","import PropTypes from \"prop-types\"\nimport React, { Component } from \"react\"\n\nimport { componentDidCatch } from \"../fn\"\nimport Fallback from \"./fallback\"\n\nexport class ErrorBoundary extends Component {\n static getDerivedStateFromError(error) {\n return { hasError: true, error }\n }\n\n constructor(...args) {\n super(...args)\n this.state = { hasError: false, error: null }\n }\n\n componentDidCatch(error, errorInfo) {\n this.props.fn.componentDidCatch(error, errorInfo)\n }\n\n render() {\n const { getComponent, targetName, children } = this.props\n\n if (this.state.hasError) {\n const FallbackComponent = getComponent(\"Fallback\")\n return \n }\n\n return children\n }\n}\nErrorBoundary.propTypes = {\n targetName: PropTypes.string,\n getComponent: PropTypes.func,\n fn: PropTypes.object,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ])\n}\nErrorBoundary.defaultProps = {\n targetName: \"this component\",\n getComponent: () => Fallback,\n fn: {\n componentDidCatch,\n },\n children: null,\n}\n\nexport default ErrorBoundary\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nconst Fallback = ({ name }) => (\n
\n 😱 Could not render { name === \"t\" ? \"this component\" : name }, see the console.\n
\n)\nFallback.propTypes = {\n name: PropTypes.string.isRequired,\n}\n\nexport default Fallback\n","import React, { Component } from \"react\"\n\nexport const componentDidCatch = console.error\n\nconst isClassComponent = component => component.prototype && component.prototype.isReactComponent\n\nexport const withErrorBoundary = (getSystem) => (WrappedComponent) => {\n const { getComponent, fn } = getSystem()\n const ErrorBoundary = getComponent(\"ErrorBoundary\")\n const targetName = fn.getDisplayName(WrappedComponent)\n\n class WithErrorBoundary extends Component {\n render() {\n return (\n \n \n \n )\n }\n }\n WithErrorBoundary.displayName = `WithErrorBoundary(${targetName})`\n if (isClassComponent(WrappedComponent)) {\n /**\n * We need to handle case of class components defining a `mapStateToProps` public method.\n * Components with `mapStateToProps` public method cannot be wrapped.\n */\n WithErrorBoundary.prototype.mapStateToProps = WrappedComponent.prototype.mapStateToProps\n }\n\n return WithErrorBoundary\n}\n\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_fill_07ef3114__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_zipObject_c74f1c14__[\"default\"] });","import zipObject from \"lodash/zipObject\"\n\nimport ErrorBoundary from \"./components/error-boundary\"\nimport Fallback from \"./components/fallback\"\nimport { componentDidCatch, withErrorBoundary } from \"./fn\"\n\nconst safeRenderPlugin = ({componentList = [], fullOverride = false} = {}) => ({ getSystem }) => {\n const defaultComponentList = [\n \"App\",\n \"BaseLayout\",\n \"VersionPragmaFilter\",\n \"InfoContainer\",\n \"ServersContainer\",\n \"SchemesContainer\",\n \"AuthorizeBtnContainer\",\n \"FilterContainer\",\n \"Operations\",\n \"OperationContainer\",\n \"parameters\",\n \"responses\",\n \"OperationServers\",\n \"Models\",\n \"ModelWrapper\",\n ]\n const mergedComponentList = fullOverride ? componentList : [...defaultComponentList, ...componentList]\n const wrapFactory = (Original, { fn }) => fn.withErrorBoundary(Original)\n const wrapComponents = zipObject(mergedComponentList, Array(mergedComponentList.length).fill(wrapFactory))\n\n return {\n fn: {\n componentDidCatch,\n withErrorBoundary: withErrorBoundary(getSystem),\n },\n components: {\n ErrorBoundary,\n Fallback,\n },\n wrapComponents,\n }\n}\n\nexport default safeRenderPlugin\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_randexp__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_isEmpty_e109fd6b__[\"default\"] });","import XML from \"xml\"\nimport RandExp from \"randexp\"\nimport isEmpty from \"lodash/isEmpty\"\nimport { objectify, isFunc, normalizeArray, deeplyStripKey } from \"core/utils\"\n\nimport memoizeN from \"../../../helpers/memoizeN\"\n\nconst generateStringFromRegex = (pattern) => {\n try {\n const randexp = new RandExp(pattern)\n return randexp.gen()\n } catch (e) {\n // Invalid regex should not cause a crash (regex syntax varies across languages)\n return \"string\"\n }\n}\n\nconst primitives = {\n \"string\": (schema) => schema.pattern ? generateStringFromRegex(schema.pattern) : \"string\",\n \"string_email\": () => \"user@example.com\",\n \"string_date-time\": () => new Date().toISOString(),\n \"string_date\": () => new Date().toISOString().substring(0, 10),\n \"string_uuid\": () => \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n \"string_hostname\": () => \"example.com\",\n \"string_ipv4\": () => \"198.51.100.42\",\n \"string_ipv6\": () => \"2001:0db8:5b96:0000:0000:426f:8e17:642a\",\n \"number\": () => 0,\n \"number_float\": () => 0.0,\n \"integer\": () => 0,\n \"boolean\": (schema) => typeof schema.default === \"boolean\" ? schema.default : true\n}\n\nconst primitive = (schema) => {\n schema = objectify(schema)\n let { type, format } = schema\n\n let fn = primitives[`${type}_${format}`] || primitives[type]\n\n if(isFunc(fn))\n return fn(schema)\n\n return \"Unknown Type: \" + schema.type\n}\n\n// do a couple of quick sanity tests to ensure the value\n// looks like a $$ref that swagger-client generates.\nconst sanitizeRef = (value) => deeplyStripKey(value, \"$$ref\", (val) =>\n typeof val === \"string\" && val.indexOf(\"#\") > -1)\n\nconst objectContracts = [\"maxProperties\", \"minProperties\"]\nconst arrayContracts = [\"minItems\", \"maxItems\"]\nconst numberContracts = [\n \"minimum\",\n \"maximum\",\n \"exclusiveMinimum\",\n \"exclusiveMaximum\"\n]\nconst stringContracts = [\"minLength\", \"maxLength\"]\n\nconst liftSampleHelper = (oldSchema, target, config = {}) => {\n const setIfNotDefinedInTarget = (key) => {\n if(target[key] === undefined && oldSchema[key] !== undefined) {\n target[key] = oldSchema[key]\n }\n }\n\n [\n \"example\",\n \"default\",\n \"enum\",\n \"xml\",\n \"type\",\n ...objectContracts,\n ...arrayContracts,\n ...numberContracts,\n ...stringContracts,\n ].forEach(key => setIfNotDefinedInTarget(key))\n\n if(oldSchema.required !== undefined && Array.isArray(oldSchema.required)) {\n if(target.required === undefined || !target.required.length) {\n target.required = []\n }\n oldSchema.required.forEach(key => {\n if(target.required.includes(key)) {\n return\n }\n target.required.push(key)\n })\n }\n if(oldSchema.properties) {\n if(!target.properties) {\n target.properties = {}\n }\n let props = objectify(oldSchema.properties)\n for (let propName in props) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n continue\n }\n if ( props[propName] && props[propName].deprecated ) {\n continue\n }\n if ( props[propName] && props[propName].readOnly && !config.includeReadOnly ) {\n continue\n }\n if ( props[propName] && props[propName].writeOnly && !config.includeWriteOnly ) {\n continue\n }\n if(!target.properties[propName]) {\n target.properties[propName] = props[propName]\n if(!oldSchema.required && Array.isArray(oldSchema.required) && oldSchema.required.indexOf(propName) !== -1) {\n if(!target.required) {\n target.required = [propName]\n } else {\n target.required.push(propName)\n }\n }\n }\n }\n }\n if(oldSchema.items) {\n if(!target.items) {\n target.items = {}\n }\n target.items = liftSampleHelper(oldSchema.items, target.items, config)\n }\n\n return target\n}\n\nexport const sampleFromSchemaGeneric = (schema, config={}, exampleOverride = undefined, respectXML = false) => {\n if(schema && isFunc(schema.toJS))\n schema = schema.toJS()\n let usePlainValue = exampleOverride !== undefined || schema && schema.example !== undefined || schema && schema.default !== undefined\n // first check if there is the need of combining this schema with others required by allOf\n const hasOneOf = !usePlainValue && schema && schema.oneOf && schema.oneOf.length > 0\n const hasAnyOf = !usePlainValue && schema && schema.anyOf && schema.anyOf.length > 0\n if(!usePlainValue && (hasOneOf || hasAnyOf)) {\n const schemaToAdd = objectify(hasOneOf\n ? schema.oneOf[0]\n : schema.anyOf[0]\n )\n liftSampleHelper(schemaToAdd, schema, config)\n if(!schema.xml && schemaToAdd.xml) {\n schema.xml = schemaToAdd.xml\n }\n if(schema.example !== undefined && schemaToAdd.example !== undefined) {\n usePlainValue = true\n } else if(schemaToAdd.properties) {\n if(!schema.properties) {\n schema.properties = {}\n }\n let props = objectify(schemaToAdd.properties)\n for (let propName in props) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n continue\n }\n if ( props[propName] && props[propName].deprecated ) {\n continue\n }\n if ( props[propName] && props[propName].readOnly && !config.includeReadOnly ) {\n continue\n }\n if ( props[propName] && props[propName].writeOnly && !config.includeWriteOnly ) {\n continue\n }\n if(!schema.properties[propName]) {\n schema.properties[propName] = props[propName]\n if(!schemaToAdd.required && Array.isArray(schemaToAdd.required) && schemaToAdd.required.indexOf(propName) !== -1) {\n if(!schema.required) {\n schema.required = [propName]\n } else {\n schema.required.push(propName)\n }\n }\n }\n }\n }\n }\n const _attr = {}\n let { xml, type, example, properties, additionalProperties, items } = schema || {}\n let { includeReadOnly, includeWriteOnly } = config\n xml = xml || {}\n let { name, prefix, namespace } = xml\n let displayName\n let res = {}\n\n // set xml naming and attributes\n if(respectXML) {\n name = name || \"notagname\"\n // add prefix to name if exists\n displayName = (prefix ? prefix + \":\" : \"\") + name\n if ( namespace ) {\n //add prefix to namespace if exists\n let namespacePrefix = prefix ? ( \"xmlns:\" + prefix ) : \"xmlns\"\n _attr[namespacePrefix] = namespace\n }\n }\n\n // init xml default response sample obj\n if(respectXML) {\n res[displayName] = []\n }\n\n const schemaHasAny = (keys) => keys.some(key => Object.prototype.hasOwnProperty.call(schema, key))\n // try recover missing type\n if(schema && !type) {\n if(properties || additionalProperties || schemaHasAny(objectContracts)) {\n type = \"object\"\n } else if(items || schemaHasAny(arrayContracts)) {\n type = \"array\"\n } else if(schemaHasAny(numberContracts)) {\n type = \"number\"\n schema.type = \"number\"\n } else if(!usePlainValue && !schema.enum){\n // implicit cover schemaHasAny(stringContracts) or A schema without a type matches any data type is:\n // components:\n // schemas:\n // AnyValue:\n // anyOf:\n // - type: string\n // - type: number\n // - type: integer\n // - type: boolean\n // - type: array\n // items: {}\n // - type: object\n //\n // which would resolve to type: string\n type = \"string\"\n schema.type = \"string\"\n }\n }\n\n const handleMinMaxItems = (sampleArray) => {\n if (schema?.maxItems !== null && schema?.maxItems !== undefined) {\n sampleArray = sampleArray.slice(0, schema?.maxItems)\n }\n if (schema?.minItems !== null && schema?.minItems !== undefined) {\n let i = 0\n while (sampleArray.length < schema?.minItems) {\n sampleArray.push(sampleArray[i++ % sampleArray.length])\n }\n }\n return sampleArray\n }\n\n // add to result helper init for xml or json\n const props = objectify(properties)\n let addPropertyToResult\n let propertyAddedCounter = 0\n\n const hasExceededMaxProperties = () => schema\n && schema.maxProperties !== null && schema.maxProperties !== undefined\n && propertyAddedCounter >= schema.maxProperties\n\n const requiredPropertiesToAdd = () => {\n if(!schema || !schema.required) {\n return 0\n }\n let addedCount = 0\n if(respectXML) {\n schema.required.forEach(key => addedCount +=\n res[key] === undefined\n ? 0\n : 1\n )\n } else {\n schema.required.forEach(key => addedCount +=\n res[displayName]?.find(x => x[key] !== undefined) === undefined\n ? 0\n : 1\n )\n }\n return schema.required.length - addedCount\n }\n\n const isOptionalProperty = (propName) => {\n if(!schema || !schema.required || !schema.required.length) {\n return true\n }\n return !schema.required.includes(propName)\n }\n\n const canAddProperty = (propName) => {\n if(!schema || schema.maxProperties === null || schema.maxProperties === undefined) {\n return true\n }\n if(hasExceededMaxProperties()) {\n return false\n }\n if(!isOptionalProperty(propName)) {\n return true\n }\n return (schema.maxProperties - propertyAddedCounter - requiredPropertiesToAdd()) > 0\n }\n\n if(respectXML) {\n addPropertyToResult = (propName, overrideE = undefined) => {\n if(schema && props[propName]) {\n // case it is an xml attribute\n props[propName].xml = props[propName].xml || {}\n\n if (props[propName].xml.attribute) {\n const enumAttrVal = Array.isArray(props[propName].enum)\n ? props[propName].enum[0]\n : undefined\n const attrExample = props[propName].example\n const attrDefault = props[propName].default\n\n if(attrExample !== undefined) {\n _attr[props[propName].xml.name || propName] = attrExample\n } else if(attrDefault !== undefined) {\n _attr[props[propName].xml.name || propName] = attrDefault\n } else if(enumAttrVal !== undefined) {\n _attr[props[propName].xml.name || propName] = enumAttrVal\n } else {\n _attr[props[propName].xml.name || propName] = primitive(props[propName])\n }\n\n return\n }\n props[propName].xml.name = props[propName].xml.name || propName\n } else if(!props[propName] && additionalProperties !== false) {\n // case only additionalProperty that is not defined in schema\n props[propName] = {\n xml: {\n name: propName\n }\n }\n }\n\n let t = sampleFromSchemaGeneric(schema && props[propName] || undefined, config, overrideE, respectXML)\n if(!canAddProperty(propName)) {\n return\n }\n\n propertyAddedCounter++\n if (Array.isArray(t)) {\n res[displayName] = res[displayName].concat(t)\n } else {\n res[displayName].push(t)\n }\n }\n } else {\n addPropertyToResult = (propName, overrideE) => {\n if(!canAddProperty(propName)) {\n return\n }\n res[propName] = sampleFromSchemaGeneric(props[propName], config, overrideE, respectXML)\n propertyAddedCounter++\n }\n }\n\n // check for plain value and if found use it to generate sample from it\n if(usePlainValue) {\n let sample\n if(exampleOverride !== undefined) {\n sample = sanitizeRef(exampleOverride)\n } else if(example !== undefined) {\n sample = sanitizeRef(example)\n } else {\n sample = sanitizeRef(schema.default)\n }\n\n // if json just return\n if(!respectXML) {\n // spacial case yaml parser can not know about\n if(typeof sample === \"number\" && type === \"string\") {\n return `${sample}`\n }\n // return if sample does not need any parsing\n if(typeof sample !== \"string\" || type === \"string\") {\n return sample\n }\n // check if sample is parsable or just a plain string\n try {\n return JSON.parse(sample)\n } catch(e) {\n // sample is just plain string return it\n return sample\n }\n }\n\n // recover missing type\n if(!schema) {\n type = Array.isArray(sample) ? \"array\" : typeof sample\n }\n\n // generate xml sample recursively for array case\n if(type === \"array\") {\n if (!Array.isArray(sample)) {\n if(typeof sample === \"string\") {\n return sample\n }\n sample = [sample]\n }\n const itemSchema = schema\n ? schema.items\n : undefined\n if(itemSchema) {\n itemSchema.xml = itemSchema.xml || xml || {}\n itemSchema.xml.name = itemSchema.xml.name || xml.name\n }\n let itemSamples = sample\n .map(s => sampleFromSchemaGeneric(itemSchema, config, s, respectXML))\n itemSamples = handleMinMaxItems(itemSamples)\n if(xml.wrapped) {\n res[displayName] = itemSamples\n if (!isEmpty(_attr)) {\n res[displayName].push({_attr: _attr})\n }\n }\n else {\n res = itemSamples\n }\n return res\n }\n\n // generate xml sample recursively for object case\n if(type === \"object\") {\n // case literal example\n if(typeof sample === \"string\") {\n return sample\n }\n for (let propName in sample) {\n if (!Object.prototype.hasOwnProperty.call(sample, propName)) {\n continue\n }\n if (schema && props[propName] && props[propName].readOnly && !includeReadOnly) {\n continue\n }\n if (schema && props[propName] && props[propName].writeOnly && !includeWriteOnly) {\n continue\n }\n if (schema && props[propName] && props[propName].xml && props[propName].xml.attribute) {\n _attr[props[propName].xml.name || propName] = sample[propName]\n continue\n }\n addPropertyToResult(propName, sample[propName])\n }\n if (!isEmpty(_attr)) {\n res[displayName].push({_attr: _attr})\n }\n\n return res\n }\n\n res[displayName] = !isEmpty(_attr) ? [{_attr: _attr}, sample] : sample\n return res\n }\n\n // use schema to generate sample\n\n if(type === \"object\") {\n for (let propName in props) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n continue\n }\n if ( props[propName] && props[propName].deprecated ) {\n continue\n }\n if ( props[propName] && props[propName].readOnly && !includeReadOnly ) {\n continue\n }\n if ( props[propName] && props[propName].writeOnly && !includeWriteOnly ) {\n continue\n }\n addPropertyToResult(propName)\n }\n if (respectXML && _attr) {\n res[displayName].push({_attr: _attr})\n }\n\n if(hasExceededMaxProperties()) {\n return res\n }\n\n if ( additionalProperties === true ) {\n if(respectXML) {\n res[displayName].push({additionalProp: \"Anything can be here\"})\n } else {\n res.additionalProp1 = {}\n }\n propertyAddedCounter++\n } else if ( additionalProperties ) {\n const additionalProps = objectify(additionalProperties)\n const additionalPropSample = sampleFromSchemaGeneric(additionalProps, config, undefined, respectXML)\n\n if(respectXML && additionalProps.xml && additionalProps.xml.name && additionalProps.xml.name !== \"notagname\")\n {\n res[displayName].push(additionalPropSample)\n } else {\n const toGenerateCount = schema.minProperties !== null && schema.minProperties !== undefined && propertyAddedCounter < schema.minProperties\n ? schema.minProperties - propertyAddedCounter\n : 3\n for (let i = 1; i <= toGenerateCount; i++) {\n if(hasExceededMaxProperties()) {\n return res\n }\n if(respectXML) {\n const temp = {}\n temp[\"additionalProp\" + i] = additionalPropSample[\"notagname\"]\n res[displayName].push(temp)\n } else {\n res[\"additionalProp\" + i] = additionalPropSample\n }\n propertyAddedCounter++\n }\n }\n }\n return res\n }\n\n if(type === \"array\") {\n if (!items) {\n return\n }\n\n let sampleArray\n if(respectXML) {\n items.xml = items.xml || schema?.xml || {}\n items.xml.name = items.xml.name || xml.name\n }\n\n if(Array.isArray(items.anyOf)) {\n sampleArray = items.anyOf.map(i => sampleFromSchemaGeneric(liftSampleHelper(items, i, config), config, undefined, respectXML))\n } else if(Array.isArray(items.oneOf)) {\n sampleArray = items.oneOf.map(i => sampleFromSchemaGeneric(liftSampleHelper(items, i, config), config, undefined, respectXML))\n } else if(!respectXML || respectXML && xml.wrapped) {\n sampleArray = [sampleFromSchemaGeneric(items, config, undefined, respectXML)]\n } else {\n return sampleFromSchemaGeneric(items, config, undefined, respectXML)\n }\n sampleArray = handleMinMaxItems(sampleArray)\n if(respectXML && xml.wrapped) {\n res[displayName] = sampleArray\n if (!isEmpty(_attr)) {\n res[displayName].push({_attr: _attr})\n }\n return res\n }\n return sampleArray\n }\n\n let value\n if (schema && Array.isArray(schema.enum)) {\n //display enum first value\n value = normalizeArray(schema.enum)[0]\n } else if(schema) {\n // display schema default\n value = primitive(schema)\n if(typeof value === \"number\") {\n let min = schema.minimum\n if(min !== undefined && min !== null) {\n if(schema.exclusiveMinimum) {\n min++\n }\n value = min\n }\n let max = schema.maximum\n if(max !== undefined && max !== null) {\n if(schema.exclusiveMaximum) {\n max--\n }\n value = max\n }\n }\n if(typeof value === \"string\") {\n if (schema.maxLength !== null && schema.maxLength !== undefined) {\n value = value.slice(0, schema.maxLength)\n }\n if (schema.minLength !== null && schema.minLength !== undefined) {\n let i = 0\n while (value.length < schema.minLength) {\n value += value[i++ % value.length]\n }\n }\n }\n } else {\n return\n }\n if (type === \"file\") {\n return\n }\n\n if(respectXML) {\n res[displayName] = !isEmpty(_attr) ? [{_attr: _attr}, value] : value\n return res\n }\n\n return value\n}\n\nexport const inferSchema = (thing) => {\n if(thing.schema)\n thing = thing.schema\n\n if(thing.properties) {\n thing.type = \"object\"\n }\n\n return thing // Hopefully this will have something schema like in it... `type` for example\n}\n\nexport const createXMLExample = (schema, config, o) => {\n const json = sampleFromSchemaGeneric(schema, config, o, true)\n if (!json) { return }\n if(typeof json === \"string\") {\n return json\n }\n return XML(json, { declaration: true, indent: \"\\t\" })\n}\n\nexport const sampleFromSchema = (schema, config, o) =>\n sampleFromSchemaGeneric(schema, config, o, false)\n\nconst resolver = (arg1, arg2, arg3) => [arg1, JSON.stringify(arg2), JSON.stringify(arg3)]\n\nexport const memoizedCreateXMLExample = memoizeN(createXMLExample, resolver)\n\nexport const memoizedSampleFromSchema = memoizeN(sampleFromSchema, resolver)\n","import * as fn from \"./fn\"\n\nexport default function () {\n return { fn }\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_asyncToGenerator_db854086__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_regenerator_4d88cac3__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_promise_047dc8e8__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_date_now_1bf78713__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_isString_e6fa8a5b__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_debounce_3540babe__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_set_b4b15ee5__[\"default\"] });","import YAML from \"js-yaml\"\nimport { Map } from \"immutable\"\nimport parseUrl from \"url-parse\"\nimport { serializeError } from \"serialize-error\"\nimport isString from \"lodash/isString\"\nimport debounce from \"lodash/debounce\"\nimport set from \"lodash/set\"\nimport { paramToValue, isEmptyValue } from \"core/utils\"\n\n// Actions conform to FSA (flux-standard-actions)\n// {type: string,payload: Any|Error, meta: obj, error: bool}\n\nexport const UPDATE_SPEC = \"spec_update_spec\"\nexport const UPDATE_URL = \"spec_update_url\"\nexport const UPDATE_JSON = \"spec_update_json\"\nexport const UPDATE_PARAM = \"spec_update_param\"\nexport const UPDATE_EMPTY_PARAM_INCLUSION = \"spec_update_empty_param_inclusion\"\nexport const VALIDATE_PARAMS = \"spec_validate_param\"\nexport const SET_RESPONSE = \"spec_set_response\"\nexport const SET_REQUEST = \"spec_set_request\"\nexport const SET_MUTATED_REQUEST = \"spec_set_mutated_request\"\nexport const LOG_REQUEST = \"spec_log_request\"\nexport const CLEAR_RESPONSE = \"spec_clear_response\"\nexport const CLEAR_REQUEST = \"spec_clear_request\"\nexport const CLEAR_VALIDATE_PARAMS = \"spec_clear_validate_param\"\nexport const UPDATE_OPERATION_META_VALUE = \"spec_update_operation_meta_value\"\nexport const UPDATE_RESOLVED = \"spec_update_resolved\"\nexport const UPDATE_RESOLVED_SUBTREE = \"spec_update_resolved_subtree\"\nexport const SET_SCHEME = \"set_scheme\"\n\nconst toStr = (str) => isString(str) ? str : \"\"\n\nexport function updateSpec(spec) {\n const cleanSpec = (toStr(spec)).replace(/\\t/g, \" \")\n if(typeof spec === \"string\") {\n return {\n type: UPDATE_SPEC,\n payload: cleanSpec\n }\n }\n}\n\nexport function updateResolved(spec) {\n return {\n type: UPDATE_RESOLVED,\n payload: spec\n }\n}\n\nexport function updateUrl(url) {\n return {type: UPDATE_URL, payload: url}\n}\n\nexport function updateJsonSpec(json) {\n return {type: UPDATE_JSON, payload: json}\n}\n\nexport const parseToJson = (str) => ({specActions, specSelectors, errActions}) => {\n let { specStr } = specSelectors\n\n let json = null\n try {\n str = str || specStr()\n errActions.clear({ source: \"parser\" })\n json = YAML.load(str)\n } catch(e) {\n // TODO: push error to state\n console.error(e)\n return errActions.newSpecErr({\n source: \"parser\",\n level: \"error\",\n message: e.reason,\n line: e.mark && e.mark.line ? e.mark.line + 1 : undefined\n })\n }\n if(json && typeof json === \"object\") {\n return specActions.updateJsonSpec(json)\n }\n return {}\n}\n\nlet hasWarnedAboutResolveSpecDeprecation = false\n\nexport const resolveSpec = (json, url) => ({specActions, specSelectors, errActions, fn: { fetch, resolve, AST = {} }, getConfigs}) => {\n if(!hasWarnedAboutResolveSpecDeprecation) {\n console.warn(`specActions.resolveSpec is deprecated since v3.10.0 and will be removed in v4.0.0; use requestResolvedSubtree instead!`)\n hasWarnedAboutResolveSpecDeprecation = true\n }\n\n const {\n modelPropertyMacro,\n parameterMacro,\n requestInterceptor,\n responseInterceptor\n } = getConfigs()\n\n if(typeof(json) === \"undefined\") {\n json = specSelectors.specJson()\n }\n if(typeof(url) === \"undefined\") {\n url = specSelectors.url()\n }\n\n let getLineNumberForPath = AST.getLineNumberForPath ? AST.getLineNumberForPath : () => undefined\n\n let specStr = specSelectors.specStr()\n\n return resolve({\n fetch,\n spec: json,\n baseDoc: url,\n modelPropertyMacro,\n parameterMacro,\n requestInterceptor,\n responseInterceptor\n }).then( ({spec, errors}) => {\n errActions.clear({\n type: \"thrown\"\n })\n if(Array.isArray(errors) && errors.length > 0) {\n let preparedErrors = errors\n .map(err => {\n console.error(err)\n err.line = err.fullPath ? getLineNumberForPath(specStr, err.fullPath) : null\n err.path = err.fullPath ? err.fullPath.join(\".\") : null\n err.level = \"error\"\n err.type = \"thrown\"\n err.source = \"resolver\"\n Object.defineProperty(err, \"message\", { enumerable: true, value: err.message })\n return err\n })\n errActions.newThrownErrBatch(preparedErrors)\n }\n\n return specActions.updateResolved(spec)\n })\n}\n\nlet requestBatch = []\n\nconst debResolveSubtrees = debounce(async () => {\n const system = requestBatch.system // Just a reference to the \"latest\" system\n\n if(!system) {\n console.error(\"debResolveSubtrees: don't have a system to operate on, aborting.\")\n return\n }\n const {\n errActions,\n errSelectors,\n fn: {\n resolveSubtree,\n fetch,\n AST = {}\n },\n specSelectors,\n specActions,\n } = system\n\n if(!resolveSubtree) {\n console.error(\"Error: Swagger-Client did not provide a `resolveSubtree` method, doing nothing.\")\n return\n }\n\n let getLineNumberForPath = AST.getLineNumberForPath ? AST.getLineNumberForPath : () => undefined\n\n const specStr = specSelectors.specStr()\n\n const {\n modelPropertyMacro,\n parameterMacro,\n requestInterceptor,\n responseInterceptor\n } = system.getConfigs()\n\n try {\n var batchResult = await requestBatch.reduce(async (prev, path) => {\n const { resultMap, specWithCurrentSubtrees } = await prev\n const { errors, spec } = await resolveSubtree(specWithCurrentSubtrees, path, {\n baseDoc: specSelectors.url(),\n modelPropertyMacro,\n parameterMacro,\n requestInterceptor,\n responseInterceptor\n })\n\n if(errSelectors.allErrors().size) {\n errActions.clearBy(err => {\n // keep if...\n return err.get(\"type\") !== \"thrown\" // it's not a thrown error\n || err.get(\"source\") !== \"resolver\" // it's not a resolver error\n || !err.get(\"fullPath\").every((key, i) => key === path[i] || path[i] === undefined) // it's not within the path we're resolving\n })\n }\n\n if(Array.isArray(errors) && errors.length > 0) {\n let preparedErrors = errors\n .map(err => {\n err.line = err.fullPath ? getLineNumberForPath(specStr, err.fullPath) : null\n err.path = err.fullPath ? err.fullPath.join(\".\") : null\n err.level = \"error\"\n err.type = \"thrown\"\n err.source = \"resolver\"\n Object.defineProperty(err, \"message\", { enumerable: true, value: err.message })\n return err\n })\n errActions.newThrownErrBatch(preparedErrors)\n }\n\n if (spec && specSelectors.isOAS3() && path[0] === \"components\" && path[1] === \"securitySchemes\") {\n // Resolve OIDC URLs if present\n await Promise.all(Object.values(spec)\n .filter((scheme) => scheme.type === \"openIdConnect\")\n .map(async (oidcScheme) => {\n const req = {\n url: oidcScheme.openIdConnectUrl,\n requestInterceptor: requestInterceptor,\n responseInterceptor: responseInterceptor\n }\n try {\n const res = await fetch(req)\n if (res instanceof Error || res.status >= 400) {\n console.error(res.statusText + \" \" + req.url)\n } else {\n oidcScheme.openIdConnectData = JSON.parse(res.text)\n }\n } catch (e) {\n console.error(e)\n }\n }))\n }\n set(resultMap, path, spec)\n set(specWithCurrentSubtrees, path, spec)\n\n return {\n resultMap,\n specWithCurrentSubtrees\n }\n }, Promise.resolve({\n resultMap: (specSelectors.specResolvedSubtree([]) || Map()).toJS(),\n specWithCurrentSubtrees: specSelectors.specJson().toJS()\n }))\n\n delete requestBatch.system\n requestBatch = [] // Clear stack\n } catch(e) {\n console.error(e)\n }\n\n specActions.updateResolvedSubtree([], batchResult.resultMap)\n}, 35)\n\nexport const requestResolvedSubtree = path => system => {\n // poor-man's array comparison\n // if this ever inadequate, this should be rewritten to use Im.List\n const isPathAlreadyBatched = requestBatch\n .map(arr => arr.join(\"@@\"))\n .indexOf(path.join(\"@@\")) > -1\n\n if(isPathAlreadyBatched) {\n return\n }\n\n requestBatch.push(path)\n requestBatch.system = system\n debResolveSubtrees()\n}\n\nexport function changeParam( path, paramName, paramIn, value, isXml ){\n return {\n type: UPDATE_PARAM,\n payload:{ path, value, paramName, paramIn, isXml }\n }\n}\n\nexport function changeParamByIdentity( pathMethod, param, value, isXml ){\n return {\n type: UPDATE_PARAM,\n payload:{ path: pathMethod, param, value, isXml }\n }\n}\n\nexport const updateResolvedSubtree = (path, value) => {\n return {\n type: UPDATE_RESOLVED_SUBTREE,\n payload: { path, value }\n }\n}\n\nexport const invalidateResolvedSubtreeCache = () => {\n return {\n type: UPDATE_RESOLVED_SUBTREE,\n payload: {\n path: [],\n value: Map()\n }\n }\n}\n\nexport const validateParams = ( payload, isOAS3 ) =>{\n return {\n type: VALIDATE_PARAMS,\n payload:{\n pathMethod: payload,\n isOAS3\n }\n }\n}\n\nexport const updateEmptyParamInclusion = ( pathMethod, paramName, paramIn, includeEmptyValue ) =>{\n return {\n type: UPDATE_EMPTY_PARAM_INCLUSION,\n payload:{\n pathMethod,\n paramName,\n paramIn,\n includeEmptyValue\n }\n }\n}\n\nexport function clearValidateParams( payload ){\n return {\n type: CLEAR_VALIDATE_PARAMS,\n payload:{ pathMethod: payload }\n }\n}\n\nexport function changeConsumesValue(path, value) {\n return {\n type: UPDATE_OPERATION_META_VALUE,\n payload:{ path, value, key: \"consumes_value\" }\n }\n}\n\nexport function changeProducesValue(path, value) {\n return {\n type: UPDATE_OPERATION_META_VALUE,\n payload:{ path, value, key: \"produces_value\" }\n }\n}\n\nexport const setResponse = ( path, method, res ) => {\n return {\n payload: { path, method, res },\n type: SET_RESPONSE\n }\n}\n\nexport const setRequest = ( path, method, req ) => {\n return {\n payload: { path, method, req },\n type: SET_REQUEST\n }\n}\n\nexport const setMutatedRequest = ( path, method, req ) => {\n return {\n payload: { path, method, req },\n type: SET_MUTATED_REQUEST\n }\n}\n\n// This is for debugging, remove this comment if you depend on this action\nexport const logRequest = (req) => {\n return {\n payload: req,\n type: LOG_REQUEST\n }\n}\n\n// Actually fire the request via fn.execute\n// (For debugging) and ease of testing\nexport const executeRequest = (req) =>\n ({fn, specActions, specSelectors, getConfigs, oas3Selectors}) => {\n let { pathName, method, operation } = req\n let { requestInterceptor, responseInterceptor } = getConfigs()\n\n\n let op = operation.toJS()\n\n // ensure that explicitly-included params are in the request\n\n if (operation && operation.get(\"parameters\")) {\n operation.get(\"parameters\")\n .filter(param => param && param.get(\"allowEmptyValue\") === true)\n .forEach(param => {\n if (specSelectors.parameterInclusionSettingFor([pathName, method], param.get(\"name\"), param.get(\"in\"))) {\n req.parameters = req.parameters || {}\n const paramValue = paramToValue(param, req.parameters)\n\n // if the value is falsy or an empty Immutable iterable...\n if(!paramValue || (paramValue && paramValue.size === 0)) {\n // set it to empty string, so Swagger Client will treat it as\n // present but empty.\n req.parameters[param.get(\"name\")] = \"\"\n }\n }\n })\n }\n\n // if url is relative, parseUrl makes it absolute by inferring from `window.location`\n req.contextUrl = parseUrl(specSelectors.url()).toString()\n\n if(op && op.operationId) {\n req.operationId = op.operationId\n } else if(op && pathName && method) {\n req.operationId = fn.opId(op, pathName, method)\n }\n\n if(specSelectors.isOAS3()) {\n const namespace = `${pathName}:${method}`\n\n req.server = oas3Selectors.selectedServer(namespace) || oas3Selectors.selectedServer()\n\n const namespaceVariables = oas3Selectors.serverVariables({\n server: req.server,\n namespace\n }).toJS()\n const globalVariables = oas3Selectors.serverVariables({ server: req.server }).toJS()\n\n req.serverVariables = Object.keys(namespaceVariables).length ? namespaceVariables : globalVariables\n\n req.requestContentType = oas3Selectors.requestContentType(pathName, method)\n req.responseContentType = oas3Selectors.responseContentType(pathName, method) || \"*/*\"\n const requestBody = oas3Selectors.requestBodyValue(pathName, method)\n const requestBodyInclusionSetting = oas3Selectors.requestBodyInclusionSetting(pathName, method)\n\n if(requestBody && requestBody.toJS) {\n req.requestBody = requestBody\n .map(\n (val) => {\n if (Map.isMap(val)) {\n return val.get(\"value\")\n }\n return val\n }\n )\n .filter(\n (value, key) => (Array.isArray(value)\n ? value.length !== 0\n : !isEmptyValue(value)\n ) || requestBodyInclusionSetting.get(key)\n )\n .toJS()\n } else {\n req.requestBody = requestBody\n }\n }\n\n let parsedRequest = Object.assign({}, req)\n parsedRequest = fn.buildRequest(parsedRequest)\n\n specActions.setRequest(req.pathName, req.method, parsedRequest)\n\n let requestInterceptorWrapper = async (r) => {\n let mutatedRequest = await requestInterceptor.apply(this, [r])\n let parsedMutatedRequest = Object.assign({}, mutatedRequest)\n specActions.setMutatedRequest(req.pathName, req.method, parsedMutatedRequest)\n return mutatedRequest\n }\n\n req.requestInterceptor = requestInterceptorWrapper\n req.responseInterceptor = responseInterceptor\n\n // track duration of request\n const startTime = Date.now()\n\n\n return fn.execute(req)\n .then( res => {\n res.duration = Date.now() - startTime\n specActions.setResponse(req.pathName, req.method, res)\n } )\n .catch(\n err => {\n // console.error(err)\n if(err.message === \"Failed to fetch\") {\n err.name = \"\"\n err.message = \"**Failed to fetch.** \\n**Possible Reasons:** \\n - CORS \\n - Network Failure \\n - URL scheme must be \\\"http\\\" or \\\"https\\\" for CORS request.\"\n }\n specActions.setResponse(req.pathName, req.method, {\n error: true, err: serializeError(err)\n })\n }\n )\n }\n\n\n// I'm using extras as a way to inject properties into the final, `execute` method - It's not great. Anyone have a better idea? @ponelat\nexport const execute = ( { path, method, ...extras }={} ) => (system) => {\n let { fn:{fetch}, specSelectors, specActions } = system\n let spec = specSelectors.specJsonWithResolvedSubtrees().toJS()\n let scheme = specSelectors.operationScheme(path, method)\n let { requestContentType, responseContentType } = specSelectors.contentTypeValues([path, method]).toJS()\n let isXml = /xml/i.test(requestContentType)\n let parameters = specSelectors.parameterValues([path, method], isXml).toJS()\n\n return specActions.executeRequest({\n ...extras,\n fetch,\n spec,\n pathName: path,\n method, parameters,\n requestContentType,\n scheme,\n responseContentType\n })\n}\n\nexport function clearResponse (path, method) {\n return {\n type: CLEAR_RESPONSE,\n payload:{ path, method }\n }\n}\n\nexport function clearRequest (path, method) {\n return {\n type: CLEAR_REQUEST,\n payload:{ path, method }\n }\n}\n\nexport function setScheme (scheme, path, method) {\n return {\n type: SET_SCHEME,\n payload: { scheme, path, method }\n }\n}\n","import reducers from \"./reducers\"\nimport * as actions from \"./actions\"\nimport * as selectors from \"./selectors\"\nimport * as wrapActions from \"./wrap-actions\"\n\nexport default function() {\n return {\n statePlugins: {\n spec: {\n wrapActions,\n reducers,\n actions,\n selectors\n }\n }\n }\n}\n","import { fromJS, List } from \"immutable\"\nimport { fromJSOrdered, validateParam, paramToValue } from \"core/utils\"\nimport win from \"../../window\"\n\n// selector-in-reducer is suboptimal, but `operationWithMeta` is more of a helper\nimport {\n specJsonWithResolvedSubtrees,\n parameterValues,\n parameterInclusionSettingFor,\n} from \"./selectors\"\n\nimport {\n UPDATE_SPEC,\n UPDATE_URL,\n UPDATE_JSON,\n UPDATE_PARAM,\n UPDATE_EMPTY_PARAM_INCLUSION,\n VALIDATE_PARAMS,\n SET_RESPONSE,\n SET_REQUEST,\n SET_MUTATED_REQUEST,\n UPDATE_RESOLVED,\n UPDATE_RESOLVED_SUBTREE,\n UPDATE_OPERATION_META_VALUE,\n CLEAR_RESPONSE,\n CLEAR_REQUEST,\n CLEAR_VALIDATE_PARAMS,\n SET_SCHEME\n} from \"./actions\"\nimport { paramToIdentifier } from \"../../utils\"\n\nexport default {\n\n [UPDATE_SPEC]: (state, action) => {\n return (typeof action.payload === \"string\")\n ? state.set(\"spec\", action.payload)\n : state\n },\n\n [UPDATE_URL]: (state, action) => {\n return state.set(\"url\", action.payload+\"\")\n },\n\n [UPDATE_JSON]: (state, action) => {\n return state.set(\"json\", fromJSOrdered(action.payload))\n },\n\n [UPDATE_RESOLVED]: (state, action) => {\n return state.setIn([\"resolved\"], fromJSOrdered(action.payload))\n },\n\n [UPDATE_RESOLVED_SUBTREE]: (state, action) => {\n const { value, path } = action.payload\n return state.setIn([\"resolvedSubtrees\", ...path], fromJSOrdered(value))\n },\n\n [UPDATE_PARAM]: ( state, {payload} ) => {\n let { path: pathMethod, paramName, paramIn, param, value, isXml } = payload\n\n let paramKey = param ? paramToIdentifier(param) : `${paramIn}.${paramName}`\n\n const valueKey = isXml ? \"value_xml\" : \"value\"\n\n return state.setIn(\n [\"meta\", \"paths\", ...pathMethod, \"parameters\", paramKey, valueKey],\n value\n )\n },\n\n [UPDATE_EMPTY_PARAM_INCLUSION]: ( state, {payload} ) => {\n let { pathMethod, paramName, paramIn, includeEmptyValue } = payload\n\n if(!paramName || !paramIn) {\n console.warn(\"Warning: UPDATE_EMPTY_PARAM_INCLUSION could not generate a paramKey.\")\n return state\n }\n\n const paramKey = `${paramIn}.${paramName}`\n\n return state.setIn(\n [\"meta\", \"paths\", ...pathMethod, \"parameter_inclusions\", paramKey],\n includeEmptyValue\n )\n },\n\n [VALIDATE_PARAMS]: ( state, { payload: { pathMethod, isOAS3 } } ) => {\n const op = specJsonWithResolvedSubtrees(state).getIn([\"paths\", ...pathMethod])\n const paramValues = parameterValues(state, pathMethod).toJS()\n\n return state.updateIn([\"meta\", \"paths\", ...pathMethod, \"parameters\"], fromJS({}), paramMeta => {\n return op.get(\"parameters\", List()).reduce((res, param) => {\n const value = paramToValue(param, paramValues)\n const isEmptyValueIncluded = parameterInclusionSettingFor(state, pathMethod, param.get(\"name\"), param.get(\"in\"))\n const errors = validateParam(param, value, {\n bypassRequiredCheck: isEmptyValueIncluded,\n isOAS3,\n })\n return res.setIn([paramToIdentifier(param), \"errors\"], fromJS(errors))\n }, paramMeta)\n })\n },\n [CLEAR_VALIDATE_PARAMS]: ( state, { payload: { pathMethod } } ) => {\n return state.updateIn( [ \"meta\", \"paths\", ...pathMethod, \"parameters\" ], fromJS([]), parameters => {\n return parameters.map(param => param.set(\"errors\", fromJS([])))\n })\n },\n\n [SET_RESPONSE]: (state, { payload: { res, path, method } } ) =>{\n let result\n if ( res.error ) {\n result = Object.assign({\n error: true,\n name: res.err.name,\n message: res.err.message,\n statusCode: res.err.statusCode\n }, res.err.response)\n } else {\n result = res\n }\n\n // Ensure headers\n result.headers = result.headers || {}\n\n let newState = state.setIn( [ \"responses\", path, method ], fromJSOrdered(result) )\n\n // ImmutableJS messes up Blob. Needs to reset its value.\n if (win.Blob && res.data instanceof win.Blob) {\n newState = newState.setIn( [ \"responses\", path, method, \"text\" ], res.data)\n }\n return newState\n },\n\n [SET_REQUEST]: (state, { payload: { req, path, method } } ) =>{\n return state.setIn( [ \"requests\", path, method ], fromJSOrdered(req))\n },\n\n [SET_MUTATED_REQUEST]: (state, { payload: { req, path, method } } ) =>{\n return state.setIn( [ \"mutatedRequests\", path, method ], fromJSOrdered(req))\n },\n\n [UPDATE_OPERATION_META_VALUE]: (state, { payload: { path, value, key } }) => {\n // path is a pathMethod tuple... can't change the name now.\n let operationPath = [\"paths\", ...path]\n let metaPath = [\"meta\", \"paths\", ...path]\n\n if(\n !state.getIn([\"json\", ...operationPath])\n && !state.getIn([\"resolved\", ...operationPath])\n && !state.getIn([\"resolvedSubtrees\", ...operationPath])\n ) {\n // do nothing if the operation does not exist\n return state\n }\n\n return state.setIn([...metaPath, key], fromJS(value))\n },\n\n [CLEAR_RESPONSE]: (state, { payload: { path, method } } ) =>{\n return state.deleteIn( [ \"responses\", path, method ])\n },\n\n [CLEAR_REQUEST]: (state, { payload: { path, method } } ) =>{\n return state.deleteIn( [ \"requests\", path, method ])\n },\n\n [SET_SCHEME]: (state, { payload: { scheme, path, method } } ) =>{\n if ( path && method ) {\n return state.setIn( [ \"scheme\", path, method ], scheme)\n }\n\n if (!path && !method) {\n return state.setIn( [ \"scheme\", \"_defaultScheme\" ], scheme)\n }\n\n }\n\n}\n","import { createSelector } from \"reselect\"\nimport { sorters } from \"core/utils\"\nimport { fromJS, Set, Map, OrderedMap, List } from \"immutable\"\nimport { paramToIdentifier } from \"../../utils\"\n\nconst DEFAULT_TAG = \"default\"\n\nconst OPERATION_METHODS = [\n \"get\", \"put\", \"post\", \"delete\", \"options\", \"head\", \"patch\", \"trace\"\n]\n\nconst state = state => {\n return state || Map()\n}\n\nexport const lastError = createSelector(\n state,\n spec => spec.get(\"lastError\")\n)\n\nexport const url = createSelector(\n state,\n spec => spec.get(\"url\")\n)\n\nexport const specStr = createSelector(\n state,\n spec => spec.get(\"spec\") || \"\"\n)\n\nexport const specSource = createSelector(\n state,\n spec => spec.get(\"specSource\") || \"not-editor\"\n)\n\nexport const specJson = createSelector(\n state,\n spec => spec.get(\"json\", Map())\n)\n\nexport const specResolved = createSelector(\n state,\n spec => spec.get(\"resolved\", Map())\n)\n\nexport const specResolvedSubtree = (state, path) => {\n return state.getIn([\"resolvedSubtrees\", ...path], undefined)\n}\n\nconst mergerFn = (oldVal, newVal) => {\n if(Map.isMap(oldVal) && Map.isMap(newVal)) {\n if(newVal.get(\"$$ref\")) {\n // resolver artifacts indicated that this key was directly resolved\n // so we should drop the old value entirely\n return newVal\n }\n\n return OrderedMap().mergeWith(\n mergerFn,\n oldVal,\n newVal\n )\n }\n\n return newVal\n}\n\nexport const specJsonWithResolvedSubtrees = createSelector(\n state,\n spec => OrderedMap().mergeWith(\n mergerFn,\n spec.get(\"json\"),\n spec.get(\"resolvedSubtrees\")\n )\n)\n\n// Default Spec ( as an object )\nexport const spec = state => {\n let res = specJson(state)\n return res\n}\n\nexport const isOAS3 = createSelector(\n // isOAS3 is stubbed out here to work around an issue with injecting more selectors\n // in the OAS3 plugin, and to ensure that the function is always available.\n // It's not perfect, but our hybrid (core+plugin code) implementation for OAS3\n // needs this. //KS\n spec,\n\t() => false\n)\n\nexport const info = createSelector(\n spec,\n\tspec => returnSelfOrNewMap(spec && spec.get(\"info\"))\n)\n\nexport const externalDocs = createSelector(\n spec,\n\tspec => returnSelfOrNewMap(spec && spec.get(\"externalDocs\"))\n)\n\nexport const version = createSelector(\n\tinfo,\n\tinfo => info && info.get(\"version\")\n)\n\nexport const semver = createSelector(\n\tversion,\n\tversion => /v?([0-9]*)\\.([0-9]*)\\.([0-9]*)/i.exec(version).slice(1)\n)\n\nexport const paths = createSelector(\n\tspecJsonWithResolvedSubtrees,\n\tspec => spec.get(\"paths\")\n)\n\nexport const operations = createSelector(\n paths,\n paths => {\n if(!paths || paths.size < 1)\n return List()\n\n let list = List()\n\n if(!paths || !paths.forEach) {\n return List()\n }\n\n paths.forEach((path, pathName) => {\n if(!path || !path.forEach) {\n return {}\n }\n path.forEach((operation, method) => {\n if(OPERATION_METHODS.indexOf(method) < 0) {\n return\n }\n list = list.push(fromJS({\n path: pathName,\n method,\n operation,\n id: `${method}-${pathName}`\n }))\n })\n })\n\n return list\n }\n)\n\nexport const consumes = createSelector(\n spec,\n spec => Set(spec.get(\"consumes\"))\n)\n\nexport const produces = createSelector(\n spec,\n spec => Set(spec.get(\"produces\"))\n)\n\nexport const security = createSelector(\n spec,\n spec => spec.get(\"security\", List())\n)\n\nexport const securityDefinitions = createSelector(\n spec,\n spec => spec.get(\"securityDefinitions\")\n)\n\n\nexport const findDefinition = ( state, name ) => {\n const resolvedRes = state.getIn([\"resolvedSubtrees\", \"definitions\", name], null)\n const unresolvedRes = state.getIn([\"json\", \"definitions\", name], null)\n return resolvedRes || unresolvedRes || null\n}\n\nexport const definitions = createSelector(\n spec,\n spec => {\n const res = spec.get(\"definitions\")\n return Map.isMap(res) ? res : Map()\n }\n)\n\nexport const basePath = createSelector(\n spec,\n spec => spec.get(\"basePath\")\n)\n\nexport const host = createSelector(\n spec,\n spec => spec.get(\"host\")\n)\n\nexport const schemes = createSelector(\n spec,\n spec => spec.get(\"schemes\", Map())\n)\n\nexport const operationsWithRootInherited = createSelector(\n operations,\n consumes,\n produces,\n (operations, consumes, produces) => {\n return operations.map( ops => ops.update(\"operation\", op => {\n if(op) {\n if(!Map.isMap(op)) { return }\n return op.withMutations( op => {\n if ( !op.get(\"consumes\") ) {\n op.update(\"consumes\", a => Set(a).merge(consumes))\n }\n if ( !op.get(\"produces\") ) {\n op.update(\"produces\", a => Set(a).merge(produces))\n }\n return op\n })\n } else {\n // return something with Immutable methods\n return Map()\n }\n\n }))\n }\n)\n\nexport const tags = createSelector(\n spec,\n json => {\n const tags = json.get(\"tags\", List())\n return List.isList(tags) ? tags.filter(tag => Map.isMap(tag)) : List()\n }\n)\n\nexport const tagDetails = (state, tag) => {\n let currentTags = tags(state) || List()\n return currentTags.filter(Map.isMap).find(t => t.get(\"name\") === tag, Map())\n}\n\nexport const operationsWithTags = createSelector(\n operationsWithRootInherited,\n tags,\n (operations, tags) => {\n return operations.reduce( (taggedMap, op) => {\n let tags = Set(op.getIn([\"operation\",\"tags\"]))\n if(tags.count() < 1)\n return taggedMap.update(DEFAULT_TAG, List(), ar => ar.push(op))\n return tags.reduce( (res, tag) => res.update(tag, List(), (ar) => ar.push(op)), taggedMap )\n }, tags.reduce( (taggedMap, tag) => {\n return taggedMap.set(tag.get(\"name\"), List())\n } , OrderedMap()))\n }\n)\n\nexport const taggedOperations = (state) => ({ getConfigs }) => {\n let { tagsSorter, operationsSorter } = getConfigs()\n return operationsWithTags(state)\n .sortBy(\n (val, key) => key, // get the name of the tag to be passed to the sorter\n (tagA, tagB) => {\n let sortFn = (typeof tagsSorter === \"function\" ? tagsSorter : sorters.tagsSorter[ tagsSorter ])\n return (!sortFn ? null : sortFn(tagA, tagB))\n }\n )\n .map((ops, tag) => {\n let sortFn = (typeof operationsSorter === \"function\" ? operationsSorter : sorters.operationsSorter[ operationsSorter ])\n let operations = (!sortFn ? ops : ops.sort(sortFn))\n\n return Map({ tagDetails: tagDetails(state, tag), operations: operations })\n })\n}\n\nexport const responses = createSelector(\n state,\n state => state.get( \"responses\", Map() )\n)\n\nexport const requests = createSelector(\n state,\n state => state.get( \"requests\", Map() )\n)\n\nexport const mutatedRequests = createSelector(\n state,\n state => state.get( \"mutatedRequests\", Map() )\n)\n\nexport const responseFor = (state, path, method) => {\n return responses(state).getIn([path, method], null)\n}\n\nexport const requestFor = (state, path, method) => {\n return requests(state).getIn([path, method], null)\n}\n\nexport const mutatedRequestFor = (state, path, method) => {\n return mutatedRequests(state).getIn([path, method], null)\n}\n\nexport const allowTryItOutFor = () => {\n // This is just a hook for now.\n return true\n}\n\nexport const parameterWithMetaByIdentity = (state, pathMethod, param) => {\n const opParams = specJsonWithResolvedSubtrees(state).getIn([\"paths\", ...pathMethod, \"parameters\"], OrderedMap())\n const metaParams = state.getIn([\"meta\", \"paths\", ...pathMethod, \"parameters\"], OrderedMap())\n\n const mergedParams = opParams.map((currentParam) => {\n const inNameKeyedMeta = metaParams.get(`${param.get(\"in\")}.${param.get(\"name\")}`)\n const hashKeyedMeta = metaParams.get(`${param.get(\"in\")}.${param.get(\"name\")}.hash-${param.hashCode()}`)\n return OrderedMap().merge(\n currentParam,\n inNameKeyedMeta,\n hashKeyedMeta\n )\n })\n return mergedParams.find(curr => curr.get(\"in\") === param.get(\"in\") && curr.get(\"name\") === param.get(\"name\"), OrderedMap())\n}\n\nexport const parameterInclusionSettingFor = (state, pathMethod, paramName, paramIn) => {\n const paramKey = `${paramIn}.${paramName}`\n return state.getIn([\"meta\", \"paths\", ...pathMethod, \"parameter_inclusions\", paramKey], false)\n}\n\n\nexport const parameterWithMeta = (state, pathMethod, paramName, paramIn) => {\n const opParams = specJsonWithResolvedSubtrees(state).getIn([\"paths\", ...pathMethod, \"parameters\"], OrderedMap())\n const currentParam = opParams.find(param => param.get(\"in\") === paramIn && param.get(\"name\") === paramName, OrderedMap())\n return parameterWithMetaByIdentity(state, pathMethod, currentParam)\n}\n\nexport const operationWithMeta = (state, path, method) => {\n const op = specJsonWithResolvedSubtrees(state).getIn([\"paths\", path, method], OrderedMap())\n const meta = state.getIn([\"meta\", \"paths\", path, method], OrderedMap())\n\n const mergedParams = op.get(\"parameters\", List()).map((param) => {\n return parameterWithMetaByIdentity(state, [path, method], param)\n })\n\n return OrderedMap()\n .merge(op, meta)\n .set(\"parameters\", mergedParams)\n}\n\n// Get the parameter value by parameter name\nexport function getParameter(state, pathMethod, name, inType) {\n pathMethod = pathMethod || []\n let params = state.getIn([\"meta\", \"paths\", ...pathMethod, \"parameters\"], fromJS([]))\n return params.find( (p) => {\n return Map.isMap(p) && p.get(\"name\") === name && p.get(\"in\") === inType\n }) || Map() // Always return a map\n}\n\nexport const hasHost = createSelector(\n spec,\n spec => {\n const host = spec.get(\"host\")\n return typeof host === \"string\" && host.length > 0 && host[0] !== \"/\"\n }\n)\n\n// Get the parameter values, that the user filled out\nexport function parameterValues(state, pathMethod, isXml) {\n pathMethod = pathMethod || []\n let paramValues = operationWithMeta(state, ...pathMethod).get(\"parameters\", List())\n return paramValues.reduce( (hash, p) => {\n let value = isXml && p.get(\"in\") === \"body\" ? p.get(\"value_xml\") : p.get(\"value\")\n return hash.set(paramToIdentifier(p, { allowHashes: false }), value)\n }, fromJS({}))\n}\n\n// True if any parameter includes `in: ?`\nexport function parametersIncludeIn(parameters, inValue=\"\") {\n if(List.isList(parameters)) {\n return parameters.some( p => Map.isMap(p) && p.get(\"in\") === inValue )\n }\n}\n\n// True if any parameter includes `type: ?`\nexport function parametersIncludeType(parameters, typeValue=\"\") {\n if(List.isList(parameters)) {\n return parameters.some( p => Map.isMap(p) && p.get(\"type\") === typeValue )\n }\n}\n\n// Get the consumes/produces value that the user selected\nexport function contentTypeValues(state, pathMethod) {\n pathMethod = pathMethod || []\n let op = specJsonWithResolvedSubtrees(state).getIn([\"paths\", ...pathMethod], fromJS({}))\n let meta = state.getIn([\"meta\", \"paths\", ...pathMethod], fromJS({}))\n let producesValue = currentProducesFor(state, pathMethod)\n\n const parameters = op.get(\"parameters\") || new List()\n\n const requestContentType = (\n meta.get(\"consumes_value\") ? meta.get(\"consumes_value\")\n : parametersIncludeType(parameters, \"file\") ? \"multipart/form-data\"\n : parametersIncludeType(parameters, \"formData\") ? \"application/x-www-form-urlencoded\"\n : undefined\n )\n\n return fromJS({\n requestContentType,\n responseContentType: producesValue\n })\n}\n\n// Get the currently selected produces value for an operation\nexport function currentProducesFor(state, pathMethod) {\n pathMethod = pathMethod || []\n\n const operation = specJsonWithResolvedSubtrees(state).getIn([ \"paths\", ...pathMethod], null)\n\n if(operation === null) {\n // return nothing if the operation does not exist\n return\n }\n\n const currentProducesValue = state.getIn([\"meta\", \"paths\", ...pathMethod, \"produces_value\"], null)\n const firstProducesArrayItem = operation.getIn([\"produces\", 0], null)\n\n return currentProducesValue || firstProducesArrayItem || \"application/json\"\n\n}\n\n// Get the produces options for an operation\nexport function producesOptionsFor(state, pathMethod) {\n pathMethod = pathMethod || []\n\n const spec = specJsonWithResolvedSubtrees(state)\n const operation = spec.getIn([ \"paths\", ...pathMethod], null)\n\n if(operation === null) {\n // return nothing if the operation does not exist\n return\n }\n\n const [path] = pathMethod\n\n const operationProduces = operation.get(\"produces\", null)\n const pathItemProduces = spec.getIn([\"paths\", path, \"produces\"], null)\n const globalProduces = spec.getIn([\"produces\"], null)\n\n return operationProduces || pathItemProduces || globalProduces\n}\n\n// Get the consumes options for an operation\nexport function consumesOptionsFor(state, pathMethod) {\n pathMethod = pathMethod || []\n\n const spec = specJsonWithResolvedSubtrees(state)\n const operation = spec.getIn([\"paths\", ...pathMethod], null)\n\n if (operation === null) {\n // return nothing if the operation does not exist\n return\n }\n\n const [path] = pathMethod\n\n const operationConsumes = operation.get(\"consumes\", null)\n const pathItemConsumes = spec.getIn([\"paths\", path, \"consumes\"], null)\n const globalConsumes = spec.getIn([\"consumes\"], null)\n\n return operationConsumes || pathItemConsumes || globalConsumes\n}\n\nexport const operationScheme = ( state, path, method ) => {\n let url = state.get(\"url\")\n let matchResult = url.match(/^([a-z][a-z0-9+\\-.]*):/)\n let urlScheme = Array.isArray(matchResult) ? matchResult[1] : null\n\n return state.getIn([\"scheme\", path, method]) || state.getIn([\"scheme\", \"_defaultScheme\"]) || urlScheme || \"\"\n}\n\nexport const canExecuteScheme = ( state, path, method ) => {\n return [\"http\", \"https\"].indexOf(operationScheme(state, path, method)) > -1\n}\n\nexport const validateBeforeExecute = ( state, pathMethod ) => {\n pathMethod = pathMethod || []\n let paramValues = state.getIn([\"meta\", \"paths\", ...pathMethod, \"parameters\"], fromJS([]))\n let isValid = true\n\n paramValues.forEach( (p) => {\n let errors = p.get(\"errors\")\n if ( errors && errors.count() ) {\n isValid = false\n }\n })\n\n return isValid\n}\n\nexport const getOAS3RequiredRequestBodyContentType = (state, pathMethod) => {\n let requiredObj = {\n requestBody: false,\n requestContentType: {}\n }\n let requestBody = state.getIn([\"resolvedSubtrees\", \"paths\", ...pathMethod, \"requestBody\"], fromJS([]))\n if (requestBody.size < 1) {\n return requiredObj\n }\n if (requestBody.getIn([\"required\"])) {\n requiredObj.requestBody = requestBody.getIn([\"required\"])\n }\n requestBody.getIn([\"content\"]).entrySeq().forEach((contentType) => { // e.g application/json\n const key = contentType[0]\n if (contentType[1].getIn([\"schema\", \"required\"])) {\n const val = contentType[1].getIn([\"schema\", \"required\"]).toJS()\n requiredObj.requestContentType[key] = val\n }\n })\n return requiredObj\n}\n\nexport const isMediaTypeSchemaPropertiesEqual = ( state, pathMethod, currentMediaType, targetMediaType) => {\n if((currentMediaType || targetMediaType) && currentMediaType === targetMediaType ) {\n return true\n }\n let requestBodyContent = state.getIn([\"resolvedSubtrees\", \"paths\", ...pathMethod, \"requestBody\", \"content\"], fromJS([]))\n if (requestBodyContent.size < 2 || !currentMediaType || !targetMediaType) {\n // nothing to compare\n return false\n }\n let currentMediaTypeSchemaProperties = requestBodyContent.getIn([currentMediaType, \"schema\", \"properties\"], fromJS([]))\n let targetMediaTypeSchemaProperties = requestBodyContent.getIn([targetMediaType, \"schema\", \"properties\"], fromJS([]))\n return !!currentMediaTypeSchemaProperties.equals(targetMediaTypeSchemaProperties)\n}\n\nfunction returnSelfOrNewMap(obj) {\n // returns obj if obj is an Immutable map, else returns a new Map\n return Map.isMap(obj) ? obj : new Map()\n}\n","import get from \"lodash/get\"\n\nexport const updateSpec = (ori, {specActions}) => (...args) => {\n ori(...args)\n specActions.parseToJson(...args)\n}\n\nexport const updateJsonSpec = (ori, {specActions}) => (...args) => {\n ori(...args)\n\n specActions.invalidateResolvedSubtreeCache()\n\n // Trigger resolution of any path-level $refs.\n const [json] = args\n const pathItems = get(json, [\"paths\"]) || {}\n const pathItemKeys = Object.keys(pathItems)\n\n pathItemKeys.forEach(k => {\n const val = get(pathItems, [k])\n\n if(val.$ref) {\n specActions.requestResolvedSubtree([\"paths\", k])\n }\n })\n\n // Trigger resolution of any securitySchemes-level $refs.\n specActions.requestResolvedSubtree([\"components\", \"securitySchemes\"])\n}\n\n// Log the request ( just for debugging, shouldn't affect prod )\nexport const executeRequest = (ori, { specActions }) => (req) => {\n specActions.logRequest(req)\n return ori(req)\n}\n\nexport const validateParams = (ori, { specSelectors }) => (req) => {\n return ori(req, specSelectors.isOAS3())\n}\n","export const loaded = (ori, system) => (...args) => {\n ori(...args)\n const value = system.getConfigs().withCredentials\n \n if(value !== undefined) {\n system.fn.fetch.withCredentials = typeof value === \"string\" ? (value === \"true\") : !!value\n }\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_swagger_client_es_resolver_f879c638__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"buildRequest\"]: () => __WEBPACK_EXTERNAL_MODULE_swagger_client_es_execute_d486d3d6__.buildRequest, [\"execute\"]: () => __WEBPACK_EXTERNAL_MODULE_swagger_client_es_execute_d486d3d6__.execute });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_swagger_client_es_http_69655560__[\"default\"], [\"makeHttp\"]: () => __WEBPACK_EXTERNAL_MODULE_swagger_client_es_http_69655560__.makeHttp, [\"serializeRes\"]: () => __WEBPACK_EXTERNAL_MODULE_swagger_client_es_http_69655560__.serializeRes });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_swagger_client_es_subtree_resolver_741cb9d9__[\"default\"] });","import resolve from \"swagger-client/es/resolver\"\nimport { execute, buildRequest } from \"swagger-client/es/execute\"\nimport Http, { makeHttp, serializeRes } from \"swagger-client/es/http\"\nimport resolveSubtree from \"swagger-client/es/subtree-resolver\"\nimport { opId } from \"swagger-client/es/helpers\"\nimport { loaded } from \"./configs-wrap-actions\"\n\nexport default function({ configs, getConfigs }) {\n return {\n fn: {\n fetch: makeHttp(Http, configs.preFetch, configs.postFetch),\n buildRequest,\n execute,\n resolve,\n resolveSubtree: (obj, path, opts, ...rest) => {\n if(opts === undefined) {\n const freshConfigs = getConfigs()\n opts = {\n modelPropertyMacro: freshConfigs.modelPropertyMacro,\n parameterMacro: freshConfigs.parameterMacro,\n requestInterceptor: freshConfigs.requestInterceptor,\n responseInterceptor: freshConfigs.responseInterceptor\n }\n }\n\n return resolveSubtree(obj, path, opts, ...rest)\n },\n serializeRes,\n opId\n },\n statePlugins: {\n configs: {\n wrapActions: {\n loaded,\n }\n }\n },\n }\n}\n","import { shallowEqualKeys } from \"core/utils\"\n\nexport default function() {\n return {\n fn: { shallowEqualKeys }\n }\n}\n","export const getDisplayName = (WrappedComponent) => WrappedComponent.displayName || WrappedComponent.name || \"Component\"\n","import { memoize } from \"core/utils\"\n\nimport { getComponent, render, withMappedContainer } from \"./root-injects\"\nimport { getDisplayName } from \"./fn\"\nimport memoizeN from \"../../../helpers/memoizeN\"\n\nconst memoizeForGetComponent = (fn) => {\n const resolver = (...args) => JSON.stringify(args)\n return memoize(fn, resolver)\n}\n\nconst memoizeForWithMappedContainer = (fn) => {\n const resolver = (...args) => args\n return memoizeN(fn, resolver)\n}\n\nconst viewPlugin = ({getComponents, getStore, getSystem}) => {\n // getComponent should be passed into makeMappedContainer, _already_ memoized... otherwise we have a big performance hit ( think, really big )\n const memGetComponent = memoizeForGetComponent(getComponent(getSystem, getStore, getComponents))\n const memMakeMappedContainer = memoizeForWithMappedContainer(withMappedContainer(getSystem, getStore, memGetComponent))\n\n return {\n rootInjects: {\n getComponent: memGetComponent,\n makeMappedContainer: memMakeMappedContainer,\n render: render(getSystem, getStore, getComponent, getComponents),\n },\n fn: {\n getDisplayName,\n },\n }\n}\n\nexport default viewPlugin\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_dom_7dac9eee__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"Provider\"]: () => __WEBPACK_EXTERNAL_MODULE_react_redux_87be03b0__.Provider, [\"connect\"]: () => __WEBPACK_EXTERNAL_MODULE_react_redux_87be03b0__.connect });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_omit_d930e0f3__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_identity_75ffe4a7__[\"default\"] });","import React, { Component } from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { compose } from \"redux\"\nimport { connect, Provider } from \"react-redux\"\nimport omit from \"lodash/omit\"\nimport identity from \"lodash/identity\"\n\nconst withSystem = (getSystem) => (WrappedComponent) => {\n const { fn } = getSystem()\n\n class WithSystem extends Component {\n render() {\n return \n }\n }\n WithSystem.displayName = `WithSystem(${fn.getDisplayName(WrappedComponent)})`\n return WithSystem\n}\n\nconst withRoot = (getSystem, reduxStore) => (WrappedComponent) => {\n const { fn } = getSystem()\n\n class WithRoot extends Component {\n render() {\n return (\n \n \n \n )\n }\n }\n WithRoot.displayName = `WithRoot(${fn.getDisplayName(WrappedComponent)})`\n return WithRoot\n}\n\nconst withConnect = (getSystem, WrappedComponent, reduxStore) => {\n const mapStateToProps = (state, ownProps) => {\n const props = {...ownProps, ...getSystem()}\n const customMapStateToProps = WrappedComponent.prototype?.mapStateToProps || (state => ({state}))\n return customMapStateToProps(state, props)\n }\n\n return compose(\n reduxStore ? withRoot(getSystem, reduxStore) : identity,\n connect(mapStateToProps),\n withSystem(getSystem),\n )(WrappedComponent)\n}\n\nconst handleProps = (getSystem, mapping, props, oldProps) => {\n for (const prop in mapping) {\n const fn = mapping[prop]\n\n if (typeof fn === \"function\") {\n fn(props[prop], oldProps[prop], getSystem())\n }\n }\n}\n\nexport const withMappedContainer = (getSystem, getStore, memGetComponent) => (componentName, mapping) => {\n const { fn } = getSystem()\n const WrappedComponent = memGetComponent(componentName, \"root\")\n\n class WithMappedContainer extends Component {\n constructor(props, context) {\n super(props, context)\n handleProps(getSystem, mapping, props, {})\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n handleProps(getSystem, mapping, nextProps, this.props)\n }\n\n render() {\n const cleanProps = omit(this.props, mapping ? Object.keys(mapping) : [])\n return \n }\n }\n WithMappedContainer.displayName = `WithMappedContainer(${fn.getDisplayName(WrappedComponent)})`\n return WithMappedContainer\n}\n\nexport const render = (getSystem, getStore, getComponent, getComponents) => (domNode) => {\n const App = getComponent(getSystem, getStore, getComponents)(\"App\", \"root\")\n ReactDOM.render(, domNode)\n}\n\nexport const getComponent = (getSystem, getStore, getComponents) => (componentName, container, config = {}) => {\n\n if (typeof componentName !== \"string\")\n throw new TypeError(\"Need a string, to fetch a component. Was given a \" + typeof componentName)\n\n // getComponent has a config object as a third, optional parameter\n // using the config object requires the presence of the second parameter, container\n // e.g. getComponent(\"JsonSchema_string_whatever\", false, { failSilently: true })\n const component = getComponents(componentName)\n\n if (!component) {\n if (!config.failSilently) {\n getSystem().log.warn(\"Could not find component:\", componentName)\n }\n return null\n }\n\n if(!container) {\n return component\n }\n\n if(container === \"root\") {\n return withConnect(getSystem, component, getStore())\n }\n\n // container == truthy\n return withConnect(getSystem, component)\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_light_746e1958__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_languages_hljs_javascript_e22911f7__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_languages_hljs_json_b876afc5__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_languages_hljs_xml_a81c807b__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_languages_hljs_bash_1621c621__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_languages_hljs_yaml_02838f34__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_languages_hljs_http_4e924b23__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_languages_hljs_powershell_d51eb4f6__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_styles_hljs_agate_99a46aa2__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_styles_hljs_arta_570691fc__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_styles_hljs_monokai_2529bafb__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_styles_hljs_nord_5bfa1099__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_styles_hljs_obsidian_a278dd52__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_syntax_highlighter_dist_esm_styles_hljs_tomorrow_night_63765df9__[\"default\"] });","import SyntaxHighlighter from \"react-syntax-highlighter/dist/esm/light\"\nimport js from \"react-syntax-highlighter/dist/esm/languages/hljs/javascript\"\nimport json from \"react-syntax-highlighter/dist/esm/languages/hljs/json\"\nimport xml from \"react-syntax-highlighter/dist/esm/languages/hljs/xml\"\nimport bash from \"react-syntax-highlighter/dist/esm/languages/hljs/bash\"\nimport yaml from \"react-syntax-highlighter/dist/esm/languages/hljs/yaml\"\nimport http from \"react-syntax-highlighter/dist/esm/languages/hljs/http\"\nimport powershell from \"react-syntax-highlighter/dist/esm/languages/hljs/powershell\"\nimport javascript from \"react-syntax-highlighter/dist/esm/languages/hljs/javascript\"\n\nimport agate from \"react-syntax-highlighter/dist/esm/styles/hljs/agate\"\nimport arta from \"react-syntax-highlighter/dist/esm/styles/hljs/arta\"\nimport monokai from \"react-syntax-highlighter/dist/esm/styles/hljs/monokai\"\nimport nord from \"react-syntax-highlighter/dist/esm/styles/hljs/nord\"\nimport obsidian from \"react-syntax-highlighter/dist/esm/styles/hljs/obsidian\"\nimport tomorrowNight from \"react-syntax-highlighter/dist/esm/styles/hljs/tomorrow-night\"\n\nSyntaxHighlighter.registerLanguage(\"json\", json)\nSyntaxHighlighter.registerLanguage(\"js\", js)\nSyntaxHighlighter.registerLanguage(\"xml\", xml)\nSyntaxHighlighter.registerLanguage(\"yaml\", yaml)\nSyntaxHighlighter.registerLanguage(\"http\", http)\nSyntaxHighlighter.registerLanguage(\"bash\", bash)\nSyntaxHighlighter.registerLanguage(\"powershell\", powershell)\nSyntaxHighlighter.registerLanguage(\"javascript\", javascript)\n\nconst styles = {agate, arta, monokai, nord, obsidian, \"tomorrow-night\": tomorrowNight}\nexport const availableStyles = Object.keys(styles)\n\nexport const getStyle = name => {\n if (!availableStyles.includes(name)) {\n console.warn(`Request style '${name}' is not available, returning default instead`)\n return agate\n }\n return styles[name]\n}\n\nexport {SyntaxHighlighter, styles}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"sanitizeUrl\"]: () => __WEBPACK_EXTERNAL_MODULE__braintree_sanitize_url_2340607f__.sanitizeUrl });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_camelCase_81fadc19__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_upperFirst_9993ecb4__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_find_e8ecc2cb__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_some_5cd47809__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_eq_b41b823a__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_css_escape_2d301448__[\"default\"] });","/*\n ATTENTION! This file (but not the functions within) is deprecated.\n\n You should probably add a new file to `./helpers/` instead of adding a new\n function here.\n\n One-function-per-file is a better pattern than what we have here.\n\n If you're refactoring something in here, feel free to break it out to a file\n in `./helpers` if you have the time.\n*/\n\nimport Im, { fromJS, Set } from \"immutable\"\nimport { sanitizeUrl as braintreeSanitizeUrl } from \"@braintree/sanitize-url\"\nimport camelCase from \"lodash/camelCase\"\nimport upperFirst from \"lodash/upperFirst\"\nimport _memoize from \"lodash/memoize\"\nimport find from \"lodash/find\"\nimport some from \"lodash/some\"\nimport eq from \"lodash/eq\"\nimport isFunction from \"lodash/isFunction\"\nimport { memoizedSampleFromSchema, memoizedCreateXMLExample } from \"core/plugins/samples/fn\"\nimport win from \"./window\"\nimport cssEscape from \"css.escape\"\nimport getParameterSchema from \"../helpers/get-parameter-schema\"\nimport randomBytes from \"randombytes\"\nimport shaJs from \"sha.js\"\nimport YAML from \"js-yaml\"\n\n\nconst DEFAULT_RESPONSE_KEY = \"default\"\n\nexport const isImmutable = (maybe) => Im.Iterable.isIterable(maybe)\n\nexport function objectify (thing) {\n if(!isObject(thing))\n return {}\n if(isImmutable(thing))\n return thing.toJS()\n return thing\n}\n\nexport function arrayify (thing) {\n if(!thing)\n return []\n\n if(thing.toArray)\n return thing.toArray()\n\n return normalizeArray(thing)\n}\n\nexport function fromJSOrdered(js) {\n if (isImmutable(js)) {\n return js // Can't do much here\n }\n if (js instanceof win.File) {\n return js\n }\n if (!isObject(js)) {\n return js\n }\n if (Array.isArray(js)) {\n return Im.Seq(js).map(fromJSOrdered).toList()\n }\n if (isFunction(js.entries)) {\n // handle multipart/form-data\n const objWithHashedKeys = createObjWithHashedKeys(js)\n return Im.OrderedMap(objWithHashedKeys).map(fromJSOrdered)\n }\n return Im.OrderedMap(js).map(fromJSOrdered)\n}\n\n/**\n * Convert a FormData object into plain object\n * Append a hashIdx and counter to the key name, if multiple exists\n * if single, key name = \n * if multiple, key name = \n * @example single entry for vegetable\n * fdObj.entries.vegtables: \"carrot\"\n * // returns newObj.vegetables : \"carrot\"\n * @example multiple entries for fruits[]\n * fdObj.entries.fruits[]: \"apple\"\n * // returns newObj.fruits[]_**[]1 : \"apple\"\n * fdObj.entries.fruits[]: \"banana\"\n * // returns newObj.fruits[]_**[]2 : \"banana\"\n * fdObj.entries.fruits[]: \"grape\"\n * // returns newObj.fruits[]_**[]3 : \"grape\"\n * @param {FormData} fdObj - a FormData object\n * @return {Object} - a plain object\n */\nexport function createObjWithHashedKeys (fdObj) {\n if (!isFunction(fdObj.entries)) {\n return fdObj // not a FormData object with iterable\n }\n const newObj = {}\n const hashIdx = \"_**[]\" // our internal identifier\n const trackKeys = {}\n for (let pair of fdObj.entries()) {\n if (!newObj[pair[0]] && !(trackKeys[pair[0]] && trackKeys[pair[0]].containsMultiple)) {\n newObj[pair[0]] = pair[1] // first key name: no hash required\n } else {\n if (!trackKeys[pair[0]]) {\n // initiate tracking key for multiple\n trackKeys[pair[0]] = {\n containsMultiple: true,\n length: 1\n }\n // \"reassign\" first pair to matching hashed format for multiple\n let hashedKeyFirst = `${pair[0]}${hashIdx}${trackKeys[pair[0]].length}`\n newObj[hashedKeyFirst] = newObj[pair[0]]\n // remove non-hashed key of multiple\n delete newObj[pair[0]] // first\n }\n trackKeys[pair[0]].length += 1\n let hashedKeyCurrent = `${pair[0]}${hashIdx}${trackKeys[pair[0]].length}`\n newObj[hashedKeyCurrent] = pair[1]\n }\n }\n return newObj\n}\n\nexport function bindToState(obj, state) {\n\tvar newObj = {}\n\tObject.keys(obj)\n .filter(key => typeof obj[key] === \"function\")\n .forEach(key => newObj[key] = obj[key].bind(null, state))\n\treturn newObj\n}\n\nexport function normalizeArray(arr) {\n if(Array.isArray(arr))\n return arr\n return [arr]\n}\n\nexport function isFn(fn) {\n return typeof fn === \"function\"\n}\n\nexport function isObject(obj) {\n return !!obj && typeof obj === \"object\"\n}\n\nexport function isFunc(thing) {\n return typeof(thing) === \"function\"\n}\n\nexport function isArray(thing) {\n return Array.isArray(thing)\n}\n\n// I've changed memoize libs more than once, so I'm using this a way to make that simpler\nexport const memoize = _memoize\n\nexport function objMap(obj, fn) {\n return Object.keys(obj).reduce((newObj, key) => {\n newObj[key] = fn(obj[key], key)\n return newObj\n }, {})\n}\n\nexport function objReduce(obj, fn) {\n return Object.keys(obj).reduce((newObj, key) => {\n let res = fn(obj[key], key)\n if(res && typeof res === \"object\")\n Object.assign(newObj, res)\n return newObj\n }, {})\n}\n\n// Redux middleware that exposes the system to async actions (like redux-thunk, but with out system instead of (dispatch, getState)\nexport function systemThunkMiddleware(getSystem) {\n return ({ dispatch, getState }) => { // eslint-disable-line no-unused-vars\n return next => action => {\n if (typeof action === \"function\") {\n return action(getSystem())\n }\n\n return next(action)\n }\n }\n}\n\nexport function defaultStatusCode ( responses ) {\n let codes = responses.keySeq()\n return codes.contains(DEFAULT_RESPONSE_KEY) ? DEFAULT_RESPONSE_KEY : codes.filter( key => (key+\"\")[0] === \"2\").sort().first()\n}\n\n\n/**\n * Returns an Immutable List, safely\n * @param {Immutable.Iterable} iterable the iterable to get the key from\n * @param {String|[String]} key either an array of keys, or a single key\n * @returns {Immutable.List} either iterable.get(keys) or an empty Immutable.List\n */\nexport function getList(iterable, keys) {\n if(!Im.Iterable.isIterable(iterable)) {\n return Im.List()\n }\n let val = iterable.getIn(Array.isArray(keys) ? keys : [keys])\n return Im.List.isList(val) ? val : Im.List()\n}\n\n/**\n * Take an immutable map, and convert to a list.\n * Where the keys are merged with the value objects\n * @param {Immutable.Map} map, the map to convert\n * @param {String} key the key to use, when merging the `key`\n * @returns {Immutable.List}\n */\nexport function mapToList(map, keyNames=\"key\", collectedKeys=Im.Map()) {\n if(!Im.Map.isMap(map) || !map.size) {\n return Im.List()\n }\n\n if(!Array.isArray(keyNames)) {\n keyNames = [ keyNames ]\n }\n\n if(keyNames.length < 1) {\n return map.merge(collectedKeys)\n }\n\n // I need to avoid `flatMap` from merging in the Maps, as well as the lists\n let list = Im.List()\n let keyName = keyNames[0]\n for(let entry of map.entries()) {\n let [key, val] = entry\n let nextList = mapToList(val, keyNames.slice(1), collectedKeys.set(keyName, key))\n if(Im.List.isList(nextList)) {\n list = list.concat(nextList)\n } else {\n list = list.push(nextList)\n }\n }\n\n return list\n}\n\nexport function extractFileNameFromContentDispositionHeader(value){\n let patterns = [\n /filename\\*=[^']+'\\w*'\"([^\"]+)\";?/i,\n /filename\\*=[^']+'\\w*'([^;]+);?/i,\n /filename=\"([^;]*);?\"/i,\n /filename=([^;]*);?/i\n ]\n\n let responseFilename\n patterns.some(regex => {\n responseFilename = regex.exec(value)\n return responseFilename !== null\n })\n\n if (responseFilename !== null && responseFilename.length > 1) {\n try {\n return decodeURIComponent(responseFilename[1])\n } catch(e) {\n console.error(e)\n }\n }\n\n return null\n}\n\n// PascalCase, aka UpperCamelCase\nexport function pascalCase(str) {\n return upperFirst(camelCase(str))\n}\n\n// Remove the ext of a filename, and pascalCase it\nexport function pascalCaseFilename(filename) {\n return pascalCase(filename.replace(/\\.[^./]*$/, \"\"))\n}\n\n// Check if ...\n// - new props\n// - If immutable, use .is()\n// - if in explicit objectList, then compare using _.eq\n// - else use ===\nexport const propChecker = (props, nextProps, objectList=[], ignoreList=[]) => {\n\n if(Object.keys(props).length !== Object.keys(nextProps).length) {\n return true\n }\n\n return (\n some(props, (a, name) => {\n if(ignoreList.includes(name)) {\n return false\n }\n let b = nextProps[name]\n\n if(Im.Iterable.isIterable(a)) {\n return !Im.is(a,b)\n }\n\n // Not going to compare objects\n if(typeof a === \"object\" && typeof b === \"object\") {\n return false\n }\n\n return a !== b\n })\n || objectList.some( objectPropName => !eq(props[objectPropName], nextProps[objectPropName])))\n}\n\nexport const validateMaximum = ( val, max ) => {\n if (val > max) {\n return `Value must be less than ${max}`\n }\n}\n\nexport const validateMinimum = ( val, min ) => {\n if (val < min) {\n return `Value must be greater than ${min}`\n }\n}\n\nexport const validateNumber = ( val ) => {\n if (!/^-?\\d+(\\.?\\d+)?$/.test(val)) {\n return \"Value must be a number\"\n }\n}\n\nexport const validateInteger = ( val ) => {\n if (!/^-?\\d+$/.test(val)) {\n return \"Value must be an integer\"\n }\n}\n\nexport const validateFile = ( val ) => {\n if ( val && !(val instanceof win.File) ) {\n return \"Value must be a file\"\n }\n}\n\nexport const validateBoolean = ( val ) => {\n if ( !(val === \"true\" || val === \"false\" || val === true || val === false) ) {\n return \"Value must be a boolean\"\n }\n}\n\nexport const validateString = ( val ) => {\n if ( val && typeof val !== \"string\" ) {\n return \"Value must be a string\"\n }\n}\n\nexport const validateDateTime = (val) => {\n if (isNaN(Date.parse(val))) {\n return \"Value must be a DateTime\"\n }\n}\n\nexport const validateGuid = (val) => {\n val = val.toString().toLowerCase()\n if (!/^[{(]?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}[)}]?$/.test(val)) {\n return \"Value must be a Guid\"\n }\n}\n\nexport const validateMaxLength = (val, max) => {\n if (val.length > max) {\n return `Value must be no longer than ${max} character${max !== 1 ? \"s\" : \"\"}`\n }\n}\n\nexport const validateUniqueItems = (val, uniqueItems) => {\n if (!val) {\n return\n }\n if (uniqueItems === \"true\" || uniqueItems === true) {\n const list = fromJS(val)\n const set = list.toSet()\n const hasDuplicates = val.length > set.size\n if(hasDuplicates) {\n let errorsPerIndex = Set()\n list.forEach((item, i) => {\n if(list.filter(v => isFunc(v.equals) ? v.equals(item) : v === item).size > 1) {\n errorsPerIndex = errorsPerIndex.add(i)\n }\n })\n if(errorsPerIndex.size !== 0) {\n return errorsPerIndex.map(i => ({index: i, error: \"No duplicates allowed.\"})).toArray()\n }\n }\n }\n}\n\nexport const validateMinItems = (val, min) => {\n if (!val && min >= 1 || val && val.length < min) {\n return `Array must contain at least ${min} item${min === 1 ? \"\" : \"s\"}`\n }\n}\n\nexport const validateMaxItems = (val, max) => {\n if (val && val.length > max) {\n return `Array must not contain more then ${max} item${max === 1 ? \"\" : \"s\"}`\n }\n}\n\nexport const validateMinLength = (val, min) => {\n if (val.length < min) {\n return `Value must be at least ${min} character${min !== 1 ? \"s\" : \"\"}`\n }\n}\n\nexport const validatePattern = (val, rxPattern) => {\n var patt = new RegExp(rxPattern)\n if (!patt.test(val)) {\n return \"Value must follow pattern \" + rxPattern\n }\n}\n\nfunction validateValueBySchema(value, schema, requiredByParam, bypassRequiredCheck, parameterContentMediaType) {\n if(!schema) return []\n let errors = []\n let nullable = schema.get(\"nullable\")\n let requiredBySchema = schema.get(\"required\")\n let maximum = schema.get(\"maximum\")\n let minimum = schema.get(\"minimum\")\n let type = schema.get(\"type\")\n let format = schema.get(\"format\")\n let maxLength = schema.get(\"maxLength\")\n let minLength = schema.get(\"minLength\")\n let uniqueItems = schema.get(\"uniqueItems\")\n let maxItems = schema.get(\"maxItems\")\n let minItems = schema.get(\"minItems\")\n let pattern = schema.get(\"pattern\")\n\n const schemaRequiresValue = requiredByParam || requiredBySchema === true\n const hasValue = value !== undefined && value !== null\n const isValidEmpty = !schemaRequiresValue && !hasValue\n\n const needsExplicitConstraintValidation = hasValue && type === \"array\"\n\n const requiresFurtherValidation =\n schemaRequiresValue\n || needsExplicitConstraintValidation\n || !isValidEmpty\n\n const isValidNullable = nullable && value === null\n\n // will not be included in the request or [schema / value] does not [allow / require] further analysis.\n const noFurtherValidationNeeded =\n isValidNullable\n || !type\n || !requiresFurtherValidation\n\n if(noFurtherValidationNeeded) {\n return []\n }\n\n // Further this point the parameter is considered worth to validate\n let stringCheck = type === \"string\" && value\n let arrayCheck = type === \"array\" && Array.isArray(value) && value.length\n let arrayListCheck = type === \"array\" && Im.List.isList(value) && value.count()\n let arrayStringCheck = type === \"array\" && typeof value === \"string\" && value\n let fileCheck = type === \"file\" && value instanceof win.File\n let booleanCheck = type === \"boolean\" && (value || value === false)\n let numberCheck = type === \"number\" && (value || value === 0)\n let integerCheck = type === \"integer\" && (value || value === 0)\n let objectCheck = type === \"object\" && typeof value === \"object\" && value !== null\n let objectStringCheck = type === \"object\" && typeof value === \"string\" && value\n\n const allChecks = [\n stringCheck, arrayCheck, arrayListCheck, arrayStringCheck, fileCheck,\n booleanCheck, numberCheck, integerCheck, objectCheck, objectStringCheck,\n ]\n\n const passedAnyCheck = allChecks.some(v => !!v)\n\n if (schemaRequiresValue && !passedAnyCheck && !bypassRequiredCheck) {\n errors.push(\"Required field is not provided\")\n return errors\n }\n if (\n type === \"object\" &&\n (parameterContentMediaType === null ||\n parameterContentMediaType === \"application/json\")\n ) {\n let objectVal = value\n if(typeof value === \"string\") {\n try {\n objectVal = JSON.parse(value)\n } catch (e) {\n errors.push(\"Parameter string value must be valid JSON\")\n return errors\n }\n }\n if(schema && schema.has(\"required\") && isFunc(requiredBySchema.isList) && requiredBySchema.isList()) {\n requiredBySchema.forEach(key => {\n if(objectVal[key] === undefined) {\n errors.push({ propKey: key, error: \"Required property not found\" })\n }\n })\n }\n if(schema && schema.has(\"properties\")) {\n schema.get(\"properties\").forEach((val, key) => {\n const errs = validateValueBySchema(objectVal[key], val, false, bypassRequiredCheck, parameterContentMediaType)\n errors.push(...errs\n .map((error) => ({ propKey: key, error })))\n })\n }\n }\n\n if (pattern) {\n let err = validatePattern(value, pattern)\n if (err) errors.push(err)\n }\n\n if (minItems) {\n if (type === \"array\") {\n let err = validateMinItems(value, minItems)\n if (err) errors.push(err)\n }\n }\n\n if (maxItems) {\n if (type === \"array\") {\n let err = validateMaxItems(value, maxItems)\n if (err) errors.push({ needRemove: true, error: err })\n }\n }\n\n if (uniqueItems) {\n if (type === \"array\") {\n let errorPerItem = validateUniqueItems(value, uniqueItems)\n if (errorPerItem) errors.push(...errorPerItem)\n }\n }\n\n if (maxLength || maxLength === 0) {\n let err = validateMaxLength(value, maxLength)\n if (err) errors.push(err)\n }\n\n if (minLength) {\n let err = validateMinLength(value, minLength)\n if (err) errors.push(err)\n }\n\n if (maximum || maximum === 0) {\n let err = validateMaximum(value, maximum)\n if (err) errors.push(err)\n }\n\n if (minimum || minimum === 0) {\n let err = validateMinimum(value, minimum)\n if (err) errors.push(err)\n }\n\n if (type === \"string\") {\n let err\n if (format === \"date-time\") {\n err = validateDateTime(value)\n } else if (format === \"uuid\") {\n err = validateGuid(value)\n } else {\n err = validateString(value)\n }\n if (!err) return errors\n errors.push(err)\n } else if (type === \"boolean\") {\n let err = validateBoolean(value)\n if (!err) return errors\n errors.push(err)\n } else if (type === \"number\") {\n let err = validateNumber(value)\n if (!err) return errors\n errors.push(err)\n } else if (type === \"integer\") {\n let err = validateInteger(value)\n if (!err) return errors\n errors.push(err)\n } else if (type === \"array\") {\n if (!(arrayCheck || arrayListCheck)) {\n return errors\n }\n if(value) {\n value.forEach((item, i) => {\n const errs = validateValueBySchema(item, schema.get(\"items\"), false, bypassRequiredCheck, parameterContentMediaType)\n errors.push(...errs\n .map((err) => ({ index: i, error: err })))\n })\n }\n } else if (type === \"file\") {\n let err = validateFile(value)\n if (!err) return errors\n errors.push(err)\n }\n\n return errors\n}\n\n// validation of parameters before execute\nexport const validateParam = (param, value, { isOAS3 = false, bypassRequiredCheck = false } = {}) => {\n\n let paramRequired = param.get(\"required\")\n\n let { schema: paramDetails, parameterContentMediaType } = getParameterSchema(param, { isOAS3 })\n\n return validateValueBySchema(value, paramDetails, paramRequired, bypassRequiredCheck, parameterContentMediaType)\n}\n\nconst getXmlSampleSchema = (schema, config, exampleOverride) => {\n if (schema && (!schema.xml || !schema.xml.name)) {\n schema.xml = schema.xml || {}\n\n if (schema.$$ref) {\n let match = schema.$$ref.match(/\\S*\\/(\\S+)$/)\n schema.xml.name = match[1]\n } else if (schema.type || schema.items || schema.properties || schema.additionalProperties) {\n return \"\\n\"\n } else {\n return null\n }\n }\n return memoizedCreateXMLExample(schema, config, exampleOverride)\n}\n\nconst shouldStringifyTypesConfig = [\n {\n when: /json/,\n shouldStringifyTypes: [\"string\"]\n }\n]\n\nconst defaultStringifyTypes = [\"object\"]\n\nconst getStringifiedSampleForSchema = (schema, config, contentType, exampleOverride) => {\n const res = memoizedSampleFromSchema(schema, config, exampleOverride)\n const resType = typeof res\n\n const typesToStringify = shouldStringifyTypesConfig.reduce(\n (types, nextConfig) => nextConfig.when.test(contentType)\n ? [...types, ...nextConfig.shouldStringifyTypes]\n : types,\n defaultStringifyTypes)\n\n return some(typesToStringify, x => x === resType)\n ? JSON.stringify(res, null, 2)\n : res\n}\n\nconst getYamlSampleSchema = (schema, config, contentType, exampleOverride) => {\n const jsonExample = getStringifiedSampleForSchema(schema, config, contentType, exampleOverride)\n let yamlString\n try {\n yamlString = YAML.dump(YAML.load(jsonExample), {\n\n lineWidth: -1 // don't generate line folds\n })\n if(yamlString[yamlString.length - 1] === \"\\n\") {\n yamlString = yamlString.slice(0, yamlString.length - 1)\n }\n } catch (e) {\n console.error(e)\n return \"error: could not generate yaml example\"\n }\n return yamlString\n .replace(/\\t/g, \" \")\n}\n\nexport const getSampleSchema = (schema, contentType=\"\", config={}, exampleOverride = undefined) => {\n if(schema && isFunc(schema.toJS))\n schema = schema.toJS()\n if(exampleOverride && isFunc(exampleOverride.toJS))\n exampleOverride = exampleOverride.toJS()\n\n if (/xml/.test(contentType)) {\n return getXmlSampleSchema(schema, config, exampleOverride)\n }\n if (/(yaml|yml)/.test(contentType)) {\n return getYamlSampleSchema(schema, config, contentType, exampleOverride)\n }\n return getStringifiedSampleForSchema(schema, config, contentType, exampleOverride)\n}\n\nexport const parseSearch = () => {\n let map = {}\n let search = win.location.search\n\n if(!search)\n return {}\n\n if ( search != \"\" ) {\n let params = search.substr(1).split(\"&\")\n\n for (let i in params) {\n if (!Object.prototype.hasOwnProperty.call(params, i)) {\n continue\n }\n i = params[i].split(\"=\")\n map[decodeURIComponent(i[0])] = (i[1] && decodeURIComponent(i[1])) || \"\"\n }\n }\n\n return map\n}\n\nexport const serializeSearch = (searchMap) => {\n return Object.keys(searchMap).map(k => {\n return encodeURIComponent(k) + \"=\" + encodeURIComponent(searchMap[k])\n }).join(\"&\")\n}\n\nexport const btoa = (str) => {\n let buffer\n\n if (str instanceof Buffer) {\n buffer = str\n } else {\n buffer = Buffer.from(str.toString(), \"utf-8\")\n }\n\n return buffer.toString(\"base64\")\n}\n\nexport const sorters = {\n operationsSorter: {\n alpha: (a, b) => a.get(\"path\").localeCompare(b.get(\"path\")),\n method: (a, b) => a.get(\"method\").localeCompare(b.get(\"method\"))\n },\n tagsSorter: {\n alpha: (a, b) => a.localeCompare(b)\n }\n}\n\nexport const buildFormData = (data) => {\n let formArr = []\n\n for (let name in data) {\n let val = data[name]\n if (val !== undefined && val !== \"\") {\n formArr.push([name, \"=\", encodeURIComponent(val).replace(/%20/g,\"+\")].join(\"\"))\n }\n }\n return formArr.join(\"&\")\n}\n\n// Is this really required as a helper? Perhaps. TODO: expose the system of presets.apis in docs, so we know what is supported\nexport const shallowEqualKeys = (a,b, keys) => {\n return !!find(keys, (key) => {\n return eq(a[key], b[key])\n })\n}\n\nexport function sanitizeUrl(url) {\n if(typeof url !== \"string\" || url === \"\") {\n return \"\"\n }\n\n return braintreeSanitizeUrl(url)\n}\n\nexport function requiresValidationURL(uri) {\n if (!uri || uri.indexOf(\"localhost\") >= 0 || uri.indexOf(\"127.0.0.1\") >= 0 || uri === \"none\") {\n return false\n }\n return true\n}\n\n\nexport function getAcceptControllingResponse(responses) {\n if(!Im.OrderedMap.isOrderedMap(responses)) {\n // wrong type!\n return null\n }\n\n if(!responses.size) {\n // responses is empty\n return null\n }\n\n const suitable2xxResponse = responses.find((res, k) => {\n return k.startsWith(\"2\") && Object.keys(res.get(\"content\") || {}).length > 0\n })\n\n // try to find a suitable `default` responses\n const defaultResponse = responses.get(\"default\") || Im.OrderedMap()\n const defaultResponseMediaTypes = (defaultResponse.get(\"content\") || Im.OrderedMap()).keySeq().toJS()\n const suitableDefaultResponse = defaultResponseMediaTypes.length ? defaultResponse : null\n\n return suitable2xxResponse || suitableDefaultResponse\n}\n\n// suitable for use in URL fragments\nexport const createDeepLinkPath = (str) => typeof str == \"string\" || str instanceof String ? str.trim().replace(/\\s/g, \"%20\") : \"\"\n// suitable for use in CSS classes and ids\nexport const escapeDeepLinkPath = (str) => cssEscape( createDeepLinkPath(str).replace(/%20/g, \"_\") )\n\nexport const getExtensions = (defObj) => defObj.filter((v, k) => /^x-/.test(k))\nexport const getCommonExtensions = (defObj) => defObj.filter((v, k) => /^pattern|maxLength|minLength|maximum|minimum/.test(k))\n\n// Deeply strips a specific key from an object.\n//\n// `predicate` can be used to discriminate the stripping further,\n// by preserving the key's place in the object based on its value.\nexport function deeplyStripKey(input, keyToStrip, predicate = () => true) {\n if(typeof input !== \"object\" || Array.isArray(input) || input === null || !keyToStrip) {\n return input\n }\n\n const obj = Object.assign({}, input)\n\n Object.keys(obj).forEach(k => {\n if(k === keyToStrip && predicate(obj[k], k)) {\n delete obj[k]\n return\n }\n obj[k] = deeplyStripKey(obj[k], keyToStrip, predicate)\n })\n\n return obj\n}\n\nexport function stringify(thing) {\n if (typeof thing === \"string\") {\n return thing\n }\n\n if (thing && thing.toJS) {\n thing = thing.toJS()\n }\n\n if (typeof thing === \"object\" && thing !== null) {\n try {\n return JSON.stringify(thing, null, 2)\n }\n catch (e) {\n return String(thing)\n }\n }\n\n if(thing === null || thing === undefined) {\n return \"\"\n }\n\n return thing.toString()\n}\n\nexport function numberToString(thing) {\n if(typeof thing === \"number\") {\n return thing.toString()\n }\n\n return thing\n}\n\nexport function paramToIdentifier(param, { returnAll = false, allowHashes = true } = {}) {\n if(!Im.Map.isMap(param)) {\n throw new Error(\"paramToIdentifier: received a non-Im.Map parameter as input\")\n }\n const paramName = param.get(\"name\")\n const paramIn = param.get(\"in\")\n\n let generatedIdentifiers = []\n\n // Generate identifiers in order of most to least specificity\n\n if (param && param.hashCode && paramIn && paramName && allowHashes) {\n generatedIdentifiers.push(`${paramIn}.${paramName}.hash-${param.hashCode()}`)\n }\n\n if(paramIn && paramName) {\n generatedIdentifiers.push(`${paramIn}.${paramName}`)\n }\n\n generatedIdentifiers.push(paramName)\n\n // Return the most preferred identifier, or all if requested\n\n return returnAll ? generatedIdentifiers : (generatedIdentifiers[0] || \"\")\n}\n\nexport function paramToValue(param, paramValues) {\n const allIdentifiers = paramToIdentifier(param, { returnAll: true })\n\n // Map identifiers to values in the provided value hash, filter undefined values,\n // and return the first value found\n const values = allIdentifiers\n .map(id => {\n return paramValues[id]\n })\n .filter(value => value !== undefined)\n\n return values[0]\n}\n\n// adapted from https://auth0.com/docs/flows/guides/auth-code-pkce/includes/create-code-verifier\nexport function generateCodeVerifier() {\n return b64toB64UrlEncoded(\n randomBytes(32).toString(\"base64\")\n )\n}\n\nexport function createCodeChallenge(codeVerifier) {\n return b64toB64UrlEncoded(\n shaJs(\"sha256\")\n .update(codeVerifier)\n .digest(\"base64\")\n )\n}\n\nfunction b64toB64UrlEncoded(str) {\n return str\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=/g, \"\")\n}\n\nexport const isEmptyValue = (value) => {\n if (!value) {\n return true\n }\n\n if (isImmutable(value) && value.isEmpty()) {\n return true\n }\n\n return false\n}\n","export function canJsonParse(str) {\n try {\n let testValueForJson = JSON.parse(str)\n return testValueForJson ? true : false\n } catch (e) {\n // exception: string is not valid json\n return null\n }\n}\n\nexport function getKnownSyntaxHighlighterLanguage(val) {\n // to start, only check for json. can expand as needed in future\n const isValidJson = canJsonParse(val)\n return isValidJson ? \"json\" : null\n}\n","function makeWindow() {\n var win = {\n location: {},\n history: {},\n open: () => {},\n close: () => {},\n File: function() {}\n }\n\n if(typeof window === \"undefined\") {\n return win\n }\n\n try {\n win = window\n var props = [\"File\", \"Blob\", \"FormData\"]\n for (var prop of props) {\n if (prop in window) {\n win[prop] = window[prop]\n }\n }\n } catch( e ) {\n console.error(e)\n }\n\n return win\n}\n\nexport default makeWindow()\n","/**\n * @prettier\n */\n\nimport Im from \"immutable\"\n\nconst swagger2SchemaKeys = Im.Set.of(\n \"type\",\n \"format\",\n \"items\",\n \"default\",\n \"maximum\",\n \"exclusiveMaximum\",\n \"minimum\",\n \"exclusiveMinimum\",\n \"maxLength\",\n \"minLength\",\n \"pattern\",\n \"maxItems\",\n \"minItems\",\n \"uniqueItems\",\n \"enum\",\n \"multipleOf\"\n)\n\n/**\n * @typedef {Object} ParameterSchemaDescriptor\n * @property {Immutable.Map} schema - the parameter schema\n * @property {string|null} parameterContentMediaType - the effective media type, for `content`-based OpenAPI 3.0 Parameters, or `null` otherwise\n */\n\n/**\n * Get the effective schema value for a parameter, or an empty Immutable.Map if\n * no suitable schema can be found.\n *\n * Supports OpenAPI 3.0 `Parameter.content` priority -- since a Parameter Object\n * cannot have both `schema` and `content`, this function ignores `schema` when\n * `content` is present.\n *\n * @param {Immutable.Map} parameter The parameter to identify a schema for\n * @param {object} config\n * @param {boolean} config.isOAS3 Whether the parameter is from an OpenAPI 2.0\n * or OpenAPI 3.0 definition\n * @return {ParameterSchemaDescriptor} Information about the parameter schema\n */\nexport default function getParameterSchema(parameter, { isOAS3 } = {}) {\n // Return empty Map if `parameter` isn't a Map\n if (!Im.Map.isMap(parameter)) {\n return {\n schema: Im.Map(),\n parameterContentMediaType: null,\n }\n }\n\n if (!isOAS3) {\n // Swagger 2.0\n if (parameter.get(\"in\") === \"body\") {\n return {\n schema: parameter.get(\"schema\", Im.Map()),\n parameterContentMediaType: null,\n }\n } else {\n return {\n schema: parameter.filter((v, k) => swagger2SchemaKeys.includes(k)),\n parameterContentMediaType: null,\n }\n }\n }\n\n // If we've reached here, the parameter is OpenAPI 3.0\n\n if (parameter.get(\"content\")) {\n const parameterContentMediaTypes = parameter\n .get(\"content\", Im.Map({}))\n .keySeq()\n\n const parameterContentMediaType = parameterContentMediaTypes.first()\n\n return {\n schema: parameter.getIn(\n [\"content\", parameterContentMediaType, \"schema\"],\n Im.Map()\n ),\n parameterContentMediaType,\n }\n }\n\n return {\n schema: parameter.get(\"schema\", Im.Map()),\n parameterContentMediaType: null,\n }\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_get_80914616__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_getPrototypeOf_c21fe081__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_wrapNativeSuper_31d78c7a__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_find_index_99e05360__[\"default\"] });","import memoize from \"lodash/memoize\"\n\n/**\n * This function is extension on top of lodash.memoize.\n * It uses all the arguments of the `fn` as the cache key instead of just the first one.\n * If resolver is provided, it determines the cache key for\n * storing the result based on the arguments provided to the memoized function.\n */\n\nconst shallowArrayEquals = (a) => (b) => {\n return Array.isArray(a) && Array.isArray(b)\n && a.length === b.length\n && a.every((val, index) => val === b[index])\n}\n\nconst list = (...args) => args\n\nclass Cache extends Map {\n delete(key) {\n const keys = Array.from(this.keys())\n const foundKey = keys.find(shallowArrayEquals(key))\n return super.delete(foundKey)\n }\n\n get(key) {\n const keys = Array.from(this.keys())\n const foundKey = keys.find(shallowArrayEquals(key))\n return super.get(foundKey)\n }\n\n has(key) {\n const keys = Array.from(this.keys())\n return keys.findIndex(shallowArrayEquals(key)) !== -1\n }\n}\n\nconst memoizeN = (fn, resolver = list) => {\n const { Cache: OriginalCache } = memoize\n memoize.Cache = Cache\n\n const memoized = memoize(fn, resolver)\n\n memoize.Cache = OriginalCache\n\n return memoized\n}\n\nexport default memoizeN\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","require('../../modules/es.object.define-property');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar defineProperty = module.exports = function defineProperty(it, key, desc) {\n return Object.defineProperty(it, key, desc);\n};\n\nif (Object.defineProperty.sham) defineProperty.sham = true;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\n\nvar wrapConstructor = function (NativeConstructor) {\n var Wrapper = function (a, b, c) {\n if (this instanceof Wrapper) {\n switch (arguments.length) {\n case 0: return new NativeConstructor();\n case 1: return new NativeConstructor(a);\n case 2: return new NativeConstructor(a, b);\n } return new NativeConstructor(a, b, c);\n } return apply(NativeConstructor, this, arguments);\n };\n Wrapper.prototype = NativeConstructor.prototype;\n return Wrapper;\n};\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var PROTO = options.proto;\n\n var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype;\n\n var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];\n var targetPrototype = target.prototype;\n\n var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n for (key in source) {\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contains in native\n USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);\n\n targetProperty = target[key];\n\n if (USE_NATIVE) if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(nativeSource, key);\n nativeProperty = descriptor && descriptor.value;\n } else nativeProperty = nativeSource[key];\n\n // export native or implementation\n sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n if (USE_NATIVE && typeof targetProperty == typeof sourceProperty) continue;\n\n // bind timers to global for call from export context\n if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);\n // wrap global constructors for prevent changs in this version\n else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n // make static versions for prototype methods\n else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);\n // default case\n else resultProperty = sourceProperty;\n\n // add a flag to not completely full polyfills\n if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(resultProperty, 'sham', true);\n }\n\n createNonEnumerableProperty(target, key, resultProperty);\n\n if (PROTO) {\n VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {\n createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n }\n // export virtual prototype methods\n createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);\n // export real prototype methods\n if (options.real && targetPrototype && !targetPrototype[key]) {\n createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n }\n }\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (variable) {\n return isCallable(variable) ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = true;\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.20.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: 'Β© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.20.3/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","var parent = require('../../es/object/define-property');\n\nmodule.exports = parent;\n","/*!\n * @description Recursive object extending\n * @author Viacheslav Lotsmanov \n * @license MIT\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2013-2018 Viacheslav Lotsmanov\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nfunction isSpecificValue(val) {\n\treturn (\n\t\tval instanceof Buffer\n\t\t|| val instanceof Date\n\t\t|| val instanceof RegExp\n\t) ? true : false;\n}\n\nfunction cloneSpecificValue(val) {\n\tif (val instanceof Buffer) {\n\t\tvar x = Buffer.alloc\n\t\t\t? Buffer.alloc(val.length)\n\t\t\t: new Buffer(val.length);\n\t\tval.copy(x);\n\t\treturn x;\n\t} else if (val instanceof Date) {\n\t\treturn new Date(val.getTime());\n\t} else if (val instanceof RegExp) {\n\t\treturn new RegExp(val);\n\t} else {\n\t\tthrow new Error('Unexpected situation');\n\t}\n}\n\n/**\n * Recursive cloning array.\n */\nfunction deepCloneArray(arr) {\n\tvar clone = [];\n\tarr.forEach(function (item, index) {\n\t\tif (typeof item === 'object' && item !== null) {\n\t\t\tif (Array.isArray(item)) {\n\t\t\t\tclone[index] = deepCloneArray(item);\n\t\t\t} else if (isSpecificValue(item)) {\n\t\t\t\tclone[index] = cloneSpecificValue(item);\n\t\t\t} else {\n\t\t\t\tclone[index] = deepExtend({}, item);\n\t\t\t}\n\t\t} else {\n\t\t\tclone[index] = item;\n\t\t}\n\t});\n\treturn clone;\n}\n\nfunction safeGetProperty(object, property) {\n\treturn property === '__proto__' ? undefined : object[property];\n}\n\n/**\n * Extening object that entered in first argument.\n *\n * Returns extended object or false if have no target object or incorrect type.\n *\n * If you wish to clone source object (without modify it), just use empty new\n * object as first argument, like this:\n * deepExtend({}, yourObj_1, [yourObj_N]);\n */\nvar deepExtend = module.exports = function (/*obj_1, [obj_2], [obj_N]*/) {\n\tif (arguments.length < 1 || typeof arguments[0] !== 'object') {\n\t\treturn false;\n\t}\n\n\tif (arguments.length < 2) {\n\t\treturn arguments[0];\n\t}\n\n\tvar target = arguments[0];\n\n\t// convert arguments to array and cut off target object\n\tvar args = Array.prototype.slice.call(arguments, 1);\n\n\tvar val, src, clone;\n\n\targs.forEach(function (obj) {\n\t\t// skip argument if isn't an object, is null, or is an array\n\t\tif (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {\n\t\t\treturn;\n\t\t}\n\n\t\tObject.keys(obj).forEach(function (key) {\n\t\t\tsrc = safeGetProperty(target, key); // source value\n\t\t\tval = safeGetProperty(obj, key); // new value\n\n\t\t\t// recursion prevention\n\t\t\tif (val === target) {\n\t\t\t\treturn;\n\n\t\t\t/**\n\t\t\t * if new value isn't object then just overwrite by new value\n\t\t\t * instead of extending.\n\t\t\t */\n\t\t\t} else if (typeof val !== 'object' || val === null) {\n\t\t\t\ttarget[key] = val;\n\t\t\t\treturn;\n\n\t\t\t// just clone arrays (and recursive clone objects inside)\n\t\t\t} else if (Array.isArray(val)) {\n\t\t\t\ttarget[key] = deepCloneArray(val);\n\t\t\t\treturn;\n\n\t\t\t// custom cloning and overwrite for specific objects\n\t\t\t} else if (isSpecificValue(val)) {\n\t\t\t\ttarget[key] = cloneSpecificValue(val);\n\t\t\t\treturn;\n\n\t\t\t// overwrite by new value if source isn't object or array\n\t\t\t} else if (typeof src !== 'object' || src === null || Array.isArray(src)) {\n\t\t\t\ttarget[key] = deepExtend({}, val);\n\t\t\t\treturn;\n\n\t\t\t// source value and new value is objects both, extending...\n\t\t\t} else {\n\t\t\t\ttarget[key] = deepExtend(src, val);\n\t\t\t\treturn;\n\t\t\t}\n\t\t});\n\t});\n\n\treturn target;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","\nvar XML_CHARACTER_MAP = {\n '&': '&',\n '\"': '"',\n \"'\": ''',\n '<': '<',\n '>': '>'\n};\n\nfunction escapeForXML(string) {\n return string && string.replace\n ? string.replace(/([&\"<>'])/g, function(str, item) {\n return XML_CHARACTER_MAP[item];\n })\n : string;\n}\n\nmodule.exports = escapeForXML;\n","var escapeForXML = require('./escapeForXML');\nvar Stream = require('stream').Stream;\n\nvar DEFAULT_INDENT = ' ';\n\nfunction xml(input, options) {\n\n if (typeof options !== 'object') {\n options = {\n indent: options\n };\n }\n\n var stream = options.stream ? new Stream() : null,\n output = \"\",\n interrupted = false,\n indent = !options.indent ? ''\n : options.indent === true ? DEFAULT_INDENT\n : options.indent,\n instant = true;\n\n\n function delay (func) {\n if (!instant) {\n func();\n } else {\n process.nextTick(func);\n }\n }\n\n function append (interrupt, out) {\n if (out !== undefined) {\n output += out;\n }\n if (interrupt && !interrupted) {\n stream = stream || new Stream();\n interrupted = true;\n }\n if (interrupt && interrupted) {\n var data = output;\n delay(function () { stream.emit('data', data) });\n output = \"\";\n }\n }\n\n function add (value, last) {\n format(append, resolve(value, indent, indent ? 1 : 0), last);\n }\n\n function end() {\n if (stream) {\n var data = output;\n delay(function () {\n stream.emit('data', data);\n stream.emit('end');\n stream.readable = false;\n stream.emit('close');\n });\n }\n }\n\n function addXmlDeclaration(declaration) {\n var encoding = declaration.encoding || 'UTF-8',\n attr = { version: '1.0', encoding: encoding };\n\n if (declaration.standalone) {\n attr.standalone = declaration.standalone\n }\n\n add({'?xml': { _attr: attr } });\n output = output.replace('/>', '?>');\n }\n\n // disable delay delayed\n delay(function () { instant = false });\n\n if (options.declaration) {\n addXmlDeclaration(options.declaration);\n }\n\n if (input && input.forEach) {\n input.forEach(function (value, i) {\n var last;\n if (i + 1 === input.length)\n last = end;\n add(value, last);\n });\n } else {\n add(input, end);\n }\n\n if (stream) {\n stream.readable = true;\n return stream;\n }\n return output;\n}\n\nfunction element (/*input, …*/) {\n var input = Array.prototype.slice.call(arguments),\n self = {\n _elem: resolve(input)\n };\n\n self.push = function (input) {\n if (!this.append) {\n throw new Error(\"not assigned to a parent!\");\n }\n var that = this;\n var indent = this._elem.indent;\n format(this.append, resolve(\n input, indent, this._elem.icount + (indent ? 1 : 0)),\n function () { that.append(true) });\n };\n\n self.close = function (input) {\n if (input !== undefined) {\n this.push(input);\n }\n if (this.end) {\n this.end();\n }\n };\n\n return self;\n}\n\nfunction create_indent(character, count) {\n return (new Array(count || 0).join(character || ''))\n}\n\nfunction resolve(data, indent, indent_count) {\n indent_count = indent_count || 0;\n var indent_spaces = create_indent(indent, indent_count);\n var name;\n var values = data;\n var interrupt = false;\n\n if (typeof data === 'object') {\n var keys = Object.keys(data);\n name = keys[0];\n values = data[name];\n\n if (values && values._elem) {\n values._elem.name = name;\n values._elem.icount = indent_count;\n values._elem.indent = indent;\n values._elem.indents = indent_spaces;\n values._elem.interrupt = values;\n return values._elem;\n }\n }\n\n var attributes = [],\n content = [];\n\n var isStringContent;\n\n function get_attributes(obj){\n var keys = Object.keys(obj);\n keys.forEach(function(key){\n attributes.push(attribute(key, obj[key]));\n });\n }\n\n switch(typeof values) {\n case 'object':\n if (values === null) break;\n\n if (values._attr) {\n get_attributes(values._attr);\n }\n\n if (values._cdata) {\n content.push(\n ('/g, ']]]]>') + ']]>'\n );\n }\n\n if (values.forEach) {\n isStringContent = false;\n content.push('');\n values.forEach(function(value) {\n if (typeof value == 'object') {\n var _name = Object.keys(value)[0];\n\n if (_name == '_attr') {\n get_attributes(value._attr);\n } else {\n content.push(resolve(\n value, indent, indent_count + 1));\n }\n } else {\n //string\n content.pop();\n isStringContent=true;\n content.push(escapeForXML(value));\n }\n\n });\n if (!isStringContent) {\n content.push('');\n }\n }\n break;\n\n default:\n //string\n content.push(escapeForXML(values));\n\n }\n\n return {\n name: name,\n interrupt: interrupt,\n attributes: attributes,\n content: content,\n icount: indent_count,\n indents: indent_spaces,\n indent: indent\n };\n}\n\nfunction format(append, elem, end) {\n\n if (typeof elem != 'object') {\n return append(false, elem);\n }\n\n var len = elem.interrupt ? 1 : elem.content.length;\n\n function proceed () {\n while (elem.content.length) {\n var value = elem.content.shift();\n\n if (value === undefined) continue;\n if (interrupt(value)) return;\n\n format(append, value);\n }\n\n append(false, (len > 1 ? elem.indents : '')\n + (elem.name ? '' : '')\n + (elem.indent && !end ? '\\n' : ''));\n\n if (end) {\n end();\n }\n }\n\n function interrupt(value) {\n if (value.interrupt) {\n value.interrupt.append = append;\n value.interrupt.end = proceed;\n value.interrupt = false;\n append(true);\n return true;\n }\n return false;\n }\n\n append(false, elem.indents\n + (elem.name ? '<' + elem.name : '')\n + (elem.attributes.length ? ' ' + elem.attributes.join(' ') : '')\n + (len ? (elem.name ? '>' : '') : (elem.name ? '/>' : ''))\n + (elem.indent && len > 1 ? '\\n' : ''));\n\n if (!len) {\n return append(false, elem.indent ? '\\n' : '');\n }\n\n if (!interrupt(elem)) {\n proceed();\n }\n}\n\nfunction attribute(key, value) {\n return key + '=' + '\"' + escapeForXML(value) + '\"';\n}\n\nmodule.exports = xml;\nmodule.exports.element = module.exports.Element = element;\n","var map = {\n\t\"./all.js\": 5308,\n\t\"./auth/actions.js\": 5812,\n\t\"./auth/index.js\": 3705,\n\t\"./auth/reducers.js\": 3962,\n\t\"./auth/selectors.js\": 35,\n\t\"./auth/spec-wrap-actions.js\": 8302,\n\t\"./configs/actions.js\": 714,\n\t\"./configs/helpers.js\": 2256,\n\t\"./configs/index.js\": 1661,\n\t\"./configs/reducers.js\": 7743,\n\t\"./configs/selectors.js\": 9018,\n\t\"./configs/spec-actions.js\": 2698,\n\t\"./deep-linking/helpers.js\": 1970,\n\t\"./deep-linking/index.js\": 4980,\n\t\"./deep-linking/layout.js\": 5858,\n\t\"./deep-linking/operation-tag-wrapper.jsx\": 4584,\n\t\"./deep-linking/operation-wrapper.jsx\": 877,\n\t\"./download-url.js\": 8011,\n\t\"./err/actions.js\": 4966,\n\t\"./err/error-transformers/hook.js\": 6808,\n\t\"./err/error-transformers/transformers/not-of-type.js\": 2392,\n\t\"./err/error-transformers/transformers/parameter-oneof.js\": 1835,\n\t\"./err/index.js\": 7793,\n\t\"./err/reducers.js\": 3527,\n\t\"./err/selectors.js\": 7667,\n\t\"./filter/index.js\": 9978,\n\t\"./filter/opsFilter.js\": 4309,\n\t\"./layout/actions.js\": 5474,\n\t\"./layout/index.js\": 6821,\n\t\"./layout/reducers.js\": 5672,\n\t\"./layout/selectors.js\": 4400,\n\t\"./layout/spec-extensions/wrap-selector.js\": 8989,\n\t\"./logs/index.js\": 9150,\n\t\"./oas3/actions.js\": 7002,\n\t\"./oas3/auth-extensions/wrap-selectors.js\": 3723,\n\t\"./oas3/components/callbacks.jsx\": 3427,\n\t\"./oas3/components/http-auth.jsx\": 6775,\n\t\"./oas3/components/index.js\": 6467,\n\t\"./oas3/components/operation-link.jsx\": 5757,\n\t\"./oas3/components/operation-servers.jsx\": 6796,\n\t\"./oas3/components/request-body-editor.jsx\": 5327,\n\t\"./oas3/components/request-body.jsx\": 2458,\n\t\"./oas3/components/servers-container.jsx\": 9928,\n\t\"./oas3/components/servers.jsx\": 6617,\n\t\"./oas3/helpers.jsx\": 7779,\n\t\"./oas3/index.js\": 7451,\n\t\"./oas3/reducers.js\": 9666,\n\t\"./oas3/selectors.js\": 5065,\n\t\"./oas3/spec-extensions/selectors.js\": 1741,\n\t\"./oas3/spec-extensions/wrap-selectors.js\": 2044,\n\t\"./oas3/wrap-components/auth-item.jsx\": 356,\n\t\"./oas3/wrap-components/index.js\": 7761,\n\t\"./oas3/wrap-components/json-schema-string.jsx\": 287,\n\t\"./oas3/wrap-components/markdown.jsx\": 2460,\n\t\"./oas3/wrap-components/model.jsx\": 3499,\n\t\"./oas3/wrap-components/online-validator-badge.js\": 58,\n\t\"./oas3/wrap-components/version-stamp.jsx\": 9487,\n\t\"./on-complete/index.js\": 8560,\n\t\"./request-snippets/fn.js\": 4624,\n\t\"./request-snippets/index.js\": 6575,\n\t\"./request-snippets/request-snippets.jsx\": 4206,\n\t\"./request-snippets/selectors.js\": 4669,\n\t\"./safe-render/components/error-boundary.jsx\": 6195,\n\t\"./safe-render/components/fallback.jsx\": 9403,\n\t\"./safe-render/fn.jsx\": 6189,\n\t\"./safe-render/index.js\": 8102,\n\t\"./samples/fn.js\": 2473,\n\t\"./samples/index.js\": 8883,\n\t\"./spec/actions.js\": 1737,\n\t\"./spec/index.js\": 7038,\n\t\"./spec/reducers.js\": 32,\n\t\"./spec/selectors.js\": 3881,\n\t\"./spec/wrap-actions.js\": 7508,\n\t\"./swagger-js/configs-wrap-actions.js\": 4852,\n\t\"./swagger-js/index.js\": 2990,\n\t\"./util/index.js\": 8525,\n\t\"./view/fn.js\": 8347,\n\t\"./view/index.js\": 3420,\n\t\"./view/root-injects.jsx\": 5005,\n\t\"core/plugins/all.js\": 5308,\n\t\"core/plugins/auth/actions.js\": 5812,\n\t\"core/plugins/auth/index.js\": 3705,\n\t\"core/plugins/auth/reducers.js\": 3962,\n\t\"core/plugins/auth/selectors.js\": 35,\n\t\"core/plugins/auth/spec-wrap-actions.js\": 8302,\n\t\"core/plugins/configs/actions.js\": 714,\n\t\"core/plugins/configs/helpers.js\": 2256,\n\t\"core/plugins/configs/index.js\": 1661,\n\t\"core/plugins/configs/reducers.js\": 7743,\n\t\"core/plugins/configs/selectors.js\": 9018,\n\t\"core/plugins/configs/spec-actions.js\": 2698,\n\t\"core/plugins/deep-linking/helpers.js\": 1970,\n\t\"core/plugins/deep-linking/index.js\": 4980,\n\t\"core/plugins/deep-linking/layout.js\": 5858,\n\t\"core/plugins/deep-linking/operation-tag-wrapper.jsx\": 4584,\n\t\"core/plugins/deep-linking/operation-wrapper.jsx\": 877,\n\t\"core/plugins/download-url.js\": 8011,\n\t\"core/plugins/err/actions.js\": 4966,\n\t\"core/plugins/err/error-transformers/hook.js\": 6808,\n\t\"core/plugins/err/error-transformers/transformers/not-of-type.js\": 2392,\n\t\"core/plugins/err/error-transformers/transformers/parameter-oneof.js\": 1835,\n\t\"core/plugins/err/index.js\": 7793,\n\t\"core/plugins/err/reducers.js\": 3527,\n\t\"core/plugins/err/selectors.js\": 7667,\n\t\"core/plugins/filter/index.js\": 9978,\n\t\"core/plugins/filter/opsFilter.js\": 4309,\n\t\"core/plugins/layout/actions.js\": 5474,\n\t\"core/plugins/layout/index.js\": 6821,\n\t\"core/plugins/layout/reducers.js\": 5672,\n\t\"core/plugins/layout/selectors.js\": 4400,\n\t\"core/plugins/layout/spec-extensions/wrap-selector.js\": 8989,\n\t\"core/plugins/logs/index.js\": 9150,\n\t\"core/plugins/oas3/actions.js\": 7002,\n\t\"core/plugins/oas3/auth-extensions/wrap-selectors.js\": 3723,\n\t\"core/plugins/oas3/components/callbacks.jsx\": 3427,\n\t\"core/plugins/oas3/components/http-auth.jsx\": 6775,\n\t\"core/plugins/oas3/components/index.js\": 6467,\n\t\"core/plugins/oas3/components/operation-link.jsx\": 5757,\n\t\"core/plugins/oas3/components/operation-servers.jsx\": 6796,\n\t\"core/plugins/oas3/components/request-body-editor.jsx\": 5327,\n\t\"core/plugins/oas3/components/request-body.jsx\": 2458,\n\t\"core/plugins/oas3/components/servers-container.jsx\": 9928,\n\t\"core/plugins/oas3/components/servers.jsx\": 6617,\n\t\"core/plugins/oas3/helpers.jsx\": 7779,\n\t\"core/plugins/oas3/index.js\": 7451,\n\t\"core/plugins/oas3/reducers.js\": 9666,\n\t\"core/plugins/oas3/selectors.js\": 5065,\n\t\"core/plugins/oas3/spec-extensions/selectors.js\": 1741,\n\t\"core/plugins/oas3/spec-extensions/wrap-selectors.js\": 2044,\n\t\"core/plugins/oas3/wrap-components/auth-item.jsx\": 356,\n\t\"core/plugins/oas3/wrap-components/index.js\": 7761,\n\t\"core/plugins/oas3/wrap-components/json-schema-string.jsx\": 287,\n\t\"core/plugins/oas3/wrap-components/markdown.jsx\": 2460,\n\t\"core/plugins/oas3/wrap-components/model.jsx\": 3499,\n\t\"core/plugins/oas3/wrap-components/online-validator-badge.js\": 58,\n\t\"core/plugins/oas3/wrap-components/version-stamp.jsx\": 9487,\n\t\"core/plugins/on-complete/index.js\": 8560,\n\t\"core/plugins/request-snippets/fn.js\": 4624,\n\t\"core/plugins/request-snippets/index.js\": 6575,\n\t\"core/plugins/request-snippets/request-snippets.jsx\": 4206,\n\t\"core/plugins/request-snippets/selectors.js\": 4669,\n\t\"core/plugins/safe-render/components/error-boundary.jsx\": 6195,\n\t\"core/plugins/safe-render/components/fallback.jsx\": 9403,\n\t\"core/plugins/safe-render/fn.jsx\": 6189,\n\t\"core/plugins/safe-render/index.js\": 8102,\n\t\"core/plugins/samples/fn.js\": 2473,\n\t\"core/plugins/samples/index.js\": 8883,\n\t\"core/plugins/spec/actions.js\": 1737,\n\t\"core/plugins/spec/index.js\": 7038,\n\t\"core/plugins/spec/reducers.js\": 32,\n\t\"core/plugins/spec/selectors.js\": 3881,\n\t\"core/plugins/spec/wrap-actions.js\": 7508,\n\t\"core/plugins/swagger-js/configs-wrap-actions.js\": 4852,\n\t\"core/plugins/swagger-js/index.js\": 2990,\n\t\"core/plugins/util/index.js\": 8525,\n\t\"core/plugins/view/fn.js\": 8347,\n\t\"core/plugins/view/index.js\": 3420,\n\t\"core/plugins/view/root-injects.jsx\": 5005\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5102;","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_array_from_6be643d1__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_array_is_array_6a843f38__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_bind_23a689fe__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_concat_ad403b1a__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_entries_97fed13d__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_every_ac7bb0bc__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_filter_13f270a8__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_find_0ad1164d__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_for_each_f55cb86b__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_includes_c33ad5d5__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_index_of_5fb826c6__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_keys_3b8fec80__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_map_868765ae__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_reduce_e87b61a7__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_slice_9832b507__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_some_50ff1b2d__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_sort_abe23e03__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_starts_with_a4b73998__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_trim_ca5b709e__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_json_stringify_1bf7a515__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_map_16a511c8__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_object_assign_e13b6141__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_object_keys_e09d3035__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_object_values_550c3b22__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_set_timeout_d31e8027__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_url_4cfab046__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_assertThisInitialized_d1aa492f__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_classCallCheck_bc61e5c4__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_createClass_e5c14ae7__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_createForOfIteratorHelper_d12c79e6__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_createSuper_c6ffd7da__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_defineProperty_807a2698__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_extends_d20d3ceb__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_inherits_12dd5677__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_objectSpread2_89fd8f56__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_objectWithoutProperties_9beedba5__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_slicedToArray_5206d485__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_toConsumableArray_8b04f6fd__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_helpers_typeof_f63a1f14__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_base64_js_f145eb6e__;","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_classnames__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_ieee754__;","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"List\"]: () => __WEBPACK_EXTERNAL_MODULE_immutable__.List, [\"Map\"]: () => __WEBPACK_EXTERNAL_MODULE_immutable__.Map, [\"OrderedMap\"]: () => __WEBPACK_EXTERNAL_MODULE_immutable__.OrderedMap, [\"Seq\"]: () => __WEBPACK_EXTERNAL_MODULE_immutable__.Seq, [\"Set\"]: () => __WEBPACK_EXTERNAL_MODULE_immutable__.Set, [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_immutable__[\"default\"], [\"fromJS\"]: () => __WEBPACK_EXTERNAL_MODULE_immutable__.fromJS });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_js_yaml_78384032__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_get_9427f899__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_isFunction_f90b20d6__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_memoize_2b5bc477__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_prop_types_adfe8e31__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"Component\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.Component, [\"PureComponent\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.PureComponent, [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react__[\"default\"], [\"useEffect\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useEffect, [\"useRef\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useRef, [\"useState\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useState });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"CopyToClipboard\"]: () => __WEBPACK_EXTERNAL_MODULE_react_copy_to_clipboard_5b11dd57__.CopyToClipboard });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_immutable_proptypes_89c7d083__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"applyMiddleware\"]: () => __WEBPACK_EXTERNAL_MODULE_redux__.applyMiddleware, [\"bindActionCreators\"]: () => __WEBPACK_EXTERNAL_MODULE_redux__.bindActionCreators, [\"compose\"]: () => __WEBPACK_EXTERNAL_MODULE_redux__.compose, [\"createStore\"]: () => __WEBPACK_EXTERNAL_MODULE_redux__.createStore });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"Remarkable\"]: () => __WEBPACK_EXTERNAL_MODULE_remarkable__.Remarkable });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"createSelector\"]: () => __WEBPACK_EXTERNAL_MODULE_reselect__.createSelector });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"serializeError\"]: () => __WEBPACK_EXTERNAL_MODULE_serialize_error_5f2df3e5__.serializeError });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"opId\"]: () => __WEBPACK_EXTERNAL_MODULE_swagger_client_es_helpers_4d7bea47__.opId });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_url_parse_6456105f__[\"default\"] });","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_last_index_of_bbdfc000__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"combineReducers\"]: () => __WEBPACK_EXTERNAL_MODULE_redux_immutable_446c9f82__.combineReducers });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_merge_cf99375a__[\"default\"] });","import React from \"react\"\nimport { createStore, applyMiddleware, bindActionCreators, compose } from \"redux\"\nimport Im, { fromJS, Map } from \"immutable\"\nimport deepExtend from \"deep-extend\"\nimport { combineReducers } from \"redux-immutable\"\nimport { serializeError } from \"serialize-error\"\nimport merge from \"lodash/merge\"\nimport { NEW_THROWN_ERR } from \"corePlugins/err/actions\"\nimport win from \"core/window\"\n\nimport { systemThunkMiddleware, isFn, objMap, objReduce, isObject, isArray, isFunc } from \"core/utils\"\n\nconst idFn = a => a\n\n// Apply middleware that gets sandwitched between `dispatch` and the reducer function(s)\nfunction createStoreWithMiddleware(rootReducer, initialState, getSystem) {\n\n let middlwares = [\n // createLogger( {\n // stateTransformer: state => state && state.toJS()\n // } ),\n systemThunkMiddleware( getSystem )\n ]\n\n const composeEnhancers = win.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\n\n return createStore(rootReducer, initialState, composeEnhancers(\n applyMiddleware( ...middlwares )\n ))\n}\n\nexport default class Store {\n\n constructor(opts={}) {\n deepExtend(this, {\n state: {},\n plugins: [],\n pluginsOptions: {},\n system: {\n configs: {},\n fn: {},\n components: {},\n rootInjects: {},\n statePlugins: {}\n },\n boundSystem: {},\n toolbox: {}\n }, opts)\n\n this.getSystem = this._getSystem.bind(this)\n\n // Bare system (nothing in it, besides the state)\n this.store = configureStore(idFn, fromJS(this.state), this.getSystem )\n\n // will be the system + Im, we can add more tools when we need to\n this.buildSystem(false)\n\n // Bootstrap plugins\n this.register(this.plugins)\n }\n\n getStore() {\n return this.store\n }\n\n register(plugins, rebuild=true) {\n var pluginSystem = combinePlugins(plugins, this.getSystem(), this.pluginsOptions)\n systemExtend(this.system, pluginSystem)\n if(rebuild) {\n this.buildSystem()\n }\n\n const needAnotherRebuild = callAfterLoad.call(this.system, plugins, this.getSystem())\n\n if(needAnotherRebuild) {\n this.buildSystem()\n }\n }\n\n buildSystem(buildReducer=true) {\n let dispatch = this.getStore().dispatch\n let getState = this.getStore().getState\n\n this.boundSystem = Object.assign({},\n this.getRootInjects(),\n this.getWrappedAndBoundActions(dispatch),\n this.getWrappedAndBoundSelectors(getState, this.getSystem),\n this.getStateThunks(getState),\n this.getFn(),\n this.getConfigs()\n )\n\n if(buildReducer)\n this.rebuildReducer()\n }\n\n _getSystem() {\n return this.boundSystem\n }\n\n getRootInjects() {\n return Object.assign({\n getSystem: this.getSystem,\n getStore: this.getStore.bind(this),\n getComponents: this.getComponents.bind(this),\n getState: this.getStore().getState,\n getConfigs: this._getConfigs.bind(this),\n Im,\n React\n }, this.system.rootInjects || {})\n }\n\n _getConfigs(){\n return this.system.configs\n }\n\n getConfigs() {\n return {\n configs: this.system.configs\n }\n }\n\n setConfigs(configs) {\n this.system.configs = configs\n }\n\n rebuildReducer() {\n this.store.replaceReducer(buildReducer(this.system.statePlugins))\n }\n\n /**\n * Generic getter from system.statePlugins\n *\n */\n getType(name) {\n let upName = name[0].toUpperCase() + name.slice(1)\n return objReduce(this.system.statePlugins, (val, namespace) => {\n let thing = val[name]\n if(thing)\n return {[namespace+upName]: thing}\n })\n }\n\n getSelectors() {\n return this.getType(\"selectors\")\n }\n\n getActions() {\n let actionHolders = this.getType(\"actions\")\n\n return objMap(actionHolders, (actions) => {\n return objReduce(actions, (action, actionName) => {\n if(isFn(action))\n return {[actionName]: action}\n })\n })\n }\n\n getWrappedAndBoundActions(dispatch) {\n let actionGroups = this.getBoundActions(dispatch)\n return objMap(actionGroups, (actions, actionGroupName) => {\n let wrappers = this.system.statePlugins[actionGroupName.slice(0,-7)].wrapActions\n if(wrappers) {\n return objMap(actions, (action, actionName) => {\n let wrap = wrappers[actionName]\n if(!wrap) {\n return action\n }\n\n if(!Array.isArray(wrap)) {\n wrap = [wrap]\n }\n return wrap.reduce((acc, fn) => {\n let newAction = (...args) => {\n return fn(acc, this.getSystem())(...args)\n }\n if(!isFn(newAction)) {\n throw new TypeError(\"wrapActions needs to return a function that returns a new function (ie the wrapped action)\")\n }\n return wrapWithTryCatch(newAction)\n }, action || Function.prototype)\n })\n }\n return actions\n })\n }\n\n getWrappedAndBoundSelectors(getState, getSystem) {\n let selectorGroups = this.getBoundSelectors(getState, getSystem)\n return objMap(selectorGroups, (selectors, selectorGroupName) => {\n let stateName = [selectorGroupName.slice(0, -9)] // selectors = 9 chars\n let wrappers = this.system.statePlugins[stateName].wrapSelectors\n if(wrappers) {\n return objMap(selectors, (selector, selectorName) => {\n let wrap = wrappers[selectorName]\n if(!wrap) {\n return selector\n }\n\n if(!Array.isArray(wrap)) {\n wrap = [wrap]\n }\n return wrap.reduce((acc, fn) => {\n let wrappedSelector = (...args) => {\n return fn(acc, this.getSystem())(getState().getIn(stateName), ...args)\n }\n if(!isFn(wrappedSelector)) {\n throw new TypeError(\"wrapSelector needs to return a function that returns a new function (ie the wrapped action)\")\n }\n return wrappedSelector\n }, selector || Function.prototype)\n })\n }\n return selectors\n })\n }\n\n getStates(state) {\n return Object.keys(this.system.statePlugins).reduce((obj, key) => {\n obj[key] = state.get(key)\n return obj\n }, {})\n }\n\n getStateThunks(getState) {\n return Object.keys(this.system.statePlugins).reduce((obj, key) => {\n obj[key] = ()=> getState().get(key)\n return obj\n }, {})\n }\n\n getFn() {\n return {\n fn: this.system.fn\n }\n }\n\n getComponents(component) {\n const res = this.system.components[component]\n\n if(Array.isArray(res)) {\n return res.reduce((ori, wrapper) => {\n return wrapper(ori, this.getSystem())\n })\n }\n if(typeof component !== \"undefined\") {\n return this.system.components[component]\n }\n\n return this.system.components\n }\n\n getBoundSelectors(getState, getSystem) {\n return objMap(this.getSelectors(), (obj, key) => {\n let stateName = [key.slice(0, -9)] // selectors = 9 chars\n const getNestedState = ()=> getState().getIn(stateName)\n\n return objMap(obj, (fn) => {\n return (...args) => {\n let res = wrapWithTryCatch(fn).apply(null, [getNestedState(), ...args])\n\n // If a selector returns a function, give it the system - for advanced usage\n if(typeof(res) === \"function\")\n res = wrapWithTryCatch(res)(getSystem())\n\n return res\n }\n })\n })\n }\n\n getBoundActions(dispatch) {\n\n dispatch = dispatch || this.getStore().dispatch\n\n const actions = this.getActions()\n\n const process = creator =>{\n if( typeof( creator ) !== \"function\" ) {\n return objMap(creator, prop => process(prop))\n }\n\n return ( ...args )=>{\n var action = null\n try{\n action = creator( ...args )\n }\n catch( e ){\n action = {type: NEW_THROWN_ERR, error: true, payload: serializeError(e) }\n }\n finally{\n return action // eslint-disable-line no-unsafe-finally\n }\n }\n\n }\n return objMap(actions, actionCreator => bindActionCreators( process( actionCreator ), dispatch ) )\n }\n\n getMapStateToProps() {\n return () => {\n return Object.assign({}, this.getSystem())\n }\n }\n\n getMapDispatchToProps(extras) {\n return (dispatch) => {\n return deepExtend({}, this.getWrappedAndBoundActions(dispatch), this.getFn(), extras)\n }\n }\n\n}\n\nfunction combinePlugins(plugins, toolbox, pluginOptions) {\n if(isObject(plugins) && !isArray(plugins)) {\n return merge({}, plugins)\n }\n\n if(isFunc(plugins)) {\n return combinePlugins(plugins(toolbox), toolbox, pluginOptions)\n }\n\n if(isArray(plugins)) {\n const dest = pluginOptions.pluginLoadType === \"chain\" ? toolbox.getComponents() : {}\n\n return plugins\n .map(plugin => combinePlugins(plugin, toolbox, pluginOptions))\n .reduce(systemExtend, dest)\n }\n\n return {}\n}\n\nfunction callAfterLoad(plugins, system, { hasLoaded } = {}) {\n let calledSomething = hasLoaded\n if(isObject(plugins) && !isArray(plugins)) {\n if(typeof plugins.afterLoad === \"function\") {\n calledSomething = true\n wrapWithTryCatch(plugins.afterLoad).call(this, system)\n }\n }\n\n if(isFunc(plugins))\n return callAfterLoad.call(this, plugins(system), system, { hasLoaded: calledSomething })\n\n if(isArray(plugins)) {\n return plugins.map(plugin => callAfterLoad.call(this, plugin, system, { hasLoaded: calledSomething }))\n }\n\n return calledSomething\n}\n\n// Wraps deepExtend, to account for certain fields, being wrappers.\n// Ie: we need to convert some fields into arrays, and append to them.\n// Rather than overwrite\nfunction systemExtend(dest={}, src={}) {\n\n if(!isObject(dest)) {\n return {}\n }\n if(!isObject(src)) {\n return dest\n }\n\n // Wrap components\n // Parses existing components in the system, and prepares them for wrapping via getComponents\n if(src.wrapComponents) {\n objMap(src.wrapComponents, (wrapperFn, key) => {\n const ori = dest.components && dest.components[key]\n if(ori && Array.isArray(ori)) {\n dest.components[key] = ori.concat([wrapperFn])\n delete src.wrapComponents[key]\n } else if(ori) {\n dest.components[key] = [ori, wrapperFn]\n delete src.wrapComponents[key]\n }\n })\n\n if(!Object.keys(src.wrapComponents).length) {\n // only delete wrapComponents if we've matched all of our wrappers to components\n // this handles cases where the component to wrap may be out of our scope,\n // but a higher recursive `combinePlugins` call will be able to handle it.\n delete src.wrapComponents\n }\n }\n\n\n // Account for wrapActions, make it an array and append to it\n // Modifies `src`\n // 80% of this code is just safe traversal. We need to address that ( ie: use a lib )\n const { statePlugins } = dest\n if(isObject(statePlugins)) {\n for(let namespace in statePlugins) {\n const namespaceObj = statePlugins[namespace]\n if(!isObject(namespaceObj)) {\n continue\n }\n\n const { wrapActions, wrapSelectors } = namespaceObj\n\n // process action wrapping\n if (isObject(wrapActions)) {\n for(let actionName in wrapActions) {\n let action = wrapActions[actionName]\n\n // This should only happen if dest is the first plugin, since invocations after that will ensure its an array\n if(!Array.isArray(action)) {\n action = [action]\n wrapActions[actionName] = action // Put the value inside an array\n }\n\n if(src && src.statePlugins && src.statePlugins[namespace] && src.statePlugins[namespace].wrapActions && src.statePlugins[namespace].wrapActions[actionName]) {\n src.statePlugins[namespace].wrapActions[actionName] = wrapActions[actionName].concat(src.statePlugins[namespace].wrapActions[actionName])\n }\n\n }\n }\n\n // process selector wrapping\n if (isObject(wrapSelectors)) {\n for(let selectorName in wrapSelectors) {\n let selector = wrapSelectors[selectorName]\n\n // This should only happen if dest is the first plugin, since invocations after that will ensure its an array\n if(!Array.isArray(selector)) {\n selector = [selector]\n wrapSelectors[selectorName] = selector // Put the value inside an array\n }\n\n if(src && src.statePlugins && src.statePlugins[namespace] && src.statePlugins[namespace].wrapSelectors && src.statePlugins[namespace].wrapSelectors[selectorName]) {\n src.statePlugins[namespace].wrapSelectors[selectorName] = wrapSelectors[selectorName].concat(src.statePlugins[namespace].wrapSelectors[selectorName])\n }\n\n }\n }\n }\n }\n\n return deepExtend(dest, src)\n}\n\nfunction buildReducer(states) {\n let reducerObj = objMap(states, (val) => {\n return val.reducers\n })\n return allReducers(reducerObj)\n}\n\nfunction allReducers(reducerSystem) {\n let reducers = Object.keys(reducerSystem).reduce((obj, key) => {\n obj[key] = makeReducer(reducerSystem[key])\n return obj\n },{})\n\n if(!Object.keys(reducers).length) {\n return idFn\n }\n\n return combineReducers(reducers)\n}\n\nfunction makeReducer(reducerObj) {\n return (state = new Map(), action) => {\n if(!reducerObj)\n return state\n\n let redFn = (reducerObj[action.type])\n if(redFn) {\n const res = wrapWithTryCatch(redFn)(state, action)\n // If the try/catch wrapper kicks in, we'll get null back...\n // in that case, we want to avoid making any changes to state\n return res === null ? state : res\n }\n return state\n }\n}\n\nfunction wrapWithTryCatch(fn, {\n logErrors = true\n} = {}) {\n if(typeof fn !== \"function\") {\n return fn\n }\n\n return function(...args) {\n try {\n return fn.call(this, ...args)\n } catch(e) {\n if(logErrors) {\n console.error(e)\n }\n return null\n }\n }\n}\n\nfunction configureStore(rootReducer, initialState, getSystem) {\n const store = createStoreWithMiddleware(rootReducer, initialState, getSystem)\n\n // if (module.hot) {\n // // Enable Webpack hot module replacement for reducers\n // module.hot.accept(\"reducers/index\", () => {\n // const nextRootReducer = require(\"reducers/index\")\n // store.replaceReducer(nextRootReducer)\n // })\n // }\n\n return store\n}\n","import React, { PureComponent } from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport { opId } from \"swagger-client/es/helpers\"\nimport { Iterable, fromJS, Map } from \"immutable\"\n\nexport default class OperationContainer extends PureComponent {\n constructor(props, context) {\n super(props, context)\n\n const { tryItOutEnabled } = props.getConfigs()\n\n this.state = {\n tryItOutEnabled: tryItOutEnabled === true || tryItOutEnabled === \"true\",\n executeInProgress: false\n }\n }\n\n static propTypes = {\n op: PropTypes.instanceOf(Iterable).isRequired,\n tag: PropTypes.string.isRequired,\n path: PropTypes.string.isRequired,\n method: PropTypes.string.isRequired,\n operationId: PropTypes.string.isRequired,\n showSummary: PropTypes.bool.isRequired,\n isShown: PropTypes.bool.isRequired,\n jumpToKey: PropTypes.string.isRequired,\n allowTryItOut: PropTypes.bool,\n displayOperationId: PropTypes.bool,\n isAuthorized: PropTypes.bool,\n displayRequestDuration: PropTypes.bool,\n response: PropTypes.instanceOf(Iterable),\n request: PropTypes.instanceOf(Iterable),\n security: PropTypes.instanceOf(Iterable),\n isDeepLinkingEnabled: PropTypes.bool.isRequired,\n specPath: ImPropTypes.list.isRequired,\n getComponent: PropTypes.func.isRequired,\n authActions: PropTypes.object,\n oas3Actions: PropTypes.object,\n oas3Selectors: PropTypes.object,\n authSelectors: PropTypes.object,\n specActions: PropTypes.object.isRequired,\n specSelectors: PropTypes.object.isRequired,\n layoutActions: PropTypes.object.isRequired,\n layoutSelectors: PropTypes.object.isRequired,\n fn: PropTypes.object.isRequired,\n getConfigs: PropTypes.func.isRequired\n }\n\n static defaultProps = {\n showSummary: true,\n response: null,\n allowTryItOut: true,\n displayOperationId: false,\n displayRequestDuration: false\n }\n\n mapStateToProps(nextState, props) {\n const { op, layoutSelectors, getConfigs } = props\n const { docExpansion, deepLinking, displayOperationId, displayRequestDuration, supportedSubmitMethods } = getConfigs()\n const showSummary = layoutSelectors.showSummary()\n const operationId = op.getIn([\"operation\", \"__originalOperationId\"]) || op.getIn([\"operation\", \"operationId\"]) || opId(op.get(\"operation\"), props.path, props.method) || op.get(\"id\")\n const isShownKey = [\"operations\", props.tag, operationId]\n const isDeepLinkingEnabled = deepLinking && deepLinking !== \"false\"\n const allowTryItOut = supportedSubmitMethods.indexOf(props.method) >= 0 && (typeof props.allowTryItOut === \"undefined\" ?\n props.specSelectors.allowTryItOutFor(props.path, props.method) : props.allowTryItOut)\n const security = op.getIn([\"operation\", \"security\"]) || props.specSelectors.security()\n\n return {\n operationId,\n isDeepLinkingEnabled,\n showSummary,\n displayOperationId,\n displayRequestDuration,\n allowTryItOut,\n security,\n isAuthorized: props.authSelectors.isAuthorized(security),\n isShown: layoutSelectors.isShown(isShownKey, docExpansion === \"full\" ),\n jumpToKey: `paths.${props.path}.${props.method}`,\n response: props.specSelectors.responseFor(props.path, props.method),\n request: props.specSelectors.requestFor(props.path, props.method)\n }\n }\n\n componentDidMount() {\n const { isShown } = this.props\n const resolvedSubtree = this.getResolvedSubtree()\n\n if(isShown && resolvedSubtree === undefined) {\n this.requestResolvedSubtree()\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { response, isShown } = nextProps\n const resolvedSubtree = this.getResolvedSubtree()\n\n if(response !== this.props.response) {\n this.setState({ executeInProgress: false })\n }\n\n if(isShown && resolvedSubtree === undefined) {\n this.requestResolvedSubtree()\n }\n }\n\n toggleShown =() => {\n let { layoutActions, tag, operationId, isShown } = this.props\n const resolvedSubtree = this.getResolvedSubtree()\n if(!isShown && resolvedSubtree === undefined) {\n // transitioning from collapsed to expanded\n this.requestResolvedSubtree()\n }\n layoutActions.show([\"operations\", tag, operationId], !isShown)\n }\n\n onCancelClick=() => {\n this.setState({tryItOutEnabled: !this.state.tryItOutEnabled})\n }\n\n onTryoutClick =() => {\n this.setState({tryItOutEnabled: !this.state.tryItOutEnabled})\n }\n\n onExecute = () => {\n this.setState({ executeInProgress: true })\n }\n\n getResolvedSubtree = () => {\n const {\n specSelectors,\n path,\n method,\n specPath\n } = this.props\n\n if(specPath) {\n return specSelectors.specResolvedSubtree(specPath.toJS())\n }\n\n return specSelectors.specResolvedSubtree([\"paths\", path, method])\n }\n\n requestResolvedSubtree = () => {\n const {\n specActions,\n path,\n method,\n specPath\n } = this.props\n\n\n if(specPath) {\n return specActions.requestResolvedSubtree(specPath.toJS())\n }\n\n return specActions.requestResolvedSubtree([\"paths\", path, method])\n }\n\n render() {\n let {\n op: unresolvedOp,\n tag,\n path,\n method,\n security,\n isAuthorized,\n operationId,\n showSummary,\n isShown,\n jumpToKey,\n allowTryItOut,\n response,\n request,\n displayOperationId,\n displayRequestDuration,\n isDeepLinkingEnabled,\n specPath,\n specSelectors,\n specActions,\n getComponent,\n getConfigs,\n layoutSelectors,\n layoutActions,\n authActions,\n authSelectors,\n oas3Actions,\n oas3Selectors,\n fn\n } = this.props\n\n const Operation = getComponent( \"operation\" )\n\n const resolvedSubtree = this.getResolvedSubtree() || Map()\n\n const operationProps = fromJS({\n op: resolvedSubtree,\n tag,\n path,\n summary: unresolvedOp.getIn([\"operation\", \"summary\"]) || \"\",\n deprecated: resolvedSubtree.get(\"deprecated\") || unresolvedOp.getIn([\"operation\", \"deprecated\"]) || false,\n method,\n security,\n isAuthorized,\n operationId,\n originalOperationId: resolvedSubtree.getIn([\"operation\", \"__originalOperationId\"]),\n showSummary,\n isShown,\n jumpToKey,\n allowTryItOut,\n request,\n displayOperationId,\n displayRequestDuration,\n isDeepLinkingEnabled,\n executeInProgress: this.state.executeInProgress,\n tryItOutEnabled: this.state.tryItOutEnabled\n })\n\n return (\n \n )\n }\n\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class App extends React.Component {\n\n getLayout() {\n let { getComponent, layoutSelectors } = this.props\n const layoutName = layoutSelectors.current()\n const Component = getComponent(layoutName, true)\n return Component ? Component : ()=>

No layout defined for "{layoutName}"

\n }\n\n render() {\n const Layout = this.getLayout()\n\n return (\n \n )\n }\n}\n\nApp.propTypes = {\n getComponent: PropTypes.func.isRequired,\n layoutSelectors: PropTypes.object.isRequired,\n}\n\nApp.defaultProps = {\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class AuthorizationPopup extends React.Component {\n close =() => {\n let { authActions } = this.props\n\n authActions.showDefinitions(false)\n }\n\n render() {\n let { authSelectors, authActions, getComponent, errSelectors, specSelectors, fn: { AST = {} } } = this.props\n let definitions = authSelectors.shownDefinitions()\n const Auths = getComponent(\"auths\")\n\n return (\n
\n
\n
\n
\n
\n
\n

Available authorizations

\n \n
\n
\n\n {\n definitions.valueSeq().map(( definition, key ) => {\n return \n })\n }\n
\n
\n
\n
\n
\n )\n }\n\n static propTypes = {\n fn: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n authSelectors: PropTypes.object.isRequired,\n specSelectors: PropTypes.object.isRequired,\n errSelectors: PropTypes.object.isRequired,\n authActions: PropTypes.object.isRequired,\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class AuthorizeBtn extends React.Component {\n static propTypes = {\n onClick: PropTypes.func,\n isAuthorized: PropTypes.bool,\n showPopup: PropTypes.bool,\n getComponent: PropTypes.func.isRequired\n }\n\n render() {\n let { isAuthorized, showPopup, onClick, getComponent } = this.props\n\n //must be moved out of button component\n const AuthorizationPopup = getComponent(\"authorizationPopup\", true)\n\n return (\n
\n \n { showPopup && }\n
\n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class AuthorizeBtnContainer extends React.Component {\n\n static propTypes = {\n specActions: PropTypes.object.isRequired,\n specSelectors: PropTypes.object.isRequired,\n authActions: PropTypes.object.isRequired,\n authSelectors: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired\n }\n\n render () {\n const { authActions, authSelectors, specSelectors, getComponent} = this.props\n \n const securityDefinitions = specSelectors.securityDefinitions()\n const authorizableDefinitions = authSelectors.definitionsToAuthorize()\n\n const AuthorizeBtn = getComponent(\"authorizeBtn\")\n\n return securityDefinitions ? (\n authActions.showDefinitions(authorizableDefinitions)}\n isAuthorized={!!authSelectors.authorized().size}\n showPopup={!!authSelectors.shownDefinitions()}\n getComponent={getComponent}\n />\n ) : null\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class AuthorizeOperationBtn extends React.Component {\n static propTypes = {\n isAuthorized: PropTypes.bool.isRequired,\n onClick: PropTypes.func\n }\n\n onClick =(e) => {\n e.stopPropagation()\n let { onClick } = this.props\n\n if(onClick) {\n onClick()\n }\n }\n\n render() {\n let { isAuthorized } = this.props\n\n return (\n \n\n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nexport default class Auths extends React.Component {\n static propTypes = {\n definitions: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n authSelectors: PropTypes.object.isRequired,\n authActions: PropTypes.object.isRequired,\n specSelectors: PropTypes.object.isRequired\n }\n\n constructor(props, context) {\n super(props, context)\n\n this.state = {}\n }\n\n onAuthChange =(auth) => {\n let { name } = auth\n\n this.setState({ [name]: auth })\n }\n\n submitAuth =(e) => {\n e.preventDefault()\n\n let { authActions } = this.props\n authActions.authorizeWithPersistOption(this.state)\n }\n\n logoutClick =(e) => {\n e.preventDefault()\n\n let { authActions, definitions } = this.props\n let auths = definitions.map( (val, key) => {\n return key\n }).toArray()\n\n this.setState(auths.reduce((prev, auth) => {\n prev[auth] = \"\"\n return prev\n }, {}))\n\n authActions.logoutWithPersistOption(auths)\n }\n\n close =(e) => {\n e.preventDefault()\n let { authActions } = this.props\n\n authActions.showDefinitions(false)\n }\n\n render() {\n let { definitions, getComponent, authSelectors, errSelectors } = this.props\n const AuthItem = getComponent(\"AuthItem\")\n const Oauth2 = getComponent(\"oauth2\", true)\n const Button = getComponent(\"Button\")\n\n let authorized = authSelectors.authorized()\n\n let authorizedAuth = definitions.filter( (definition, key) => {\n return !!authorized.get(key)\n })\n\n let nonOauthDefinitions = definitions.filter( schema => schema.get(\"type\") !== \"oauth2\")\n let oauthDefinitions = definitions.filter( schema => schema.get(\"type\") === \"oauth2\")\n\n return (\n
\n {\n !!nonOauthDefinitions.size &&
\n {\n nonOauthDefinitions.map( (schema, name) => {\n return \n }).toArray()\n }\n
\n {\n nonOauthDefinitions.size === authorizedAuth.size ? \n : \n }\n \n
\n \n }\n\n {\n oauthDefinitions && oauthDefinitions.size ?
\n
\n

Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes.

\n

API requires the following scopes. Select which ones you want to grant to Swagger UI.

\n
\n {\n definitions.filter( schema => schema.get(\"type\") === \"oauth2\")\n .map( (schema, name) =>{\n return (
\n \n
)\n }\n ).toArray()\n }\n
: null\n }\n\n
\n )\n }\n\n static propTypes = {\n errSelectors: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n authSelectors: PropTypes.object.isRequired,\n specSelectors: PropTypes.object.isRequired,\n authActions: PropTypes.object.isRequired,\n definitions: ImPropTypes.iterable.isRequired\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nexport default class Auths extends React.Component {\n static propTypes = {\n schema: ImPropTypes.orderedMap.isRequired,\n name: PropTypes.string.isRequired,\n onAuthChange: PropTypes.func.isRequired,\n authorized: ImPropTypes.orderedMap.isRequired\n }\n\n render() {\n let {\n schema,\n name,\n getComponent,\n onAuthChange,\n authorized,\n errSelectors\n } = this.props\n const ApiKeyAuth = getComponent(\"apiKeyAuth\")\n const BasicAuth = getComponent(\"basicAuth\")\n\n let authEl\n\n const type = schema.get(\"type\")\n\n switch(type) {\n case \"apiKey\": authEl = \n break\n case \"basic\": authEl = \n break\n default: authEl =
Unknown security definition type { type }
\n }\n\n return (
\n { authEl }\n
)\n }\n\n static propTypes = {\n errSelectors: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n authSelectors: PropTypes.object.isRequired,\n specSelectors: PropTypes.object.isRequired,\n authActions: PropTypes.object.isRequired,\n definitions: ImPropTypes.iterable.isRequired\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class AuthError extends React.Component {\n\n static propTypes = {\n error: PropTypes.object.isRequired\n }\n\n render() {\n let { error } = this.props\n\n let level = error.get(\"level\")\n let message = error.get(\"message\")\n let source = error.get(\"source\")\n\n return (\n
\n { source } { level }\n { message }\n
\n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class ApiKeyAuth extends React.Component {\n static propTypes = {\n authorized: PropTypes.object,\n getComponent: PropTypes.func.isRequired,\n errSelectors: PropTypes.object.isRequired,\n schema: PropTypes.object.isRequired,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func\n }\n\n constructor(props, context) {\n super(props, context)\n let { name, schema } = this.props\n let value = this.getValue()\n\n this.state = {\n name: name,\n schema: schema,\n value: value\n }\n }\n\n getValue () {\n let { name, authorized } = this.props\n\n return authorized && authorized.getIn([name, \"value\"])\n }\n\n onChange =(e) => {\n let { onChange } = this.props\n let value = e.target.value\n let newState = Object.assign({}, this.state, { value: value })\n\n this.setState(newState)\n onChange(newState)\n }\n\n render() {\n let { schema, getComponent, errSelectors, name } = this.props\n const Input = getComponent(\"Input\")\n const Row = getComponent(\"Row\")\n const Col = getComponent(\"Col\")\n const AuthError = getComponent(\"authError\")\n const Markdown = getComponent(\"Markdown\", true)\n const JumpToPath = getComponent(\"JumpToPath\", true)\n let value = this.getValue()\n let errors = errSelectors.allErrors().filter( err => err.get(\"authId\") === name)\n\n return (\n
\n

\n { name || schema.get(\"name\") } (apiKey)\n \n

\n { value &&
Authorized
}\n \n \n \n \n

Name: { schema.get(\"name\") }

\n
\n \n

In: { schema.get(\"in\") }

\n
\n \n \n {\n value ? ****** \n : \n }\n \n {\n errors.valueSeq().map( (error, key) => {\n return \n } )\n }\n
\n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nexport default class BasicAuth extends React.Component {\n static propTypes = {\n authorized: PropTypes.object,\n getComponent: PropTypes.func.isRequired,\n schema: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired\n }\n\n constructor(props, context) {\n super(props, context)\n let { schema, name } = this.props\n\n let value = this.getValue()\n let username = value.username\n\n this.state = {\n name: name,\n schema: schema,\n value: !username ? {} : {\n username: username\n }\n }\n }\n\n getValue () {\n let { authorized, name } = this.props\n\n return authorized && authorized.getIn([name, \"value\"]) || {}\n }\n\n onChange =(e) => {\n let { onChange } = this.props\n let { value, name } = e.target\n\n let newValue = this.state.value\n newValue[name] = value\n\n this.setState({ value: newValue })\n\n onChange(this.state)\n }\n\n render() {\n let { schema, getComponent, name, errSelectors } = this.props\n const Input = getComponent(\"Input\")\n const Row = getComponent(\"Row\")\n const Col = getComponent(\"Col\")\n const AuthError = getComponent(\"authError\")\n const JumpToPath = getComponent(\"JumpToPath\", true)\n const Markdown = getComponent(\"Markdown\", true)\n let username = this.getValue().username\n let errors = errSelectors.allErrors().filter( err => err.get(\"authId\") === name)\n\n return (\n
\n

Basic authorization

\n { username &&
Authorized
}\n \n \n \n \n \n {\n username ? { username } \n : \n }\n \n \n \n {\n username ? ****** \n : \n }\n \n {\n errors.valueSeq().map( (error, key) => {\n return \n } )\n }\n
\n )\n }\n\n static propTypes = {\n name: PropTypes.string.isRequired,\n errSelectors: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n onChange: PropTypes.func,\n schema: ImPropTypes.map,\n authorized: ImPropTypes.map\n }\n}\n","/**\n * @prettier\n */\n\nimport React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport { stringify } from \"core/utils\"\n\nexport default function Example(props) {\n const { example, showValue, getComponent, getConfigs } = props\n\n const Markdown = getComponent(\"Markdown\", true)\n const HighlightCode = getComponent(\"highlightCode\")\n\n if(!example) return null\n\n return (\n
\n {example.get(\"description\") ? (\n
\n
Example Description
\n

\n \n

\n
\n ) : null}\n {showValue && example.has(\"value\") ? (\n
\n
Example Value
\n \n
\n ) : null}\n
\n )\n}\n\nExample.propTypes = {\n example: ImPropTypes.map.isRequired,\n showValue: PropTypes.bool,\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.getConfigs,\n}\n","/**\n * @prettier\n */\n\nimport React from \"react\"\nimport Im from \"immutable\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nexport default class ExamplesSelect extends React.PureComponent {\n static propTypes = {\n examples: ImPropTypes.map.isRequired,\n onSelect: PropTypes.func,\n currentExampleKey: PropTypes.string,\n isModifiedValueAvailable: PropTypes.bool,\n isValueModified: PropTypes.bool,\n showLabels: PropTypes.bool,\n }\n\n static defaultProps = {\n examples: Im.Map({}),\n onSelect: (...args) =>\n console.log( // eslint-disable-line no-console\n // FIXME: remove before merging to master...\n `DEBUG: ExamplesSelect was not given an onSelect callback`,\n ...args\n ),\n currentExampleKey: null,\n showLabels: true,\n }\n\n _onSelect = (key, { isSyntheticChange = false } = {}) => {\n if (typeof this.props.onSelect === \"function\") {\n this.props.onSelect(key, {\n isSyntheticChange,\n })\n }\n }\n\n _onDomSelect = e => {\n if (typeof this.props.onSelect === \"function\") {\n const element = e.target.selectedOptions[0]\n const key = element.getAttribute(\"value\")\n\n this._onSelect(key, {\n isSyntheticChange: false,\n })\n }\n }\n\n getCurrentExample = () => {\n const { examples, currentExampleKey } = this.props\n\n const currentExamplePerProps = examples.get(currentExampleKey)\n\n const firstExamplesKey = examples.keySeq().first()\n const firstExample = examples.get(firstExamplesKey)\n\n return currentExamplePerProps || firstExample || Map({})\n }\n\n componentDidMount() {\n // this is the not-so-great part of ExamplesSelect... here we're\n // artificially kicking off an onSelect event in order to set a default\n // value in state. the consumer has the option to avoid this by checking\n // `isSyntheticEvent`, but we should really be doing this in a selector.\n // TODO: clean this up\n // FIXME: should this only trigger if `currentExamplesKey` is nullish?\n const { onSelect, examples } = this.props\n\n if (typeof onSelect === \"function\") {\n const firstExample = examples.first()\n const firstExampleKey = examples.keyOf(firstExample)\n\n this._onSelect(firstExampleKey, {\n isSyntheticChange: true,\n })\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { currentExampleKey, examples } = nextProps\n if (examples !== this.props.examples && !examples.has(currentExampleKey)) {\n // examples have changed from under us, and the currentExampleKey is no longer\n // valid.\n const firstExample = examples.first()\n const firstExampleKey = examples.keyOf(firstExample)\n\n this._onSelect(firstExampleKey, {\n isSyntheticChange: true,\n })\n }\n }\n\n render() {\n const {\n examples,\n currentExampleKey,\n isValueModified,\n isModifiedValueAvailable,\n showLabels,\n } = this.props\n\n return (\n
\n {\n showLabels ? (\n Examples: \n ) : null\n }\n \n {isModifiedValueAvailable ? (\n \n ) : null}\n {examples\n .map((example, exampleName) => {\n return (\n \n {example.get(\"summary\") || exampleName}\n \n )\n })\n .valueSeq()}\n \n
\n )\n }\n}\n","/**\n * @prettier\n */\nimport React from \"react\"\nimport { Map, List } from \"immutable\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nimport { stringify } from \"core/utils\"\n\n// This stateful component lets us avoid writing competing values (user\n// modifications vs example values) into global state, and the mess that comes\n// with that: tracking which of the two values are currently used for\n// Try-It-Out, which example a modified value came from, etc...\n//\n// The solution here is to retain the last user-modified value in\n// ExamplesSelectValueRetainer's component state, so that our global state can stay\n// clean, always simply being the source of truth for what value should be both\n// displayed to the user and used as a value during request execution.\n//\n// This approach/tradeoff was chosen in order to encapsulate the particular\n// logic of Examples within the Examples component tree, and to avoid\n// regressions within our current implementation elsewhere (non-Examples\n// definitions, OpenAPI 2.0, etc). A future refactor to global state might make\n// this component unnecessary.\n//\n// TL;DR: this is not our usual approach, but the choice was made consciously.\n\n// Note that `currentNamespace` isn't currently used anywhere!\n\nconst stringifyUnlessList = input =>\n List.isList(input) ? input : stringify(input)\n\nexport default class ExamplesSelectValueRetainer extends React.PureComponent {\n static propTypes = {\n examples: ImPropTypes.map,\n onSelect: PropTypes.func,\n updateValue: PropTypes.func, // mechanism to update upstream value\n userHasEditedBody: PropTypes.bool,\n getComponent: PropTypes.func.isRequired,\n currentUserInputValue: PropTypes.any,\n currentKey: PropTypes.string,\n currentNamespace: PropTypes.string,\n setRetainRequestBodyValueFlag: PropTypes.func.isRequired,\n // (also proxies props for Examples)\n }\n\n static defaultProps = {\n userHasEditedBody: false,\n examples: Map({}),\n currentNamespace: \"__DEFAULT__NAMESPACE__\",\n setRetainRequestBodyValueFlag: () => {\n // NOOP\n },\n onSelect: (...args) =>\n console.log( // eslint-disable-line no-console\n \"ExamplesSelectValueRetainer: no `onSelect` function was provided\",\n ...args\n ),\n updateValue: (...args) =>\n console.log( // eslint-disable-line no-console\n \"ExamplesSelectValueRetainer: no `updateValue` function was provided\",\n ...args\n ),\n }\n\n constructor(props) {\n super(props)\n\n const valueFromExample = this._getCurrentExampleValue()\n\n this.state = {\n // user edited: last value that came from the world around us, and didn't\n // match the current example's value\n // internal: last value that came from user selecting an Example\n [props.currentNamespace]: Map({\n lastUserEditedValue: this.props.currentUserInputValue,\n lastDownstreamValue: valueFromExample,\n isModifiedValueSelected:\n // valueFromExample !== undefined &&\n this.props.userHasEditedBody ||\n this.props.currentUserInputValue !== valueFromExample,\n }),\n }\n }\n\n componentWillUnmount() {\n this.props.setRetainRequestBodyValueFlag(false)\n }\n\n _getStateForCurrentNamespace = () => {\n const { currentNamespace } = this.props\n\n return (this.state[currentNamespace] || Map()).toObject()\n }\n\n _setStateForCurrentNamespace = obj => {\n const { currentNamespace } = this.props\n\n return this._setStateForNamespace(currentNamespace, obj)\n }\n\n _setStateForNamespace = (namespace, obj) => {\n const oldStateForNamespace = this.state[namespace] || Map()\n const newStateForNamespace = oldStateForNamespace.mergeDeep(obj)\n return this.setState({\n [namespace]: newStateForNamespace,\n })\n }\n\n _isCurrentUserInputSameAsExampleValue = () => {\n const { currentUserInputValue } = this.props\n\n const valueFromExample = this._getCurrentExampleValue()\n\n return valueFromExample === currentUserInputValue\n }\n\n _getValueForExample = (exampleKey, props) => {\n // props are accepted so that this can be used in UNSAFE_componentWillReceiveProps,\n // which has access to `nextProps`\n const { examples } = props || this.props\n return stringifyUnlessList(\n (examples || Map({})).getIn([exampleKey, \"value\"])\n )\n }\n\n _getCurrentExampleValue = props => {\n // props are accepted so that this can be used in UNSAFE_componentWillReceiveProps,\n // which has access to `nextProps`\n const { currentKey } = props || this.props\n return this._getValueForExample(currentKey, props || this.props)\n }\n\n _onExamplesSelect = (key, { isSyntheticChange } = {}, ...otherArgs) => {\n const {\n onSelect,\n updateValue,\n currentUserInputValue,\n userHasEditedBody,\n } = this.props\n const { lastUserEditedValue } = this._getStateForCurrentNamespace()\n\n const valueFromExample = this._getValueForExample(key)\n\n if (key === \"__MODIFIED__VALUE__\") {\n updateValue(stringifyUnlessList(lastUserEditedValue))\n return this._setStateForCurrentNamespace({\n isModifiedValueSelected: true,\n })\n }\n\n if (typeof onSelect === \"function\") {\n onSelect(key, { isSyntheticChange }, ...otherArgs)\n }\n\n this._setStateForCurrentNamespace({\n lastDownstreamValue: valueFromExample,\n isModifiedValueSelected:\n (isSyntheticChange && userHasEditedBody) ||\n (!!currentUserInputValue && currentUserInputValue !== valueFromExample),\n })\n\n // we never want to send up value updates from synthetic changes\n if (isSyntheticChange) return\n\n if (typeof updateValue === \"function\") {\n updateValue(stringifyUnlessList(valueFromExample))\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n // update `lastUserEditedValue` as new currentUserInput values come in\n\n const {\n currentUserInputValue: newValue,\n examples,\n onSelect,\n userHasEditedBody,\n } = nextProps\n\n const {\n lastUserEditedValue,\n lastDownstreamValue,\n } = this._getStateForCurrentNamespace()\n\n const valueFromCurrentExample = this._getValueForExample(\n nextProps.currentKey,\n nextProps\n )\n\n const examplesMatchingNewValue = examples.filter(\n (example) =>\n example.get(\"value\") === newValue ||\n // sometimes data is stored as a string (e.g. in Request Bodies), so\n // let's check against a stringified version of our example too\n stringify(example.get(\"value\")) === newValue\n )\n\n if (examplesMatchingNewValue.size) {\n let key\n if(examplesMatchingNewValue.has(nextProps.currentKey))\n {\n key = nextProps.currentKey\n } else {\n key = examplesMatchingNewValue.keySeq().first()\n }\n onSelect(key, {\n isSyntheticChange: true,\n })\n } else if (\n newValue !== this.props.currentUserInputValue && // value has changed\n newValue !== lastUserEditedValue && // value isn't already tracked\n newValue !== lastDownstreamValue // value isn't what we've seen on the other side\n ) {\n this.props.setRetainRequestBodyValueFlag(true)\n this._setStateForNamespace(nextProps.currentNamespace, {\n lastUserEditedValue: nextProps.currentUserInputValue,\n isModifiedValueSelected:\n userHasEditedBody || newValue !== valueFromCurrentExample,\n })\n }\n }\n\n render() {\n const {\n currentUserInputValue,\n examples,\n currentKey,\n getComponent,\n userHasEditedBody,\n } = this.props\n const {\n lastDownstreamValue,\n lastUserEditedValue,\n isModifiedValueSelected,\n } = this._getStateForCurrentNamespace()\n\n const ExamplesSelect = getComponent(\"ExamplesSelect\")\n\n return (\n \n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport oauth2Authorize from \"core/oauth2-authorize\"\n\nexport default class Oauth2 extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n authorized: PropTypes.object,\n getComponent: PropTypes.func.isRequired,\n schema: PropTypes.object.isRequired,\n authSelectors: PropTypes.object.isRequired,\n authActions: PropTypes.object.isRequired,\n errSelectors: PropTypes.object.isRequired,\n oas3Selectors: PropTypes.object.isRequired,\n specSelectors: PropTypes.object.isRequired,\n errActions: PropTypes.object.isRequired,\n getConfigs: PropTypes.any\n }\n\n constructor(props, context) {\n super(props, context)\n let { name, schema, authorized, authSelectors } = this.props\n let auth = authorized && authorized.get(name)\n let authConfigs = authSelectors.getConfigs() || {}\n let username = auth && auth.get(\"username\") || \"\"\n let clientId = auth && auth.get(\"clientId\") || authConfigs.clientId || \"\"\n let clientSecret = auth && auth.get(\"clientSecret\") || authConfigs.clientSecret || \"\"\n let passwordType = auth && auth.get(\"passwordType\") || \"basic\"\n let scopes = auth && auth.get(\"scopes\") || authConfigs.scopes || []\n if (typeof scopes === \"string\") {\n scopes = scopes.split(authConfigs.scopeSeparator || \" \")\n }\n\n this.state = {\n appName: authConfigs.appName,\n name: name,\n schema: schema,\n scopes: scopes,\n clientId: clientId,\n clientSecret: clientSecret,\n username: username,\n password: \"\",\n passwordType: passwordType\n }\n }\n\n close = (e) => {\n e.preventDefault()\n let { authActions } = this.props\n\n authActions.showDefinitions(false)\n }\n\n authorize =() => {\n let { authActions, errActions, getConfigs, authSelectors, oas3Selectors } = this.props\n let configs = getConfigs()\n let authConfigs = authSelectors.getConfigs()\n\n errActions.clear({authId: name,type: \"auth\", source: \"auth\"})\n oauth2Authorize({\n auth: this.state,\n currentServer: oas3Selectors.serverEffectiveValue(oas3Selectors.selectedServer()),\n authActions,\n errActions,\n configs,\n authConfigs\n })\n }\n\n onScopeChange =(e) => {\n let { target } = e\n let { checked } = target\n let scope = target.dataset.value\n\n if ( checked && this.state.scopes.indexOf(scope) === -1 ) {\n let newScopes = this.state.scopes.concat([scope])\n this.setState({ scopes: newScopes })\n } else if ( !checked && this.state.scopes.indexOf(scope) > -1) {\n this.setState({ scopes: this.state.scopes.filter((val) => val !== scope) })\n }\n }\n\n onInputChange =(e) => {\n let { target : { dataset : { name }, value } } = e\n let state = {\n [name]: value\n }\n\n this.setState(state)\n }\n\n selectScopes =(e) => {\n if (e.target.dataset.all) {\n this.setState({\n scopes: Array.from((this.props.schema.get(\"allowedScopes\") || this.props.schema.get(\"scopes\")).keys())\n })\n } else {\n this.setState({ scopes: [] })\n }\n }\n\n logout =(e) => {\n e.preventDefault()\n let { authActions, errActions, name } = this.props\n\n errActions.clear({authId: name, type: \"auth\", source: \"auth\"})\n authActions.logoutWithPersistOption([ name ])\n }\n\n render() {\n let {\n schema, getComponent, authSelectors, errSelectors, name, specSelectors\n } = this.props\n const Input = getComponent(\"Input\")\n const Row = getComponent(\"Row\")\n const Col = getComponent(\"Col\")\n const Button = getComponent(\"Button\")\n const AuthError = getComponent(\"authError\")\n const JumpToPath = getComponent(\"JumpToPath\", true)\n const Markdown = getComponent(\"Markdown\", true)\n const InitializedInput = getComponent(\"InitializedInput\")\n\n const { isOAS3 } = specSelectors\n\n let oidcUrl = isOAS3() ? schema.get(\"openIdConnectUrl\") : null\n\n // Auth type consts\n const AUTH_FLOW_IMPLICIT = \"implicit\"\n const AUTH_FLOW_PASSWORD = \"password\"\n const AUTH_FLOW_ACCESS_CODE = isOAS3() ? (oidcUrl ? \"authorization_code\" : \"authorizationCode\") : \"accessCode\"\n const AUTH_FLOW_APPLICATION = isOAS3() ? (oidcUrl ? \"client_credentials\" : \"clientCredentials\") : \"application\"\n\n let authConfigs = authSelectors.getConfigs() || {}\n let isPkceCodeGrant = !!authConfigs.usePkceWithAuthorizationCodeGrant\n\n let flow = schema.get(\"flow\")\n let flowToDisplay = flow === AUTH_FLOW_ACCESS_CODE && isPkceCodeGrant ? flow + \" with PKCE\" : flow\n let scopes = schema.get(\"allowedScopes\") || schema.get(\"scopes\")\n let authorizedAuth = authSelectors.authorized().get(name)\n let isAuthorized = !!authorizedAuth\n let errors = errSelectors.allErrors().filter( err => err.get(\"authId\") === name)\n let isValid = !errors.filter( err => err.get(\"source\") === \"validation\").size\n let description = schema.get(\"description\")\n\n return (\n
\n

{name} (OAuth2, { flowToDisplay })

\n { !this.state.appName ? null :
Application: { this.state.appName }
}\n { description && }\n\n { isAuthorized &&
Authorized
}\n\n { oidcUrl &&

OpenID Connect URL: { oidcUrl }

}\n { ( flow === AUTH_FLOW_IMPLICIT || flow === AUTH_FLOW_ACCESS_CODE ) &&

Authorization URL: { schema.get(\"authorizationUrl\") }

}\n { ( flow === AUTH_FLOW_PASSWORD || flow === AUTH_FLOW_ACCESS_CODE || flow === AUTH_FLOW_APPLICATION ) &&

Token URL: { schema.get(\"tokenUrl\") }

}\n

Flow: { flowToDisplay }

\n\n {\n flow !== AUTH_FLOW_PASSWORD ? null\n : \n \n \n {\n isAuthorized ? { this.state.username } \n : \n \n \n }\n \n {\n\n }\n \n \n {\n isAuthorized ? ****** \n : \n \n \n }\n \n \n \n {\n isAuthorized ? { this.state.passwordType } \n : \n \n \n }\n \n \n }\n {\n ( flow === AUTH_FLOW_APPLICATION || flow === AUTH_FLOW_IMPLICIT || flow === AUTH_FLOW_ACCESS_CODE || flow === AUTH_FLOW_PASSWORD ) &&\n ( !isAuthorized || isAuthorized && this.state.clientId) && \n \n {\n isAuthorized ? ****** \n : \n \n \n }\n \n }\n\n {\n ( (flow === AUTH_FLOW_APPLICATION || flow === AUTH_FLOW_ACCESS_CODE || flow === AUTH_FLOW_PASSWORD) && !isPkceCodeGrant && \n \n {\n isAuthorized ? ****** \n : \n \n \n }\n\n \n )}\n\n {\n !isAuthorized && scopes && scopes.size ?
\n

\n Scopes:\n select all\n select none\n

\n { scopes.map((description, name) => {\n return (\n \n
\n \n \n
\n
\n )\n }).toArray()\n }\n
: null\n }\n\n {\n errors.valueSeq().map( (error, key) => {\n return \n } )\n }\n
\n { isValid &&\n ( isAuthorized ? \n : \n )\n }\n \n
\n\n
\n )\n }\n}\n","import parseUrl from \"url-parse\"\nimport Im from \"immutable\"\nimport { btoa, sanitizeUrl, generateCodeVerifier, createCodeChallenge } from \"core/utils\"\n\nexport default function authorize ( { auth, authActions, errActions, configs, authConfigs={}, currentServer } ) {\n let { schema, scopes, name, clientId } = auth\n let flow = schema.get(\"flow\")\n let query = []\n\n switch (flow) {\n case \"password\":\n authActions.authorizePassword(auth)\n return\n\n case \"application\":\n authActions.authorizeApplication(auth)\n return\n\n case \"accessCode\":\n query.push(\"response_type=code\")\n break\n\n case \"implicit\":\n query.push(\"response_type=token\")\n break\n\n case \"clientCredentials\":\n case \"client_credentials\":\n // OAS3\n authActions.authorizeApplication(auth)\n return\n\n case \"authorizationCode\":\n case \"authorization_code\":\n // OAS3\n query.push(\"response_type=code\")\n break\n }\n\n if (typeof clientId === \"string\") {\n query.push(\"client_id=\" + encodeURIComponent(clientId))\n }\n\n let redirectUrl = configs.oauth2RedirectUrl\n\n // todo move to parser\n if (typeof redirectUrl === \"undefined\") {\n errActions.newAuthErr( {\n authId: name,\n source: \"validation\",\n level: \"error\",\n message: \"oauth2RedirectUrl configuration is not passed. Oauth2 authorization cannot be performed.\"\n })\n return\n }\n query.push(\"redirect_uri=\" + encodeURIComponent(redirectUrl))\n\n let scopesArray = []\n if (Array.isArray(scopes)) {\n scopesArray = scopes\n } else if (Im.List.isList(scopes)) {\n scopesArray = scopes.toArray()\n }\n\n if (scopesArray.length > 0) {\n let scopeSeparator = authConfigs.scopeSeparator || \" \"\n\n query.push(\"scope=\" + encodeURIComponent(scopesArray.join(scopeSeparator)))\n }\n\n let state = btoa(new Date())\n\n query.push(\"state=\" + encodeURIComponent(state))\n\n if (typeof authConfigs.realm !== \"undefined\") {\n query.push(\"realm=\" + encodeURIComponent(authConfigs.realm))\n }\n\n if ((flow === \"authorizationCode\" || flow === \"authorization_code\" || flow === \"accessCode\") && authConfigs.usePkceWithAuthorizationCodeGrant) {\n const codeVerifier = generateCodeVerifier()\n const codeChallenge = createCodeChallenge(codeVerifier)\n\n query.push(\"code_challenge=\" + codeChallenge)\n query.push(\"code_challenge_method=S256\")\n\n // storing the Code Verifier so it can be sent to the token endpoint\n // when exchanging the Authorization Code for an Access Token\n auth.codeVerifier = codeVerifier\n }\n\n let { additionalQueryStringParams } = authConfigs\n\n for (let key in additionalQueryStringParams) {\n if (typeof additionalQueryStringParams[key] !== \"undefined\") {\n query.push([key, additionalQueryStringParams[key]].map(encodeURIComponent).join(\"=\"))\n }\n }\n\n const authorizationUrl = schema.get(\"authorizationUrl\")\n let sanitizedAuthorizationUrl\n if (currentServer) {\n // OpenAPI 3\n sanitizedAuthorizationUrl = parseUrl(\n sanitizeUrl(authorizationUrl),\n currentServer,\n true\n ).toString()\n } else {\n sanitizedAuthorizationUrl = sanitizeUrl(authorizationUrl)\n }\n let url = [sanitizedAuthorizationUrl, query.join(\"&\")].join(authorizationUrl.indexOf(\"?\") === -1 ? \"?\" : \"&\")\n\n // pass action authorizeOauth2 and authentication data through window\n // to authorize with oauth2\n\n let callback\n if (flow === \"implicit\") {\n callback = authActions.preAuthorizeImplicit\n } else if (authConfigs.useBasicAuthenticationWithAccessCodeGrant) {\n callback = authActions.authorizeAccessCodeWithBasicAuthentication\n } else {\n callback = authActions.authorizeAccessCodeWithFormParams\n }\n\n authActions.authPopup(url, {\n auth: auth,\n state: state,\n redirectUrl: redirectUrl,\n callback: callback,\n errCb: errActions.newAuthErr\n })\n}\n","import React, { Component } from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class Clear extends Component {\n\n onClick =() => {\n let { specActions, path, method } = this.props\n specActions.clearResponse( path, method )\n specActions.clearRequest( path, method )\n }\n\n render(){\n return (\n \n )\n }\n\n static propTypes = {\n specActions: PropTypes.object.isRequired,\n path: PropTypes.string.isRequired,\n method: PropTypes.string.isRequired,\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport { Iterable } from \"immutable\"\n\nconst Headers = ( { headers } )=>{\n return (\n
\n
Response headers
\n
{headers}
\n
)\n}\nHeaders.propTypes = {\n headers: PropTypes.array.isRequired\n}\n\nconst Duration = ( { duration } ) => {\n return (\n
\n
Request duration
\n
{duration} ms
\n
\n )\n}\nDuration.propTypes = {\n duration: PropTypes.number.isRequired\n}\n\n\nexport default class LiveResponse extends React.Component {\n static propTypes = {\n response: PropTypes.instanceOf(Iterable).isRequired,\n path: PropTypes.string.isRequired,\n method: PropTypes.string.isRequired,\n displayRequestDuration: PropTypes.bool.isRequired,\n specSelectors: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired\n }\n\n shouldComponentUpdate(nextProps) {\n // BUG: props.response is always coming back as a new Immutable instance\n // same issue as responses.jsx (tryItOutResponse)\n return this.props.response !== nextProps.response\n || this.props.path !== nextProps.path\n || this.props.method !== nextProps.method\n || this.props.displayRequestDuration !== nextProps.displayRequestDuration\n }\n\n render() {\n const { response, getComponent, getConfigs, displayRequestDuration, specSelectors, path, method } = this.props\n const { showMutatedRequest, requestSnippetsEnabled } = getConfigs()\n\n const curlRequest = showMutatedRequest ? specSelectors.mutatedRequestFor(path, method) : specSelectors.requestFor(path, method)\n const status = response.get(\"status\")\n const url = curlRequest.get(\"url\")\n const headers = response.get(\"headers\").toJS()\n const notDocumented = response.get(\"notDocumented\")\n const isError = response.get(\"error\")\n const body = response.get(\"text\")\n const duration = response.get(\"duration\")\n const headersKeys = Object.keys(headers)\n const contentType = headers[\"content-type\"] || headers[\"Content-Type\"]\n\n const ResponseBody = getComponent(\"responseBody\")\n const returnObject = headersKeys.map(key => {\n var joinedHeaders = Array.isArray(headers[key]) ? headers[key].join() : headers[key]\n return {key}: {joinedHeaders} \n })\n const hasHeaders = returnObject.length !== 0\n const Markdown = getComponent(\"Markdown\", true)\n const RequestSnippets = getComponent(\"RequestSnippets\", true)\n const Curl = getComponent(\"curl\")\n\n return (\n
\n { curlRequest && (requestSnippetsEnabled === true || requestSnippetsEnabled === \"true\"\n ? \n : ) }\n { url &&
\n
\n

Request URL

\n
{url}
\n
\n
\n }\n

Server response

\n \n \n \n \n \n \n \n \n \n \n \n \n \n
CodeDetails
\n { status }\n {\n notDocumented ?
\n Undocumented \n
\n : null\n }\n
\n {\n isError ? \n : null\n }\n {\n body ? \n : null\n }\n {\n hasHeaders ? : null\n }\n {\n displayRequestDuration && duration ? : null\n }\n
\n
\n )\n }\n\n static propTypes = {\n getComponent: PropTypes.func.isRequired,\n response: ImPropTypes.map\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Im from \"immutable\"\n\nconst SWAGGER2_OPERATION_METHODS = [\n \"get\", \"put\", \"post\", \"delete\", \"options\", \"head\", \"patch\"\n]\n\nconst OAS3_OPERATION_METHODS = SWAGGER2_OPERATION_METHODS.concat([\"trace\"])\n\n\nexport default class Operations extends React.Component {\n\n static propTypes = {\n specSelectors: PropTypes.object.isRequired,\n specActions: PropTypes.object.isRequired,\n oas3Actions: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n oas3Selectors: PropTypes.func.isRequired,\n layoutSelectors: PropTypes.object.isRequired,\n layoutActions: PropTypes.object.isRequired,\n authActions: PropTypes.object.isRequired,\n authSelectors: PropTypes.object.isRequired,\n getConfigs: PropTypes.func.isRequired,\n fn: PropTypes.func.isRequired\n };\n\n render() {\n let {\n specSelectors,\n } = this.props\n\n const taggedOps = specSelectors.taggedOperations()\n\n if(taggedOps.size === 0) {\n return

No operations defined in spec!

\n }\n\n return (\n
\n { taggedOps.map(this.renderOperationTag).toArray() }\n { taggedOps.size < 1 ?

No operations defined in spec!

: null }\n
\n )\n }\n\n renderOperationTag = (tagObj, tag) => {\n const {\n specSelectors,\n getComponent,\n oas3Selectors,\n layoutSelectors,\n layoutActions,\n getConfigs,\n } = this.props\n const OperationContainer = getComponent(\"OperationContainer\", true)\n const OperationTag = getComponent(\"OperationTag\")\n const operations = tagObj.get(\"operations\")\n return (\n \n
\n {\n operations.map(op => {\n const path = op.get(\"path\")\n const method = op.get(\"method\")\n const specPath = Im.List([\"paths\", path, method])\n\n\n // FIXME: (someday) this logic should probably be in a selector,\n // but doing so would require further opening up\n // selectors to the plugin system, to allow for dynamic\n // overriding of low-level selectors that other selectors\n // rely on. --KS, 12/17\n const validMethods = specSelectors.isOAS3() ?\n OAS3_OPERATION_METHODS : SWAGGER2_OPERATION_METHODS\n\n if (validMethods.indexOf(method) === -1) {\n return null\n }\n\n return (\n \n )\n }).toArray()\n }\n
\n \n )\n }\n\n}\n\nOperations.propTypes = {\n layoutActions: PropTypes.object.isRequired,\n specSelectors: PropTypes.object.isRequired,\n specActions: PropTypes.object.isRequired,\n layoutSelectors: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n fn: PropTypes.object.isRequired\n}\n","export function isAbsoluteUrl(url) {\n return url.match(/^(?:[a-z]+:)?\\/\\//i) // Matches http://, HTTP://, https://, ftp://, //example.com,\n}\n\nexport function addProtocol(url) {\n if (!url.match(/^\\/\\//i)) return url // Checks if protocol is missing e.g. //example.com\n\n return `${window.location.protocol}${url}`\n}\n\nexport function buildBaseUrl(selectedServer, specUrl) {\n if (!selectedServer) return specUrl\n if (isAbsoluteUrl(selectedServer)) return addProtocol(selectedServer)\n\n return new URL(selectedServer, specUrl).href\n}\n\nexport function buildUrl(url, specUrl, { selectedServer=\"\" } = {}) {\n if (!url) return undefined\n if (isAbsoluteUrl(url)) return url\n\n const baseUrl = buildBaseUrl(selectedServer, specUrl)\n if (!isAbsoluteUrl(baseUrl)) {\n return new URL(url, window.location.href).href\n }\n return new URL(url, baseUrl).href\n}\n\n/**\n * Safe version of buildUrl function. `selectedServer` can contain server variables\n * which can fail the URL resolution.\n */\nexport function safeBuildUrl(url, specUrl, { selectedServer=\"\" } = {}) {\n try {\n return buildUrl(url, specUrl, { selectedServer })\n } catch {\n return undefined\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport Im from \"immutable\"\nimport { createDeepLinkPath, escapeDeepLinkPath, sanitizeUrl } from \"core/utils\"\nimport { safeBuildUrl } from \"core/utils/url\"\nimport { isFunc } from \"core/utils\"\n\nexport default class OperationTag extends React.Component {\n\n static defaultProps = {\n tagObj: Im.fromJS({}),\n tag: \"\",\n }\n\n static propTypes = {\n tagObj: ImPropTypes.map.isRequired,\n tag: PropTypes.string.isRequired,\n\n oas3Selectors: PropTypes.func.isRequired,\n layoutSelectors: PropTypes.object.isRequired,\n layoutActions: PropTypes.object.isRequired,\n\n getConfigs: PropTypes.func.isRequired,\n getComponent: PropTypes.func.isRequired,\n\n specUrl: PropTypes.string.isRequired,\n\n children: PropTypes.element,\n }\n\n render() {\n const {\n tagObj,\n tag,\n children,\n oas3Selectors,\n layoutSelectors,\n layoutActions,\n getConfigs,\n getComponent,\n specUrl,\n } = this.props\n\n let {\n docExpansion,\n deepLinking,\n } = getConfigs()\n\n const isDeepLinkingEnabled = deepLinking && deepLinking !== \"false\"\n\n const Collapse = getComponent(\"Collapse\")\n const Markdown = getComponent(\"Markdown\", true)\n const DeepLink = getComponent(\"DeepLink\")\n const Link = getComponent(\"Link\")\n\n let tagDescription = tagObj.getIn([\"tagDetails\", \"description\"], null)\n let tagExternalDocsDescription = tagObj.getIn([\"tagDetails\", \"externalDocs\", \"description\"])\n let rawTagExternalDocsUrl = tagObj.getIn([\"tagDetails\", \"externalDocs\", \"url\"])\n let tagExternalDocsUrl\n if (isFunc(oas3Selectors) && isFunc(oas3Selectors.selectedServer)) {\n tagExternalDocsUrl = safeBuildUrl( rawTagExternalDocsUrl, specUrl, { selectedServer: oas3Selectors.selectedServer() } )\n } else {\n tagExternalDocsUrl = rawTagExternalDocsUrl\n }\n\n let isShownKey = [\"operations-tag\", tag]\n let showTag = layoutSelectors.isShown(isShownKey, docExpansion === \"full\" || docExpansion === \"list\")\n\n return (\n
\n\n layoutActions.show(isShownKey, !showTag)}\n className={!tagDescription ? \"opblock-tag no-desc\" : \"opblock-tag\" }\n id={isShownKey.map(v => escapeDeepLinkPath(v)).join(\"-\")}\n data-tag={tag}\n data-is-open={showTag}\n >\n \n { !tagDescription ? :\n \n \n \n }\n\n
\n { !tagExternalDocsDescription ? null :\n \n { tagExternalDocsDescription }\n { tagExternalDocsUrl ? \": \" : null }\n { tagExternalDocsUrl ?\n e.stopPropagation()}\n target=\"_blank\"\n >{tagExternalDocsUrl} : null\n }\n \n }\n
\n\n layoutActions.show(isShownKey, !showTag)}>\n\n \n \n \n \n \n\n \n {children}\n \n
\n )\n }\n}\n","import React, { PureComponent } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { getList } from \"core/utils\"\nimport { getExtensions, sanitizeUrl, escapeDeepLinkPath } from \"core/utils\"\nimport { safeBuildUrl } from \"core/utils/url\"\nimport { Iterable, List } from \"immutable\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\n\nexport default class Operation extends PureComponent {\n static propTypes = {\n specPath: ImPropTypes.list.isRequired,\n operation: PropTypes.instanceOf(Iterable).isRequired,\n summary: PropTypes.string,\n response: PropTypes.instanceOf(Iterable),\n request: PropTypes.instanceOf(Iterable),\n\n toggleShown: PropTypes.func.isRequired,\n onTryoutClick: PropTypes.func.isRequired,\n onCancelClick: PropTypes.func.isRequired,\n onExecute: PropTypes.func.isRequired,\n\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired,\n authActions: PropTypes.object,\n authSelectors: PropTypes.object,\n specActions: PropTypes.object.isRequired,\n specSelectors: PropTypes.object.isRequired,\n oas3Actions: PropTypes.object.isRequired,\n oas3Selectors: PropTypes.object.isRequired,\n layoutActions: PropTypes.object.isRequired,\n layoutSelectors: PropTypes.object.isRequired,\n fn: PropTypes.object.isRequired\n }\n\n static defaultProps = {\n operation: null,\n response: null,\n request: null,\n specPath: List(),\n summary: \"\"\n }\n\n render() {\n let {\n specPath,\n response,\n request,\n toggleShown,\n onTryoutClick,\n onCancelClick,\n onExecute,\n fn,\n getComponent,\n getConfigs,\n specActions,\n specSelectors,\n authActions,\n authSelectors,\n oas3Actions,\n oas3Selectors\n } = this.props\n let operationProps = this.props.operation\n\n let {\n deprecated,\n isShown,\n path,\n method,\n op,\n tag,\n operationId,\n allowTryItOut,\n displayRequestDuration,\n tryItOutEnabled,\n executeInProgress\n } = operationProps.toJS()\n\n let {\n description,\n externalDocs,\n schemes\n } = op\n\n const externalDocsUrl = externalDocs ? safeBuildUrl(externalDocs.url, specSelectors.url(), { selectedServer: oas3Selectors.selectedServer() }) : \"\"\n let operation = operationProps.getIn([\"op\"])\n let responses = operation.get(\"responses\")\n let parameters = getList(operation, [\"parameters\"])\n let operationScheme = specSelectors.operationScheme(path, method)\n let isShownKey = [\"operations\", tag, operationId]\n let extensions = getExtensions(operation)\n\n const Responses = getComponent(\"responses\")\n const Parameters = getComponent( \"parameters\" )\n const Execute = getComponent( \"execute\" )\n const Clear = getComponent( \"clear\" )\n const Collapse = getComponent( \"Collapse\" )\n const Markdown = getComponent(\"Markdown\", true)\n const Schemes = getComponent( \"schemes\" )\n const OperationServers = getComponent( \"OperationServers\" )\n const OperationExt = getComponent( \"OperationExt\" )\n const OperationSummary = getComponent( \"OperationSummary\" )\n const Link = getComponent( \"Link\" )\n\n const { showExtensions } = getConfigs()\n\n // Merge in Live Response\n if(responses && response && response.size > 0) {\n let notDocumented = !responses.get(String(response.get(\"status\"))) && !responses.get(\"default\")\n response = response.set(\"notDocumented\", notDocumented)\n }\n\n let onChangeKey = [ path, method ] // Used to add values to _this_ operation ( indexed by path and method )\n\n return (\n
\n \n \n
\n { (operation && operation.size) || operation === null ? null :\n \n }\n { deprecated &&

Warning: Deprecated

}\n { description &&\n
\n
\n \n
\n
\n }\n {\n externalDocsUrl ?\n
\n

Find more details

\n
\n \n \n \n {externalDocsUrl}\n
\n
: null\n }\n\n { !operation || !operation.size ? null :\n \n }\n\n { !tryItOutEnabled ? null :\n \n }\n\n {!tryItOutEnabled || !allowTryItOut ? null : schemes && schemes.size ?
\n \n
: null\n }\n\n
\n { !tryItOutEnabled || !allowTryItOut ? null :\n\n \n }\n\n { (!tryItOutEnabled || !response || !allowTryItOut) ? null :\n \n }\n
\n\n {executeInProgress ?
: null}\n\n { !responses ? null :\n \n }\n\n { !showExtensions || !extensions.size ? null :\n \n }\n
\n
\n
\n )\n }\n\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_toString_da931f05__[\"default\"] });","import React, { PureComponent } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { Iterable, List } from \"immutable\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport toString from \"lodash/toString\"\n\n\nexport default class OperationSummary extends PureComponent {\n\n static propTypes = {\n specPath: ImPropTypes.list.isRequired,\n operationProps: PropTypes.instanceOf(Iterable).isRequired,\n isShown: PropTypes.bool.isRequired,\n toggleShown: PropTypes.func.isRequired,\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired,\n authActions: PropTypes.object,\n authSelectors: PropTypes.object,\n }\n\n static defaultProps = {\n operationProps: null,\n specPath: List(),\n summary: \"\"\n }\n\n render() {\n\n let {\n isShown,\n toggleShown,\n getComponent,\n authActions,\n authSelectors,\n operationProps,\n specPath,\n } = this.props\n\n let {\n summary,\n isAuthorized,\n method,\n op,\n showSummary,\n path,\n operationId,\n originalOperationId,\n displayOperationId,\n } = operationProps.toJS()\n\n let {\n summary: resolvedSummary,\n } = op\n\n let security = operationProps.get(\"security\")\n\n const AuthorizeOperationBtn = getComponent(\"authorizeOperationBtn\")\n const OperationSummaryMethod = getComponent(\"OperationSummaryMethod\")\n const OperationSummaryPath = getComponent(\"OperationSummaryPath\")\n const JumpToPath = getComponent(\"JumpToPath\", true)\n\n const hasSecurity = security && !!security.count()\n const securityIsOptional = hasSecurity && security.size === 1 && security.first().isEmpty()\n const allowAnonymous = !hasSecurity || securityIsOptional\n return (\n
\n \n \n \n\n {!showSummary ? null :\n
\n {toString(resolvedSummary || summary)}\n
\n }\n\n {displayOperationId && (originalOperationId || operationId) ? {originalOperationId || operationId} : null}\n\n \n \n \n \n\n {\n allowAnonymous ? null :\n {\n const applicableDefinitions = authSelectors.definitionsForRequirements(security)\n authActions.showDefinitions(applicableDefinitions)\n }}\n />\n }\n {/* TODO: use wrapComponents here, swagger-ui doesn't care about jumpToPath */}\n
\n )\n\n }\n}\n","import React, { PureComponent } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { Iterable } from \"immutable\"\n\nexport default class OperationSummaryMethod extends PureComponent {\n\n static propTypes = {\n operationProps: PropTypes.instanceOf(Iterable).isRequired,\n method: PropTypes.string.isRequired,\n }\n\n static defaultProps = {\n operationProps: null,\n }\n render() {\n\n let {\n method,\n } = this.props\n\n return (\n {method.toUpperCase()}\n )\n }\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_splice_d746fc5e__[\"default\"] });","import React, { PureComponent } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { Iterable } from \"immutable\"\nimport { createDeepLinkPath } from \"core/utils\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nexport default class OperationSummaryPath extends PureComponent{\n\n static propTypes = {\n specPath: ImPropTypes.list.isRequired,\n operationProps: PropTypes.instanceOf(Iterable).isRequired,\n getComponent: PropTypes.func.isRequired,\n }\n\n render(){\n let {\n getComponent,\n operationProps,\n } = this.props\n\n\n let {\n deprecated,\n isShown,\n path,\n tag,\n operationId,\n isDeepLinkingEnabled,\n } = operationProps.toJS()\n\n /**\n * Add word-break elements between each segment, before the slash\n * to allow browsers an opportunity to break long paths into sensible segments.\n */\n const pathParts = path.split(/(?=\\/)/g)\n for (let i = 1; i < pathParts.length; i += 2) {\n pathParts.splice(i, 0, )\n }\n\n const DeepLink = getComponent( \"DeepLink\" )\n\n return(\n \n \n \n\n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport const OperationExt = ({ extensions, getComponent }) => {\n let OperationExtRow = getComponent(\"OperationExtRow\")\n return (\n
\n
\n

Extensions

\n
\n
\n\n \n \n \n \n \n \n \n \n {\n extensions.entrySeq().map(([k, v]) => )\n }\n \n
FieldValue
\n
\n
\n )\n}\nOperationExt.propTypes = {\n extensions: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired\n}\n\nexport default OperationExt\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport const OperationExtRow = ({ xKey, xVal }) => {\n const xNormalizedValue = !xVal ? null : xVal.toJS ? xVal.toJS() : xVal\n\n return (\n { xKey }\n { JSON.stringify(xNormalizedValue) }\n )\n}\nOperationExtRow.propTypes = {\n xKey: PropTypes.string,\n xVal: PropTypes.any\n}\n\nexport default OperationExtRow\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_js_file_download_bd23dbb6__[\"default\"] });","import React, { useRef, useEffect } from \"react\"\nimport PropTypes from \"prop-types\"\nimport cx from \"classnames\"\nimport {SyntaxHighlighter, getStyle} from \"core/syntax-highlighting\"\nimport get from \"lodash/get\"\nimport isFunction from \"lodash/isFunction\"\nimport saveAs from \"js-file-download\"\nimport { CopyToClipboard } from \"react-copy-to-clipboard\"\n\nconst HighlightCode = ({value, fileName, className, downloadable, getConfigs, canCopy, language}) => {\n const config = isFunction(getConfigs) ? getConfigs() : null\n const canSyntaxHighlight = get(config, \"syntaxHighlight\") !== false && get(config, \"syntaxHighlight.activated\", true)\n const rootRef = useRef(null)\n\n useEffect(() => {\n const childNodes = Array\n .from(rootRef.current.childNodes)\n .filter(node => !!node.nodeType && node.classList.contains(\"microlight\"))\n\n // eslint-disable-next-line no-use-before-define\n childNodes.forEach(node => node.addEventListener(\"mousewheel\", handlePreventYScrollingBeyondElement, { passive: false }))\n\n return () => {\n // eslint-disable-next-line no-use-before-define\n childNodes.forEach(node => node.removeEventListener(\"mousewheel\", handlePreventYScrollingBeyondElement))\n }\n }, [value, className, language])\n\n const handleDownload = () => {\n saveAs(value, fileName)\n }\n\n const handlePreventYScrollingBeyondElement = (e) => {\n const { target, deltaY } = e\n const { scrollHeight: contentHeight, offsetHeight: visibleHeight, scrollTop } = target\n const scrollOffset = visibleHeight + scrollTop\n const isElementScrollable = contentHeight > visibleHeight\n const isScrollingPastTop = scrollTop === 0 && deltaY < 0\n const isScrollingPastBottom = scrollOffset >= contentHeight && deltaY > 0\n\n if (isElementScrollable && (isScrollingPastTop || isScrollingPastBottom)) {\n e.preventDefault()\n }\n }\n\n return (\n
\n {!downloadable ? null :\n
\n Download\n
\n }\n\n {canCopy && (\n
\n
\n )}\n\n {canSyntaxHighlight\n ? \n {value}\n \n :
{value}
\n }\n\n
\n )\n}\n\nHighlightCode.propTypes = {\n value: PropTypes.string.isRequired,\n getConfigs: PropTypes.func.isRequired,\n className: PropTypes.string,\n downloadable: PropTypes.bool,\n fileName: PropTypes.string,\n language: PropTypes.string,\n canCopy: PropTypes.bool\n}\n\nHighlightCode.defaultProps = {\n fileName: \"response.txt\"\n}\n\nexport default HighlightCode\n","import React from \"react\"\nimport { fromJS, Iterable } from \"immutable\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport { defaultStatusCode, getAcceptControllingResponse } from \"core/utils\"\nimport createHtmlReadyId from \"../../helpers/create-html-ready-id\"\n\nexport default class Responses extends React.Component {\n static propTypes = {\n tryItOutResponse: PropTypes.instanceOf(Iterable),\n responses: PropTypes.instanceOf(Iterable).isRequired,\n produces: PropTypes.instanceOf(Iterable),\n producesValue: PropTypes.any,\n displayRequestDuration: PropTypes.bool.isRequired,\n path: PropTypes.string.isRequired,\n method: PropTypes.string.isRequired,\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired,\n specSelectors: PropTypes.object.isRequired,\n specActions: PropTypes.object.isRequired,\n oas3Actions: PropTypes.object.isRequired,\n oas3Selectors: PropTypes.object.isRequired,\n specPath: ImPropTypes.list.isRequired,\n fn: PropTypes.object.isRequired\n }\n\n static defaultProps = {\n tryItOutResponse: null,\n produces: fromJS([\"application/json\"]),\n displayRequestDuration: false\n }\n\n // These performance-enhancing checks were disabled as part of Multiple Examples\n // because they were causing data-consistency issues\n //\n // shouldComponentUpdate(nextProps) {\n // // BUG: props.tryItOutResponse is always coming back as a new Immutable instance\n // let render = this.props.tryItOutResponse !== nextProps.tryItOutResponse\n // || this.props.responses !== nextProps.responses\n // || this.props.produces !== nextProps.produces\n // || this.props.producesValue !== nextProps.producesValue\n // || this.props.displayRequestDuration !== nextProps.displayRequestDuration\n // || this.props.path !== nextProps.path\n // || this.props.method !== nextProps.method\n // return render\n // }\n\n\tonChangeProducesWrapper = ( val ) => this.props.specActions.changeProducesValue([this.props.path, this.props.method], val)\n\n onResponseContentTypeChange = ({ controlsAcceptHeader, value }) => {\n const { oas3Actions, path, method } = this.props\n if(controlsAcceptHeader) {\n oas3Actions.setResponseContentType({\n value,\n path,\n method\n })\n }\n }\n\n render() {\n let {\n responses,\n tryItOutResponse,\n getComponent,\n getConfigs,\n specSelectors,\n fn,\n producesValue,\n displayRequestDuration,\n specPath,\n path,\n method,\n oas3Selectors,\n oas3Actions,\n } = this.props\n let defaultCode = defaultStatusCode( responses )\n\n const ContentType = getComponent( \"contentType\" )\n const LiveResponse = getComponent( \"liveResponse\" )\n const Response = getComponent( \"response\" )\n\n let produces = this.props.produces && this.props.produces.size ? this.props.produces : Responses.defaultProps.produces\n\n const isSpecOAS3 = specSelectors.isOAS3()\n\n const acceptControllingResponse = isSpecOAS3 ?\n getAcceptControllingResponse(responses) : null\n\n const regionId = createHtmlReadyId(`${method}${path}_responses`)\n const controlId = `${regionId}_select`\n\n return (\n
\n
\n

Responses

\n { specSelectors.isOAS3() ? null : }\n
\n
\n {\n !tryItOutResponse ? null\n :
\n \n

Responses

\n
\n\n }\n\n \n \n \n \n \n { specSelectors.isOAS3() ? : null }\n \n \n \n {\n responses.entrySeq().map( ([code, response]) => {\n\n let className = tryItOutResponse && tryItOutResponse.get(\"status\") == code ? \"response_current\" : \"\"\n return (\n \n )\n }).toArray()\n }\n \n
CodeDescriptionLinks
\n
\n
\n )\n }\n}\n","/**\n * Replace invalid characters from a string to create an html-ready ID\n *\n * @param {string} id A string that may contain invalid characters for the HTML ID attribute\n * @param {string} [replacement=_] The string to replace invalid characters with; \"_\" by default\n * @return {string} Information about the parameter schema\n */\nexport default function createHtmlReadyId(id, replacement = \"_\") {\n return id.replace(/[^\\w-]/g, replacement)\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE__babel_runtime_corejs3_core_js_stable_instance_values_a68750d2__[\"default\"] });","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport cx from \"classnames\"\nimport { fromJS, Seq, Iterable, List, Map } from \"immutable\"\nimport { getExtensions, getSampleSchema, fromJSOrdered, stringify } from \"core/utils\"\nimport { getKnownSyntaxHighlighterLanguage } from \"core/utils/jsonParse\"\n\n\nconst getExampleComponent = ( sampleResponse, HighlightCode, getConfigs ) => {\n if (\n sampleResponse !== undefined &&\n sampleResponse !== null\n ) {\n let language = null\n let testValueForJson = getKnownSyntaxHighlighterLanguage(sampleResponse)\n if (testValueForJson) {\n language = \"json\"\n }\n return
\n \n
\n }\n return null\n}\n\nexport default class Response extends React.Component {\n constructor(props, context) {\n super(props, context)\n\n this.state = {\n responseContentType: \"\",\n }\n }\n\n static propTypes = {\n path: PropTypes.string.isRequired,\n method: PropTypes.string.isRequired,\n code: PropTypes.string.isRequired,\n response: PropTypes.instanceOf(Iterable),\n className: PropTypes.string,\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired,\n specSelectors: PropTypes.object.isRequired,\n oas3Actions: PropTypes.object.isRequired,\n specPath: ImPropTypes.list.isRequired,\n fn: PropTypes.object.isRequired,\n contentType: PropTypes.string,\n activeExamplesKey: PropTypes.string,\n controlsAcceptHeader: PropTypes.bool,\n onContentTypeChange: PropTypes.func\n }\n\n static defaultProps = {\n response: fromJS({}),\n onContentTypeChange: () => {}\n };\n\n _onContentTypeChange = (value) => {\n const { onContentTypeChange, controlsAcceptHeader } = this.props\n this.setState({ responseContentType: value })\n onContentTypeChange({\n value: value,\n controlsAcceptHeader\n })\n }\n\n getTargetExamplesKey = () => {\n const { response, contentType, activeExamplesKey } = this.props\n\n const activeContentType = this.state.responseContentType || contentType\n const activeMediaType = response.getIn([\"content\", activeContentType], Map({}))\n const examplesForMediaType = activeMediaType.get(\"examples\", null)\n\n const firstExamplesKey = examplesForMediaType.keySeq().first()\n return activeExamplesKey || firstExamplesKey\n }\n\n render() {\n let {\n path,\n method,\n code,\n response,\n className,\n specPath,\n fn,\n getComponent,\n getConfigs,\n specSelectors,\n contentType,\n controlsAcceptHeader,\n oas3Actions,\n } = this.props\n\n let { inferSchema } = fn\n let isOAS3 = specSelectors.isOAS3()\n const { showExtensions } = getConfigs()\n\n let extensions = showExtensions ? getExtensions(response) : null\n let headers = response.get(\"headers\")\n let links = response.get(\"links\")\n const ResponseExtension = getComponent(\"ResponseExtension\")\n const Headers = getComponent(\"headers\")\n const HighlightCode = getComponent(\"highlightCode\")\n const ModelExample = getComponent(\"modelExample\")\n const Markdown = getComponent(\"Markdown\", true)\n const OperationLink = getComponent(\"operationLink\")\n const ContentType = getComponent(\"contentType\")\n const ExamplesSelect = getComponent(\"ExamplesSelect\")\n const Example = getComponent(\"Example\")\n\n\n var schema, specPathWithPossibleSchema\n\n const activeContentType = this.state.responseContentType || contentType\n const activeMediaType = response.getIn([\"content\", activeContentType], Map({}))\n const examplesForMediaType = activeMediaType.get(\"examples\", null)\n\n // Goal: find a schema value for `schema`\n if(isOAS3) {\n const oas3SchemaForContentType = activeMediaType.get(\"schema\")\n\n schema = oas3SchemaForContentType ? inferSchema(oas3SchemaForContentType.toJS()) : null\n specPathWithPossibleSchema = oas3SchemaForContentType ? List([\"content\", this.state.responseContentType, \"schema\"]) : specPath\n } else {\n schema = response.get(\"schema\")\n specPathWithPossibleSchema = response.has(\"schema\") ? specPath.push(\"schema\") : specPath\n }\n\n let mediaTypeExample\n let shouldOverrideSchemaExample = false\n let sampleSchema\n let sampleGenConfig = {\n includeReadOnly: true\n }\n\n // Goal: find an example value for `sampleResponse`\n if(isOAS3) {\n sampleSchema = activeMediaType.get(\"schema\")?.toJS()\n if(examplesForMediaType) {\n const targetExamplesKey = this.getTargetExamplesKey()\n const targetExample = examplesForMediaType\n .get(targetExamplesKey, Map({}))\n const getMediaTypeExample = (targetExample) =>\n targetExample.get(\"value\")\n mediaTypeExample = getMediaTypeExample(targetExample)\n if(mediaTypeExample === undefined) {\n mediaTypeExample = getMediaTypeExample(examplesForMediaType.values().next().value)\n }\n shouldOverrideSchemaExample = true\n } else if(activeMediaType.get(\"example\") !== undefined) {\n // use the example key's value\n mediaTypeExample = activeMediaType.get(\"example\")\n shouldOverrideSchemaExample = true\n }\n } else {\n sampleSchema = schema\n sampleGenConfig = {...sampleGenConfig, includeWriteOnly: true}\n const oldOASMediaTypeExample = response.getIn([\"examples\", activeContentType])\n if(oldOASMediaTypeExample) {\n mediaTypeExample = oldOASMediaTypeExample\n shouldOverrideSchemaExample = true\n }\n }\n\n const sampleResponse = getSampleSchema(\n sampleSchema,\n activeContentType,\n sampleGenConfig,\n shouldOverrideSchemaExample ? mediaTypeExample : undefined\n )\n\n let example = getExampleComponent( sampleResponse, HighlightCode, getConfigs )\n\n return (\n \n \n { code }\n \n \n\n
\n \n
\n\n { !showExtensions || !extensions.size ? null : extensions.entrySeq().map(([key, v]) => )}\n\n {isOAS3 && response.get(\"content\") ? (\n
\n \n \n Media type\n \n \n {controlsAcceptHeader ? (\n \n Controls Accept header.\n \n ) : null}\n \n {examplesForMediaType ? (\n
\n \n Examples\n \n \n oas3Actions.setActiveExamplesMember({\n name: key,\n pathMethod: [path, method],\n contextType: \"responses\",\n contextName: code\n })\n }\n showLabels={false}\n />\n
\n ) : null}\n
\n ) : null}\n\n { example || schema ? (\n \n ) : null }\n\n { isOAS3 && examplesForMediaType ? (\n \n ) : null}\n\n { headers ? (\n \n ) : null}\n\n \n {isOAS3 ? \n { links ?\n links.toSeq().entrySeq().map(([key, link]) => {\n return \n })\n : No links}\n : null}\n \n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport const ResponseExtension = ({ xKey, xVal }) => {\n return
{ xKey }: { String(xVal) }
\n}\nResponseExtension.propTypes = {\n xKey: PropTypes.string,\n xVal: PropTypes.any\n}\n\nexport default ResponseExtension\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_xml_but_prettier_2ed4d5cb__[\"default\"] });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_toLower_c29ee2b0__[\"default\"] });","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport formatXml from \"xml-but-prettier\"\nimport toLower from \"lodash/toLower\"\nimport { extractFileNameFromContentDispositionHeader } from \"core/utils\"\nimport { getKnownSyntaxHighlighterLanguage } from \"core/utils/jsonParse\"\nimport win from \"core/window\"\n\nexport default class ResponseBody extends React.PureComponent {\n state = {\n parsedContent: null\n }\n\n static propTypes = {\n content: PropTypes.any.isRequired,\n contentType: PropTypes.string,\n getConfigs: PropTypes.func.isRequired,\n getComponent: PropTypes.func.isRequired,\n headers: PropTypes.object,\n url: PropTypes.string\n }\n\n updateParsedContent = (prevContent) => {\n const { content } = this.props\n\n if(prevContent === content) {\n return\n }\n\n if(content && content instanceof Blob) {\n var reader = new FileReader()\n reader.onload = () => {\n this.setState({\n parsedContent: reader.result\n })\n }\n reader.readAsText(content)\n } else {\n this.setState({\n parsedContent: content.toString()\n })\n }\n }\n\n componentDidMount() {\n this.updateParsedContent(null)\n }\n\n componentDidUpdate(prevProps) {\n this.updateParsedContent(prevProps.content)\n }\n\n render() {\n let { content, contentType, url, headers={}, getConfigs, getComponent } = this.props\n const { parsedContent } = this.state\n const HighlightCode = getComponent(\"highlightCode\")\n const downloadName = \"response_\" + new Date().getTime()\n let body, bodyEl\n url = url || \"\"\n\n if (\n /^application\\/octet-stream/i.test(contentType) ||\n (headers[\"Content-Disposition\"] && (/attachment/i).test(headers[\"Content-Disposition\"])) ||\n (headers[\"content-disposition\"] && (/attachment/i).test(headers[\"content-disposition\"])) ||\n (headers[\"Content-Description\"] && (/File Transfer/i).test(headers[\"Content-Description\"])) ||\n (headers[\"content-description\"] && (/File Transfer/i).test(headers[\"content-description\"]))) {\n // Download\n\n if (\"Blob\" in window) {\n let type = contentType || \"text/html\"\n let blob = (content instanceof Blob) ? content : new Blob([content], {type: type})\n let href = window.URL.createObjectURL(blob)\n let fileName = url.substr(url.lastIndexOf(\"/\") + 1)\n let download = [type, fileName, href].join(\":\")\n\n // Use filename from response header,\n // First check if filename is quoted (e.g. contains space), if no, fallback to not quoted check\n let disposition = headers[\"content-disposition\"] || headers[\"Content-Disposition\"]\n if (typeof disposition !== \"undefined\") {\n let responseFilename = extractFileNameFromContentDispositionHeader(disposition)\n if (responseFilename !== null) {\n download = responseFilename\n }\n }\n\n if(win.navigator && win.navigator.msSaveOrOpenBlob) {\n bodyEl = \n } else {\n bodyEl = \n }\n } else {\n bodyEl =
Download headers detected but your browser does not support downloading binary via XHR (Blob).
\n }\n\n // Anything else (CORS)\n } else if (/json/i.test(contentType)) {\n // JSON\n let language = null\n let testValueForJson = getKnownSyntaxHighlighterLanguage(content)\n if (testValueForJson) {\n language = \"json\"\n }\n try {\n body = JSON.stringify(JSON.parse(content), null, \" \")\n } catch (error) {\n body = \"can't parse JSON. Raw result:\\n\\n\" + content\n }\n\n bodyEl = \n\n // XML\n } else if (/xml/i.test(contentType)) {\n body = formatXml(content, {\n textNodesOnSameLine: true,\n indentor: \" \"\n })\n bodyEl = \n\n // HTML or Plain Text\n } else if (toLower(contentType) === \"text/html\" || /text\\/plain/.test(contentType)) {\n bodyEl = \n\n // CSV\n } else if (toLower(contentType) === \"text/csv\" || /text\\/csv/.test(contentType)) {\n bodyEl = \n\n // Image\n } else if (/^image\\//i.test(contentType)) {\n if(contentType.includes(\"svg\")) {\n bodyEl =
{ content }
\n } else {\n bodyEl = \n }\n\n // Audio\n } else if (/^audio\\//i.test(contentType)) {\n bodyEl =
\n } else if (typeof content === \"string\") {\n bodyEl = \n } else if ( content.size > 0 ) {\n // We don't know the contentType, but there was some content returned\n if(parsedContent) {\n // We were able to squeeze something out of content\n // in `updateParsedContent`, so let's display it\n bodyEl =
\n

\n Unrecognized response type; displaying content as text.\n

\n \n
\n\n } else {\n // Give up\n bodyEl =

\n Unrecognized response type; unable to display.\n

\n }\n } else {\n // We don't know the contentType and there was no content returned\n bodyEl = null\n }\n\n return ( !bodyEl ? null :
\n
Response body
\n { bodyEl }\n
\n )\n }\n}\n","import React, { Component } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { Map, List } from \"immutable\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nexport default class Parameters extends Component {\n\n constructor(props) {\n super(props)\n this.state = {\n callbackVisible: false,\n parametersVisible: true,\n }\n }\n\n static propTypes = {\n parameters: ImPropTypes.list.isRequired,\n operation: PropTypes.object.isRequired,\n specActions: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n specSelectors: PropTypes.object.isRequired,\n oas3Actions: PropTypes.object.isRequired,\n oas3Selectors: PropTypes.object.isRequired,\n fn: PropTypes.object.isRequired,\n tryItOutEnabled: PropTypes.bool,\n allowTryItOut: PropTypes.bool,\n onTryoutClick: PropTypes.func,\n onCancelClick: PropTypes.func,\n onChangeKey: PropTypes.array,\n pathMethod: PropTypes.array.isRequired,\n getConfigs: PropTypes.func.isRequired,\n specPath: ImPropTypes.list.isRequired,\n }\n\n\n static defaultProps = {\n onTryoutClick: Function.prototype,\n onCancelClick: Function.prototype,\n tryItOutEnabled: false,\n allowTryItOut: true,\n onChangeKey: [],\n specPath: [],\n }\n\n onChange = (param, value, isXml) => {\n let {\n specActions: { changeParamByIdentity },\n onChangeKey,\n } = this.props\n\n changeParamByIdentity(onChangeKey, param, value, isXml)\n }\n\n onChangeConsumesWrapper = (val) => {\n let {\n specActions: { changeConsumesValue },\n onChangeKey,\n } = this.props\n\n changeConsumesValue(onChangeKey, val)\n }\n\n toggleTab = (tab) => {\n if (tab === \"parameters\") {\n return this.setState({\n parametersVisible: true,\n callbackVisible: false,\n })\n } else if (tab === \"callbacks\") {\n return this.setState({\n callbackVisible: true,\n parametersVisible: false,\n })\n }\n }\n\n onChangeMediaType = ({ value, pathMethod }) => {\n let { specActions, oas3Selectors, oas3Actions } = this.props\n const userHasEditedBody = oas3Selectors.hasUserEditedBody(...pathMethod)\n const shouldRetainRequestBodyValue = oas3Selectors.shouldRetainRequestBodyValue(...pathMethod)\n oas3Actions.setRequestContentType({ value, pathMethod })\n oas3Actions.initRequestBodyValidateError({ pathMethod })\n if (!userHasEditedBody) {\n if(!shouldRetainRequestBodyValue) {\n oas3Actions.setRequestBodyValue({ value: undefined, pathMethod })\n }\n specActions.clearResponse(...pathMethod)\n specActions.clearRequest(...pathMethod)\n specActions.clearValidateParams(pathMethod)\n }\n }\n\n render() {\n\n let {\n onTryoutClick,\n parameters,\n allowTryItOut,\n tryItOutEnabled,\n specPath,\n fn,\n getComponent,\n getConfigs,\n specSelectors,\n specActions,\n pathMethod,\n oas3Actions,\n oas3Selectors,\n operation,\n } = this.props\n\n const ParameterRow = getComponent(\"parameterRow\")\n const TryItOutButton = getComponent(\"TryItOutButton\")\n const ContentType = getComponent(\"contentType\")\n const Callbacks = getComponent(\"Callbacks\", true)\n const RequestBody = getComponent(\"RequestBody\", true)\n\n const isExecute = tryItOutEnabled && allowTryItOut\n const isOAS3 = specSelectors.isOAS3()\n\n\n const requestBody = operation.get(\"requestBody\")\n\n const groupedParametersArr = Object.values(parameters\n .reduce((acc, x) => {\n const key = x.get(\"in\")\n acc[key] ??= []\n acc[key].push(x)\n return acc\n }, {}))\n .reduce((acc, x) => acc.concat(x), [])\n\n const retainRequestBodyValueFlagForOperation = (f) => oas3Actions.setRetainRequestBodyValueFlag({ value: f, pathMethod })\n return (\n
\n
\n {isOAS3 ? (\n
\n
this.toggleTab(\"parameters\")}\n className={`tab-item ${this.state.parametersVisible && \"active\"}`}>\n

Parameters

\n
\n {operation.get(\"callbacks\") ?\n (\n
this.toggleTab(\"callbacks\")}\n className={`tab-item ${this.state.callbackVisible && \"active\"}`}>\n

Callbacks

\n
\n ) : null\n }\n
\n ) : (\n
\n

Parameters

\n
\n )}\n {allowTryItOut ? (\n oas3Actions.setRequestBodyValue({ value: undefined, pathMethod })}/>\n ) : null}\n
\n {this.state.parametersVisible ?
\n {!groupedParametersArr.length ?

No parameters

:\n
\n \n \n \n \n \n \n \n \n {\n groupedParametersArr.map((parameter, i) => (\n \n ))\n }\n \n
NameDescription
\n
\n }\n
: null}\n\n {this.state.callbackVisible ?
\n \n
: null}\n {\n isOAS3 && requestBody && this.state.parametersVisible &&\n
\n
\n

Request\n body

\n \n
\n
\n {\n this.props.oas3Actions.setActiveExamplesMember({\n name: key,\n pathMethod: this.props.pathMethod,\n contextType: \"requestBody\",\n contextName: \"requestBody\", // RBs are currently not stored per-mediaType\n })\n }\n }\n onChange={(value, path) => {\n if (path) {\n const lastValue = oas3Selectors.requestBodyValue(...pathMethod)\n const usableValue = Map.isMap(lastValue) ? lastValue : Map()\n return oas3Actions.setRequestBodyValue({\n pathMethod,\n value: usableValue.setIn(path, value),\n })\n }\n oas3Actions.setRequestBodyValue({ value, pathMethod })\n }}\n onChangeIncludeEmpty={(name, value) => {\n oas3Actions.setRequestBodyInclusion({\n pathMethod,\n value,\n name,\n })\n }}\n contentType={oas3Selectors.requestContentType(...pathMethod)} />\n
\n
\n }\n
\n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport const ParameterExt = ({ xKey, xVal }) => {\n return
{ xKey }: { String(xVal) }
\n}\nParameterExt.propTypes = {\n xKey: PropTypes.string,\n xVal: PropTypes.any\n}\n\nexport default ParameterExt\n","import React, { Component } from \"react\"\nimport cx from \"classnames\"\nimport PropTypes from \"prop-types\"\n\n\nconst noop = () => { }\n\nconst ParameterIncludeEmptyPropTypes = {\n isIncluded: PropTypes.bool.isRequired,\n isDisabled: PropTypes.bool.isRequired,\n isIncludedOptions: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n}\n\nconst ParameterIncludeEmptyDefaultProps = {\n onChange: noop,\n isIncludedOptions: {},\n}\nexport default class ParameterIncludeEmpty extends Component {\n static propTypes = ParameterIncludeEmptyPropTypes\n static defaultProps = ParameterIncludeEmptyDefaultProps\n\n componentDidMount() {\n const { isIncludedOptions, onChange } = this.props\n const { shouldDispatchInit, defaultValue } = isIncludedOptions\n if (shouldDispatchInit) {\n onChange(defaultValue)\n }\n }\n\n onCheckboxChange = e => {\n const { onChange } = this.props\n onChange(e.target.checked)\n }\n\n render() {\n let { isIncluded, isDisabled } = this.props\n\n return (\n
\n \n
\n )\n }\n}\n","import React, { Component } from \"react\"\nimport { Map, List } from \"immutable\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport win from \"core/window\"\nimport { getSampleSchema, getExtensions, getCommonExtensions, numberToString, stringify, isEmptyValue } from \"core/utils\"\nimport getParameterSchema from \"../../helpers/get-parameter-schema.js\"\n\nexport default class ParameterRow extends Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n param: PropTypes.object.isRequired,\n rawParam: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n fn: PropTypes.object.isRequired,\n isExecute: PropTypes.bool,\n onChangeConsumes: PropTypes.func.isRequired,\n specSelectors: PropTypes.object.isRequired,\n specActions: PropTypes.object.isRequired,\n pathMethod: PropTypes.array.isRequired,\n getConfigs: PropTypes.func.isRequired,\n specPath: ImPropTypes.list.isRequired,\n oas3Actions: PropTypes.object.isRequired,\n oas3Selectors: PropTypes.object.isRequired,\n }\n\n constructor(props, context) {\n super(props, context)\n\n this.setDefaultValue()\n }\n\n UNSAFE_componentWillReceiveProps(props) {\n let { specSelectors, pathMethod, rawParam } = props\n let isOAS3 = specSelectors.isOAS3()\n\n let parameterWithMeta = specSelectors.parameterWithMetaByIdentity(pathMethod, rawParam) || new Map()\n // fallback, if the meta lookup fails\n parameterWithMeta = parameterWithMeta.isEmpty() ? rawParam : parameterWithMeta\n\n let enumValue\n\n if(isOAS3) {\n let { schema } = getParameterSchema(parameterWithMeta, { isOAS3 })\n enumValue = schema ? schema.get(\"enum\") : undefined\n } else {\n enumValue = parameterWithMeta ? parameterWithMeta.get(\"enum\") : undefined\n }\n let paramValue = parameterWithMeta ? parameterWithMeta.get(\"value\") : undefined\n\n let value\n\n if ( paramValue !== undefined ) {\n value = paramValue\n } else if ( rawParam.get(\"required\") && enumValue && enumValue.size ) {\n value = enumValue.first()\n }\n\n if ( value !== undefined && value !== paramValue ) {\n this.onChangeWrapper(numberToString(value))\n }\n // todo: could check if schema here; if not, do not call. impact?\n this.setDefaultValue()\n }\n\n onChangeWrapper = (value, isXml = false) => {\n let { onChange, rawParam } = this.props\n let valueForUpstream\n\n // Coerce empty strings and empty Immutable objects to null\n if(value === \"\" || (value && value.size === 0)) {\n valueForUpstream = null\n } else {\n valueForUpstream = value\n }\n\n return onChange(rawParam, valueForUpstream, isXml)\n }\n\n _onExampleSelect = (key, /* { isSyntheticChange } = {} */) => {\n this.props.oas3Actions.setActiveExamplesMember({\n name: key,\n pathMethod: this.props.pathMethod,\n contextType: \"parameters\",\n contextName: this.getParamKey()\n })\n }\n\n onChangeIncludeEmpty = (newValue) => {\n let { specActions, param, pathMethod } = this.props\n const paramName = param.get(\"name\")\n const paramIn = param.get(\"in\")\n return specActions.updateEmptyParamInclusion(pathMethod, paramName, paramIn, newValue)\n }\n\n setDefaultValue = () => {\n let { specSelectors, pathMethod, rawParam, oas3Selectors } = this.props\n\n const paramWithMeta = specSelectors.parameterWithMetaByIdentity(pathMethod, rawParam) || Map()\n const { schema } = getParameterSchema(paramWithMeta, { isOAS3: specSelectors.isOAS3() })\n const parameterMediaType = paramWithMeta\n .get(\"content\", Map())\n .keySeq()\n .first()\n\n // getSampleSchema could return null\n const generatedSampleValue = schema ? getSampleSchema(schema.toJS(), parameterMediaType, {\n\n includeWriteOnly: true\n }) : null\n\n if (!paramWithMeta || paramWithMeta.get(\"value\") !== undefined) {\n return\n }\n\n if( paramWithMeta.get(\"in\") !== \"body\" ) {\n let initialValue\n\n //// Find an initial value\n\n if (specSelectors.isSwagger2()) {\n initialValue =\n paramWithMeta.get(\"x-example\") !== undefined\n ? paramWithMeta.get(\"x-example\")\n : paramWithMeta.getIn([\"schema\", \"example\"]) !== undefined\n ? paramWithMeta.getIn([\"schema\", \"example\"])\n : (schema && schema.getIn([\"default\"]))\n } else if (specSelectors.isOAS3()) {\n const currentExampleKey = oas3Selectors.activeExamplesMember(...pathMethod, \"parameters\", this.getParamKey())\n initialValue =\n paramWithMeta.getIn([\"examples\", currentExampleKey, \"value\"]) !== undefined\n ? paramWithMeta.getIn([\"examples\", currentExampleKey, \"value\"])\n : paramWithMeta.getIn([\"content\", parameterMediaType, \"example\"]) !== undefined\n ? paramWithMeta.getIn([\"content\", parameterMediaType, \"example\"])\n : paramWithMeta.get(\"example\") !== undefined\n ? paramWithMeta.get(\"example\")\n : (schema && schema.get(\"example\")) !== undefined\n ? (schema && schema.get(\"example\"))\n : (schema && schema.get(\"default\")) !== undefined\n ? (schema && schema.get(\"default\"))\n : paramWithMeta.get(\"default\") // ensures support for `parameterMacro`\n }\n\n //// Process the initial value\n\n if(initialValue !== undefined && !List.isList(initialValue)) {\n // Stringify if it isn't a List\n initialValue = stringify(initialValue)\n }\n\n //// Dispatch the initial value\n\n if(initialValue !== undefined) {\n this.onChangeWrapper(initialValue)\n } else if(\n schema && schema.get(\"type\") === \"object\"\n && generatedSampleValue\n && !paramWithMeta.get(\"examples\")\n ) {\n // Object parameters get special treatment.. if the user doesn't set any\n // default or example values, we'll provide initial values generated from\n // the schema.\n // However, if `examples` exist for the parameter, we won't do anything,\n // so that the appropriate `examples` logic can take over.\n this.onChangeWrapper(\n List.isList(generatedSampleValue) ? (\n generatedSampleValue\n ) : (\n stringify(generatedSampleValue)\n )\n )\n }\n }\n }\n\n getParamKey() {\n const { param } = this.props\n\n if(!param) return null\n\n return `${param.get(\"name\")}-${param.get(\"in\")}`\n }\n\n render() {\n let {param, rawParam, getComponent, getConfigs, isExecute, fn, onChangeConsumes, specSelectors, pathMethod, specPath, oas3Selectors} = this.props\n\n let isOAS3 = specSelectors.isOAS3()\n\n const { showExtensions, showCommonExtensions } = getConfigs()\n\n if(!param) {\n param = rawParam\n }\n\n if(!rawParam) return null\n\n // const onChangeWrapper = (value) => onChange(param, value)\n const JsonSchemaForm = getComponent(\"JsonSchemaForm\")\n const ParamBody = getComponent(\"ParamBody\")\n let inType = param.get(\"in\")\n let bodyParam = inType !== \"body\" ? null\n : \n\n const ModelExample = getComponent(\"modelExample\")\n const Markdown = getComponent(\"Markdown\", true)\n const ParameterExt = getComponent(\"ParameterExt\")\n const ParameterIncludeEmpty = getComponent(\"ParameterIncludeEmpty\")\n const ExamplesSelectValueRetainer = getComponent(\"ExamplesSelectValueRetainer\")\n const Example = getComponent(\"Example\")\n\n let { schema } = getParameterSchema(param, { isOAS3 })\n let paramWithMeta = specSelectors.parameterWithMetaByIdentity(pathMethod, rawParam) || Map()\n\n let format = schema ? schema.get(\"format\") : null\n let type = schema ? schema.get(\"type\") : null\n let itemType = schema ? schema.getIn([\"items\", \"type\"]) : null\n let isFormData = inType === \"formData\"\n let isFormDataSupported = \"FormData\" in win\n let required = param.get(\"required\")\n\n let value = paramWithMeta ? paramWithMeta.get(\"value\") : \"\"\n let commonExt = showCommonExtensions ? getCommonExtensions(schema) : null\n let extensions = showExtensions ? getExtensions(param) : null\n\n let paramItems // undefined\n let paramEnum // undefined\n let paramDefaultValue // undefined\n let paramExample // undefined\n let isDisplayParamEnum = false\n\n if ( param !== undefined && schema ) {\n paramItems = schema.get(\"items\")\n }\n\n if (paramItems !== undefined) {\n paramEnum = paramItems.get(\"enum\")\n paramDefaultValue = paramItems.get(\"default\")\n } else if (schema) {\n paramEnum = schema.get(\"enum\")\n }\n\n if ( paramEnum && paramEnum.size && paramEnum.size > 0) {\n isDisplayParamEnum = true\n }\n\n // Default and Example Value for readonly doc\n if ( param !== undefined ) {\n if (schema) {\n paramDefaultValue = schema.get(\"default\")\n }\n if (paramDefaultValue === undefined) {\n paramDefaultValue = param.get(\"default\")\n }\n paramExample = param.get(\"example\")\n if (paramExample === undefined) {\n paramExample = param.get(\"x-example\")\n }\n }\n\n return (\n \n \n
\n { param.get(\"name\") }\n { !required ? null :  * }\n
\n
\n { type }\n { itemType && `[${itemType}]` }\n { format && (${format})}\n
\n
\n { isOAS3 && param.get(\"deprecated\") ? \"deprecated\": null }\n
\n
({ param.get(\"in\") })
\n { !showCommonExtensions || !commonExt.size ? null : commonExt.entrySeq().map(([key, v]) => )}\n { !showExtensions || !extensions.size ? null : extensions.entrySeq().map(([key, v]) => )}\n \n\n \n { param.get(\"description\") ? : null }\n\n { (bodyParam || !isExecute) && isDisplayParamEnum ?\n Available values : \" + paramEnum.map(function(item) {\n return item\n }).toArray().join(\", \")}/>\n : null\n }\n\n { (bodyParam || !isExecute) && paramDefaultValue !== undefined ?\n Default value : \" + paramDefaultValue}/>\n : null\n }\n\n { (bodyParam || !isExecute) && paramExample !== undefined ?\n Example : \" + paramExample}/>\n : null\n }\n\n {(isFormData && !isFormDataSupported) &&
Error: your browser does not support FormData
}\n\n {\n isOAS3 && param.get(\"examples\") ? (\n
\n \n
\n ) : null\n }\n\n { bodyParam ? null\n : \n }\n\n\n {\n bodyParam && schema ? \n : null\n }\n\n {\n !bodyParam && isExecute && param.get(\"allowEmptyValue\") ?\n \n : null\n }\n\n {\n isOAS3 && param.get(\"examples\") ? (\n \n ) : null\n }\n\n \n\n \n )\n\n }\n\n}\n","import React, { Component } from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class Execute extends Component {\n\n static propTypes = {\n specSelectors: PropTypes.object.isRequired,\n specActions: PropTypes.object.isRequired,\n operation: PropTypes.object.isRequired,\n path: PropTypes.string.isRequired,\n method: PropTypes.string.isRequired,\n oas3Selectors: PropTypes.object.isRequired,\n oas3Actions: PropTypes.object.isRequired,\n onExecute: PropTypes.func,\n disabled: PropTypes.bool\n }\n\n handleValidateParameters = () => {\n let { specSelectors, specActions, path, method } = this.props\n specActions.validateParams([path, method])\n return specSelectors.validateBeforeExecute([path, method])\n }\n\n handleValidateRequestBody = () => {\n let { path, method, specSelectors, oas3Selectors, oas3Actions } = this.props\n let validationErrors = {\n missingBodyValue: false,\n missingRequiredKeys: []\n }\n // context: reset errors, then (re)validate\n oas3Actions.clearRequestBodyValidateError({ path, method })\n let oas3RequiredRequestBodyContentType = specSelectors.getOAS3RequiredRequestBodyContentType([path, method])\n let oas3RequestBodyValue = oas3Selectors.requestBodyValue(path, method)\n let oas3ValidateBeforeExecuteSuccess = oas3Selectors.validateBeforeExecute([path, method])\n let oas3RequestContentType = oas3Selectors.requestContentType(path, method)\n\n if (!oas3ValidateBeforeExecuteSuccess) {\n validationErrors.missingBodyValue = true\n oas3Actions.setRequestBodyValidateError({ path, method, validationErrors })\n return false\n }\n if (!oas3RequiredRequestBodyContentType) {\n return true\n }\n let missingRequiredKeys = oas3Selectors.validateShallowRequired({\n oas3RequiredRequestBodyContentType,\n oas3RequestContentType,\n oas3RequestBodyValue\n })\n if (!missingRequiredKeys || missingRequiredKeys.length < 1) {\n return true\n }\n missingRequiredKeys.forEach((missingKey) => {\n validationErrors.missingRequiredKeys.push(missingKey)\n })\n oas3Actions.setRequestBodyValidateError({ path, method, validationErrors })\n return false\n }\n\n handleValidationResultPass = () => {\n let { specActions, operation, path, method } = this.props\n if (this.props.onExecute) {\n // loading spinner\n this.props.onExecute()\n }\n specActions.execute({ operation, path, method })\n }\n\n handleValidationResultFail = () => {\n let { specActions, path, method } = this.props\n // deferred by 40ms, to give element class change time to settle.\n specActions.clearValidateParams([path, method])\n setTimeout(() => {\n specActions.validateParams([path, method])\n }, 40)\n }\n\n handleValidationResult = (isPass) => {\n if (isPass) {\n this.handleValidationResultPass()\n } else {\n this.handleValidationResultFail()\n }\n }\n\n onClick = () => {\n let paramsResult = this.handleValidateParameters()\n let requestBodyResult = this.handleValidateRequestBody()\n let isPass = paramsResult && requestBodyResult\n this.handleValidationResult(isPass)\n }\n\n onChangeProducesWrapper = ( val ) => this.props.specActions.changeProducesValue([this.props.path, this.props.method], val)\n\n render(){\n const { disabled } = this.props\n return (\n \n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Im from \"immutable\"\n\nconst propClass = \"header-example\"\n\nexport default class Headers extends React.Component {\n static propTypes = {\n headers: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired\n };\n\n render() {\n let { headers, getComponent } = this.props\n\n const Property = getComponent(\"Property\")\n const Markdown = getComponent(\"Markdown\", true)\n\n if ( !headers || !headers.size )\n return null\n\n return (\n
\n

Headers:

\n \n \n \n \n \n \n \n \n \n {\n headers.entrySeq().map( ([ key, header ]) => {\n if(!Im.Map.isMap(header)) {\n return null\n }\n\n const description = header.get(\"description\")\n const type = header.getIn([\"schema\"]) ? header.getIn([\"schema\", \"type\"]) : header.getIn([\"type\"])\n const schemaExample = header.getIn([\"schema\", \"example\"])\n\n return (\n \n \n \n )\n }).toArray()\n }\n \n
NameDescriptionType
{ key }{\n !description ? null : \n }{ type } { schemaExample ? : null }
\n
\n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { List } from \"immutable\"\n\nexport default class Errors extends React.Component {\n\n static propTypes = {\n editorActions: PropTypes.object,\n errSelectors: PropTypes.object.isRequired,\n layoutSelectors: PropTypes.object.isRequired,\n layoutActions: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n }\n\n render() {\n let { editorActions, errSelectors, layoutSelectors, layoutActions, getComponent } = this.props\n\n const Collapse = getComponent(\"Collapse\")\n\n if(editorActions && editorActions.jumpToLine) {\n var jumpToLine = editorActions.jumpToLine\n }\n\n let errors = errSelectors.allErrors()\n\n // all thrown errors, plus error-level everything else\n let allErrorsToDisplay = errors.filter(err => err.get(\"type\") === \"thrown\" ? true :err.get(\"level\") === \"error\")\n\n if(!allErrorsToDisplay || allErrorsToDisplay.count() < 1) {\n return null\n }\n\n let isVisible = layoutSelectors.isShown([\"errorPane\"], true)\n let toggleVisibility = () => layoutActions.show([\"errorPane\"], !isVisible)\n\n let sortedJSErrors = allErrorsToDisplay.sortBy(err => err.get(\"line\"))\n\n return (\n
\n        
\n

Errors

\n \n
\n \n
\n { sortedJSErrors.map((err, i) => {\n let type = err.get(\"type\")\n if(type === \"thrown\" || type === \"auth\") {\n return \n }\n if(type === \"spec\") {\n return \n }\n }) }\n
\n
\n
\n )\n }\n}\n\nconst ThrownErrorItem = ( { error, jumpToLine } ) => {\n if(!error) {\n return null\n }\n let errorLine = error.get(\"line\")\n\n return (\n
\n { !error ? null :\n
\n

{ (error.get(\"source\") && error.get(\"level\")) ?\n toTitleCase(error.get(\"source\")) + \" \" + error.get(\"level\") : \"\" }\n { error.get(\"path\") ? at {error.get(\"path\")}: null }

\n \n { error.get(\"message\") }\n \n
\n { errorLine && jumpToLine ? Jump to line { errorLine } : null }\n
\n
\n }\n
\n )\n }\n\nconst SpecErrorItem = ( { error, jumpToLine } ) => {\n let locationMessage = null\n\n if(error.get(\"path\")) {\n if(List.isList(error.get(\"path\"))) {\n locationMessage = at { error.get(\"path\").join(\".\") }\n } else {\n locationMessage = at { error.get(\"path\") }\n }\n } else if(error.get(\"line\") && !jumpToLine) {\n locationMessage = on line { error.get(\"line\") }\n }\n\n return (\n
\n { !error ? null :\n
\n

{ toTitleCase(error.get(\"source\")) + \" \" + error.get(\"level\") } { locationMessage }

\n { error.get(\"message\") }\n
\n { jumpToLine ? (\n Jump to line { error.get(\"line\") }\n ) : null }\n
\n
\n }\n
\n )\n }\n\nfunction toTitleCase(str) {\n return (str || \"\")\n .split(\" \")\n .map(substr => substr[0].toUpperCase() + substr.slice(1))\n .join(\" \")\n}\n\nThrownErrorItem.propTypes = {\n error: PropTypes.object.isRequired,\n jumpToLine: PropTypes.func\n}\n\nThrownErrorItem.defaultProps = {\n jumpToLine: null\n}\n\nSpecErrorItem.propTypes = {\n error: PropTypes.object.isRequired,\n jumpToLine: PropTypes.func\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport { fromJS } from \"immutable\"\n\nconst noop = ()=>{}\n\nexport default class ContentType extends React.Component {\n\n static propTypes = {\n ariaControls: PropTypes.string,\n contentTypes: PropTypes.oneOfType([ImPropTypes.list, ImPropTypes.set, ImPropTypes.seq]),\n controlId: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n className: PropTypes.string,\n ariaLabel: PropTypes.string\n }\n\n static defaultProps = {\n onChange: noop,\n value: null,\n contentTypes: fromJS([\"application/json\"]),\n }\n\n componentDidMount() {\n // Needed to populate the form, initially\n if(this.props.contentTypes) {\n this.props.onChange(this.props.contentTypes.first())\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if(!nextProps.contentTypes || !nextProps.contentTypes.size) {\n return\n }\n\n if(!nextProps.contentTypes.includes(nextProps.value)) {\n nextProps.onChange(nextProps.contentTypes.first())\n }\n }\n\n onChangeWrapper = e => this.props.onChange(e.target.value)\n\n render() {\n let { ariaControls, ariaLabel, className, contentTypes, controlId, value } = this.props\n\n if ( !contentTypes || !contentTypes.size )\n return null\n\n return (\n
\n \n
\n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nfunction xclass(...args) {\n return args.filter(a => !!a).join(\" \").trim()\n}\n\nexport class Container extends React.Component {\n render() {\n let { fullscreen, full, ...rest } = this.props\n // Normal element\n\n if(fullscreen)\n return
\n\n let containerClass = \"swagger-container\" + (full ? \"-full\" : \"\")\n return (\n
\n )\n }\n}\n\nContainer.propTypes = {\n fullscreen: PropTypes.bool,\n full: PropTypes.bool,\n className: PropTypes.string\n}\n\nconst DEVICES = {\n \"mobile\": \"\",\n \"tablet\": \"-tablet\",\n \"desktop\": \"-desktop\",\n \"large\": \"-hd\"\n}\n\nexport class Col extends React.Component {\n\n render() {\n const {\n hide,\n keepContents,\n /* we don't want these in the `rest` object that passes to the final component,\n since React now complains. So we extract them */\n /* eslint-disable no-unused-vars */\n mobile,\n tablet,\n desktop,\n large,\n /* eslint-enable no-unused-vars */\n ...rest\n } = this.props\n\n if(hide && !keepContents)\n return \n\n let classesAr = []\n\n for (let device in DEVICES) {\n if (!Object.prototype.hasOwnProperty.call(DEVICES, device)) {\n continue\n }\n let deviceClass = DEVICES[device]\n if(device in this.props) {\n let val = this.props[device]\n\n if(val < 1) {\n classesAr.push(\"none\" + deviceClass)\n continue\n }\n\n classesAr.push(\"block\" + deviceClass)\n classesAr.push(\"col-\" + val + deviceClass)\n }\n }\n\n if (hide) {\n classesAr.push(\"hidden\")\n }\n\n let classes = xclass(rest.className, ...classesAr)\n\n return (\n
\n )\n }\n\n}\n\nCol.propTypes = {\n hide: PropTypes.bool,\n keepContents: PropTypes.bool,\n mobile: PropTypes.number,\n tablet: PropTypes.number,\n desktop: PropTypes.number,\n large: PropTypes.number,\n className: PropTypes.string\n}\n\nexport class Row extends React.Component {\n\n render() {\n return
\n }\n\n}\n\nRow.propTypes = {\n className: PropTypes.string\n}\n\nexport class Button extends React.Component {\n\n static propTypes = {\n className: PropTypes.string\n }\n\n static defaultProps = {\n className: \"\"\n }\n\n render() {\n return
\n
\n {curlBlock}\n
\n \n )\n }\n\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class Schemes extends React.Component {\n\n static propTypes = {\n specActions: PropTypes.object.isRequired,\n schemes: PropTypes.object.isRequired,\n currentScheme: PropTypes.string.isRequired,\n path: PropTypes.string,\n method: PropTypes.string,\n }\n\n UNSAFE_componentWillMount() {\n let { schemes } = this.props\n\n //fire 'change' event to set default 'value' of select\n this.setScheme(schemes.first())\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if ( !this.props.currentScheme || !nextProps.schemes.includes(this.props.currentScheme) ) {\n // if we don't have a selected currentScheme or if our selected scheme is no longer an option,\n // then fire 'change' event and select the first scheme in the list of options\n this.setScheme(nextProps.schemes.first())\n }\n }\n\n onChange =( e ) => {\n this.setScheme( e.target.value )\n }\n\n setScheme = ( value ) => {\n let { path, method, specActions } = this.props\n\n specActions.setScheme( value, path, method )\n }\n\n render() {\n let { schemes, currentScheme } = this.props\n\n return (\n \n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class SchemesContainer extends React.Component {\n\n static propTypes = {\n specActions: PropTypes.object.isRequired,\n specSelectors: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired\n }\n\n render () {\n const {specActions, specSelectors, getComponent} = this.props\n\n const currentScheme = specSelectors.operationScheme()\n const schemes = specSelectors.schemes()\n\n const Schemes = getComponent(\"schemes\")\n\n const schemesArePresent = schemes && schemes.size\n\n return schemesArePresent ? (\n \n ) : null\n }\n}\n","import React, { Component } from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport Im from \"immutable\"\n\nexport default class ModelCollapse extends Component {\n static propTypes = {\n collapsedContent: PropTypes.any,\n expanded: PropTypes.bool,\n children: PropTypes.any,\n title: PropTypes.element,\n modelName: PropTypes.string,\n classes: PropTypes.string,\n onToggle: PropTypes.func,\n hideSelfOnExpand: PropTypes.bool,\n layoutActions: PropTypes.object,\n layoutSelectors: PropTypes.object.isRequired,\n specPath: ImPropTypes.list.isRequired,\n }\n\n static defaultProps = {\n collapsedContent: \"{...}\",\n expanded: false,\n title: null,\n onToggle: () => {},\n hideSelfOnExpand: false,\n specPath: Im.List([]),\n }\n\n constructor(props, context) {\n super(props, context)\n\n let { expanded, collapsedContent } = this.props\n\n this.state = {\n expanded : expanded,\n collapsedContent: collapsedContent || ModelCollapse.defaultProps.collapsedContent\n }\n }\n\n componentDidMount() {\n const { hideSelfOnExpand, expanded, modelName } = this.props\n if(hideSelfOnExpand && expanded) {\n // We just mounted pre-expanded, and we won't be going back..\n // So let's give our parent an `onToggle` call..\n // Since otherwise it will never be called.\n this.props.onToggle(modelName, expanded)\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps){\n if(this.props.expanded !== nextProps.expanded){\n this.setState({expanded: nextProps.expanded})\n }\n }\n\n toggleCollapsed=()=>{\n if(this.props.onToggle){\n this.props.onToggle(this.props.modelName,!this.state.expanded)\n }\n\n this.setState({\n expanded: !this.state.expanded\n })\n }\n\n onLoad = (ref) => {\n if (ref && this.props.layoutSelectors) {\n const scrollToKey = this.props.layoutSelectors.getScrollToKey()\n\n if( Im.is(scrollToKey, this.props.specPath) ) this.toggleCollapsed()\n this.props.layoutActions.readyToScroll(this.props.specPath, ref.parentElement)\n }\n }\n\n render () {\n const { title, classes } = this.props\n\n if(this.state.expanded ) {\n if(this.props.hideSelfOnExpand) {\n return \n {this.props.children}\n \n }\n }\n\n return (\n \n \n\n { this.state.expanded && this.props.children }\n \n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport cx from \"classnames\"\nimport randomBytes from \"randombytes\"\n\nexport default class ModelExample extends React.Component {\n static propTypes = {\n getComponent: PropTypes.func.isRequired,\n specSelectors: PropTypes.object.isRequired,\n schema: PropTypes.object.isRequired,\n example: PropTypes.any.isRequired,\n isExecute: PropTypes.bool,\n getConfigs: PropTypes.func.isRequired,\n specPath: ImPropTypes.list.isRequired,\n includeReadOnly: PropTypes.bool,\n includeWriteOnly: PropTypes.bool,\n }\n\n constructor(props, context) {\n super(props, context)\n let { getConfigs, isExecute } = this.props\n let { defaultModelRendering } = getConfigs()\n\n let activeTab = defaultModelRendering\n\n if (defaultModelRendering !== \"example\" && defaultModelRendering !== \"model\") {\n activeTab = \"example\"\n }\n\n if(isExecute) {\n activeTab = \"example\"\n }\n\n this.state = {\n activeTab,\n }\n }\n\n activeTab = ( e ) => {\n let { target : { dataset : { name } } } = e\n\n this.setState({\n activeTab: name\n })\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (\n nextProps.isExecute &&\n !this.props.isExecute &&\n this.props.example\n ) {\n this.setState({ activeTab: \"example\" })\n }\n }\n\n render() {\n let { getComponent, specSelectors, schema, example, isExecute, getConfigs, specPath, includeReadOnly, includeWriteOnly } = this.props\n let { defaultModelExpandDepth } = getConfigs()\n const ModelWrapper = getComponent(\"ModelWrapper\")\n const HighlightCode = getComponent(\"highlightCode\")\n const exampleTabId = randomBytes(5).toString(\"base64\")\n const examplePanelId = randomBytes(5).toString(\"base64\")\n const modelTabId = randomBytes(5).toString(\"base64\")\n const modelPanelId = randomBytes(5).toString(\"base64\")\n\n let isOAS3 = specSelectors.isOAS3()\n\n return (\n
\n
    \n
  • \n \n {isExecute ? \"Edit Value\" : \"Example Value\"}\n \n
  • \n { schema && (\n
  • \n \n {isOAS3 ? \"Schema\" : \"Model\" }\n \n
  • \n )}\n
\n {this.state.activeTab === \"example\" && (\n \n {example ? example : (\n \n )}\n
\n )}\n\n {this.state.activeTab === \"model\" && (\n \n \n \n )}\n \n )\n }\n\n}\n","import React, { Component, } from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nexport default class ModelWrapper extends Component {\n\n static propTypes = {\n schema: PropTypes.object.isRequired,\n name: PropTypes.string,\n displayName: PropTypes.string,\n fullPath: PropTypes.array.isRequired,\n specPath: ImPropTypes.list.isRequired,\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired,\n specSelectors: PropTypes.object.isRequired,\n expandDepth: PropTypes.number,\n layoutActions: PropTypes.object,\n layoutSelectors: PropTypes.object.isRequired,\n includeReadOnly: PropTypes.bool,\n includeWriteOnly: PropTypes.bool,\n }\n\n onToggle = (name,isShown) => {\n // If this prop is present, we'll have deepLinking for it\n if(this.props.layoutActions) {\n this.props.layoutActions.show(this.props.fullPath, isShown)\n }\n }\n\n render(){\n let { getComponent, getConfigs } = this.props\n const Model = getComponent(\"Model\")\n\n let expanded\n if(this.props.layoutSelectors) {\n // If this is prop is present, we'll have deepLinking for it\n expanded = this.props.layoutSelectors.isShown(this.props.fullPath)\n }\n\n return
\n \n
\n }\n}\n","import React, { Component } from \"react\"\nimport Im, { Map } from \"immutable\"\nimport PropTypes from \"prop-types\"\n\nexport default class Models extends Component {\n static propTypes = {\n getComponent: PropTypes.func,\n specSelectors: PropTypes.object,\n specActions: PropTypes.object.isRequired,\n layoutSelectors: PropTypes.object,\n layoutActions: PropTypes.object,\n getConfigs: PropTypes.func.isRequired\n }\n\n getSchemaBasePath = () => {\n const isOAS3 = this.props.specSelectors.isOAS3()\n return isOAS3 ? [\"components\", \"schemas\"] : [\"definitions\"]\n }\n\n getCollapsedContent = () => {\n return \" \"\n }\n\n handleToggle = (name, isExpanded) => {\n const { layoutActions } = this.props\n layoutActions.show([...this.getSchemaBasePath(), name], isExpanded)\n if(isExpanded) {\n this.props.specActions.requestResolvedSubtree([...this.getSchemaBasePath(), name])\n }\n }\n\n onLoadModels = (ref) => {\n if (ref) {\n this.props.layoutActions.readyToScroll(this.getSchemaBasePath(), ref)\n }\n }\n\n onLoadModel = (ref) => {\n if (ref) {\n const name = ref.getAttribute(\"data-name\")\n this.props.layoutActions.readyToScroll([...this.getSchemaBasePath(), name], ref)\n }\n }\n\n render(){\n let { specSelectors, getComponent, layoutSelectors, layoutActions, getConfigs } = this.props\n let definitions = specSelectors.definitions()\n let { docExpansion, defaultModelsExpandDepth } = getConfigs()\n if (!definitions.size || defaultModelsExpandDepth < 0) return null\n\n const specPathBase = this.getSchemaBasePath()\n let showModels = layoutSelectors.isShown(specPathBase, defaultModelsExpandDepth > 0 && docExpansion !== \"none\")\n const isOAS3 = specSelectors.isOAS3()\n\n const ModelWrapper = getComponent(\"ModelWrapper\")\n const Collapse = getComponent(\"Collapse\")\n const ModelCollapse = getComponent(\"ModelCollapse\")\n const JumpToPath = getComponent(\"JumpToPath\", true)\n\n return
\n

\n layoutActions.show(specPathBase, !showModels)}\n >\n {isOAS3 ? \"Schemas\" : \"Models\"}\n \n \n \n \n

\n \n {\n definitions.entrySeq().map(([name])=>{\n\n const fullPath = [...specPathBase, name]\n const specPath = Im.List(fullPath)\n\n const schemaValue = specSelectors.specResolvedSubtree(fullPath)\n const rawSchemaValue = specSelectors.specJson().getIn(fullPath)\n\n const schema = Map.isMap(schemaValue) ? schemaValue : Im.Map()\n const rawSchema = Map.isMap(rawSchemaValue) ? rawSchemaValue : Im.Map()\n\n const displayName = schema.get(\"title\") || rawSchema.get(\"title\") || name\n const isShown = layoutSelectors.isShown(fullPath, false)\n\n if( isShown && (schema.size === 0 && rawSchema.size > 0) ) {\n // Firing an action in a container render is not great,\n // but it works for now.\n this.props.specActions.requestResolvedSubtree(fullPath)\n }\n\n const content = \n\n const title = \n \n {displayName}\n \n \n\n return
\n \n 0 && isShown }\n >{content}\n
\n }).toArray()\n }\n
\n
\n }\n}\n","import React from \"react\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nconst EnumModel = ({ value, getComponent }) => {\n let ModelCollapse = getComponent(\"ModelCollapse\")\n let collapsedContent = Array [ { value.count() } ]\n return \n Enum:
\n \n [ { value.join(\", \") } ]\n \n
\n}\nEnumModel.propTypes = {\n value: ImPropTypes.iterable,\n getComponent: ImPropTypes.func\n}\n\nexport default EnumModel","import React, { Component, } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { List } from \"immutable\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nconst braceOpen = \"{\"\nconst braceClose = \"}\"\nconst propClass = \"property\"\n\nexport default class ObjectModel extends Component {\n static propTypes = {\n schema: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired,\n expanded: PropTypes.bool,\n onToggle: PropTypes.func,\n specSelectors: PropTypes.object.isRequired,\n name: PropTypes.string,\n displayName: PropTypes.string,\n isRef: PropTypes.bool,\n expandDepth: PropTypes.number,\n depth: PropTypes.number,\n specPath: ImPropTypes.list.isRequired,\n includeReadOnly: PropTypes.bool,\n includeWriteOnly: PropTypes.bool,\n }\n\n render(){\n let { schema, name, displayName, isRef, getComponent, getConfigs, depth, onToggle, expanded, specPath, ...otherProps } = this.props\n let { specSelectors,expandDepth, includeReadOnly, includeWriteOnly} = otherProps\n const { isOAS3 } = specSelectors\n\n if(!schema) {\n return null\n }\n\n const { showExtensions } = getConfigs()\n\n let description = schema.get(\"description\")\n let properties = schema.get(\"properties\")\n let additionalProperties = schema.get(\"additionalProperties\")\n let title = schema.get(\"title\") || displayName || name\n let requiredProperties = schema.get(\"required\")\n let infoProperties = schema\n .filter( ( v, key) => [\"maxProperties\", \"minProperties\", \"nullable\", \"example\"].indexOf(key) !== -1 )\n let deprecated = schema.get(\"deprecated\")\n\n const JumpToPath = getComponent(\"JumpToPath\", true)\n const Markdown = getComponent(\"Markdown\", true)\n const Model = getComponent(\"Model\")\n const ModelCollapse = getComponent(\"ModelCollapse\")\n const Property = getComponent(\"Property\")\n\n const JumpToPathSection = () => {\n return \n }\n const collapsedContent = (\n { braceOpen }...{ braceClose }\n {\n isRef ? : \"\"\n }\n )\n\n const anyOf = specSelectors.isOAS3() ? schema.get(\"anyOf\") : null\n const oneOf = specSelectors.isOAS3() ? schema.get(\"oneOf\") : null\n const not = specSelectors.isOAS3() ? schema.get(\"not\") : null\n\n const titleEl = title && \n { isRef && schema.get(\"$$ref\") && { schema.get(\"$$ref\") } }\n { title }\n \n\n return \n \n\n { braceOpen }\n {\n !isRef ? null : \n }\n \n {\n \n {\n !description ? null : \n \n \n \n }\n {\n !deprecated ? null :\n \n \n \n \n \n }\n {\n !(properties && properties.size) ? null : properties.entrySeq().filter(\n ([, value]) => {\n return (!value.get(\"readOnly\") || includeReadOnly) &&\n (!value.get(\"writeOnly\") || includeWriteOnly)\n }\n ).map(\n ([key, value]) => {\n let isDeprecated = isOAS3() && value.get(\"deprecated\")\n let isRequired = List.isList(requiredProperties) && requiredProperties.contains(key)\n\n let classNames = [\"property-row\"]\n\n if (isDeprecated) {\n classNames.push(\"deprecated\")\n }\n\n if (isRequired) {\n classNames.push(\"required\")\n }\n\n return (\n \n \n )\n }).toArray()\n }\n {\n // empty row befor extensions...\n !showExtensions ? null : \n }\n {\n !showExtensions ? null :\n schema.entrySeq().map(\n ([key, value]) => {\n if(key.slice(0,2) !== \"x-\") {\n return\n }\n\n const normalizedValue = !value ? null : value.toJS ? value.toJS() : value\n\n return (\n \n \n )\n }).toArray()\n }\n {\n !additionalProperties || !additionalProperties.size ? null\n : \n \n \n \n }\n {\n !anyOf ? null\n : \n \n \n \n }\n {\n !oneOf ? null\n : \n \n \n \n }\n {\n !not ? null\n : \n \n \n \n }\n
description:\n \n
\n deprecated:\n \n true\n
\n { key }{ isRequired && * }\n \n \n
 
\n { key }\n \n { JSON.stringify(normalizedValue) }\n
{ \"< * >:\" }\n \n
{ \"anyOf ->\" }\n {anyOf.map((schema, k) => {\n return
\n })}\n
{ \"oneOf ->\" }\n {oneOf.map((schema, k) => {\n return
\n })}\n
{ \"not ->\" }\n
\n \n
\n
\n }\n
\n { braceClose }\n \n {\n infoProperties.size ? infoProperties.entrySeq().map( ( [ key, v ] ) => ) : null\n }\n
\n }\n}\n","import React, { Component } from \"react\"\nimport PropTypes from \"prop-types\"\nimport ImPropTypes from \"react-immutable-proptypes\"\n\nconst propClass = \"property\"\n\nexport default class ArrayModel extends Component {\n static propTypes = {\n schema: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired,\n specSelectors: PropTypes.object.isRequired,\n name: PropTypes.string,\n displayName: PropTypes.string,\n required: PropTypes.bool,\n expandDepth: PropTypes.number,\n specPath: ImPropTypes.list.isRequired,\n depth: PropTypes.number,\n includeReadOnly: PropTypes.bool,\n includeWriteOnly: PropTypes.bool,\n }\n\n render(){\n let { getComponent, getConfigs, schema, depth, expandDepth, name, displayName, specPath } = this.props\n let description = schema.get(\"description\")\n let items = schema.get(\"items\")\n let title = schema.get(\"title\") || displayName || name\n let properties = schema.filter( ( v, key) => [\"type\", \"items\", \"description\", \"$$ref\"].indexOf(key) === -1 )\n\n const Markdown = getComponent(\"Markdown\", true)\n const ModelCollapse = getComponent(\"ModelCollapse\")\n const Model = getComponent(\"Model\")\n const Property = getComponent(\"Property\")\n\n const titleEl = title &&\n \n { title }\n \n\n /*\n Note: we set `name={null}` in below because we don't want\n the name of the current Model passed (and displayed) as the name of the array element Model\n */\n\n return \n \n [\n {\n properties.size ? properties.entrySeq().map( ( [ key, v ] ) => ) : null\n }\n {\n !description ? (properties.size ?
: null) :\n \n }\n \n \n \n ]\n
\n
\n }\n}\n","import React, { Component } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { getExtensions } from \"core/utils\"\n\nconst propClass = \"property primitive\"\n\nexport default class Primitive extends Component {\n static propTypes = {\n schema: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired,\n getConfigs: PropTypes.func.isRequired,\n name: PropTypes.string,\n displayName: PropTypes.string,\n depth: PropTypes.number,\n expandDepth: PropTypes.number\n }\n\n render(){\n let { schema, getComponent, getConfigs, name, displayName, depth, expandDepth } = this.props\n\n const { showExtensions } = getConfigs()\n\n if(!schema || !schema.get) {\n // don't render if schema isn't correctly formed\n return
\n }\n\n let type = schema.get(\"type\")\n let format = schema.get(\"format\")\n let xml = schema.get(\"xml\")\n let enumArray = schema.get(\"enum\")\n let title = schema.get(\"title\") || displayName || name\n let description = schema.get(\"description\")\n let extensions = getExtensions(schema)\n let properties = schema\n .filter( ( v, key) => [\"enum\", \"type\", \"format\", \"description\", \"$$ref\"].indexOf(key) === -1 )\n .filterNot( (v, key) => extensions.has(key) )\n const Markdown = getComponent(\"Markdown\", true)\n const EnumModel = getComponent(\"EnumModel\")\n const Property = getComponent(\"Property\")\n const ModelCollapse = getComponent(\"ModelCollapse\")\n const titleEl = title &&\n \n { title }\n \n\n return \n = expandDepth} collapsedContent=\" \" hideSelfOnExpand={expandDepth !== depth}>\n \n {name && depth > 1 && { title } }\n { type }\n { format && (${format})}\n {\n properties.size ? properties.entrySeq().map( ( [ key, v ] ) => ) : null\n }\n {\n showExtensions && extensions.size ? extensions.entrySeq().map( ( [ key, v ] ) => ) : null\n }\n {\n !description ? null :\n \n }\n {\n xml && xml.size ? (
xml:\n {\n xml.entrySeq().map( ( [ key, v ] ) =>
   {key}: { String(v) }
).toArray()\n }\n
): null\n }\n {\n enumArray && \n }\n
\n
\n
\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport const Property = ({ propKey, propVal, propClass }) => {\n return (\n \n
{ propKey }: { String(propVal) }
\n )\n}\nProperty.propTypes = {\n propKey: PropTypes.string,\n propVal: PropTypes.any,\n propClass: PropTypes.string\n}\n\nexport default Property\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class TryItOutButton extends React.Component {\n\n static propTypes = {\n onTryoutClick: PropTypes.func,\n onResetClick: PropTypes.func,\n onCancelClick: PropTypes.func,\n enabled: PropTypes.bool, // Try it out is enabled, ie: the user has access to the form\n hasUserEditedBody: PropTypes.bool, // Try it out is enabled, ie: the user has access to the form\n isOAS3: PropTypes.bool, // Try it out is enabled, ie: the user has access to the form\n };\n\n static defaultProps = {\n onTryoutClick: Function.prototype,\n onCancelClick: Function.prototype,\n onResetClick: Function.prototype,\n enabled: false,\n hasUserEditedBody: false,\n isOAS3: false,\n };\n\n render() {\n const { onTryoutClick, onCancelClick, onResetClick, enabled, hasUserEditedBody, isOAS3 } = this.props\n\n const showReset = isOAS3 && hasUserEditedBody\n return (\n
\n {\n enabled ? \n : \n\n }\n {\n showReset && \n }\n
\n )\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class VersionPragmaFilter extends React.PureComponent {\n static propTypes = {\n isSwagger2: PropTypes.bool.isRequired,\n isOAS3: PropTypes.bool.isRequired,\n bypass: PropTypes.bool,\n alsoShow: PropTypes.element,\n children: PropTypes.any,\n }\n\n static defaultProps = {\n alsoShow: null,\n children: null,\n bypass: false,\n }\n\n render() {\n const { bypass, isSwagger2, isOAS3, alsoShow } = this.props\n\n if(bypass) {\n return
{ this.props.children }
\n }\n\n if(isSwagger2 && isOAS3) {\n return
\n {alsoShow}\n
\n
\n

Unable to render this definition

\n

swagger and openapi fields cannot be present in the same Swagger or OpenAPI definition. Please remove one of the fields.

\n

Supported version fields are swagger: {\"\\\"2.0\\\"\"} and those that match openapi: 3.0.n (for example, openapi: 3.0.0).

\n
\n
\n
\n }\n\n if(!isSwagger2 && !isOAS3) {\n return
\n {alsoShow}\n
\n
\n

Unable to render this definition

\n

The provided definition does not specify a valid version field.

\n

Please indicate a valid Swagger or OpenAPI version field. Supported version fields are swagger: {\"\\\"2.0\\\"\"} and those that match openapi: 3.0.n (for example, openapi: 3.0.0).

\n
\n
\n
\n }\n\n return
{ this.props.children }
\n }\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nconst VersionStamp = ({ version }) => {\n return
 { version } 
\n}\n\nVersionStamp.propTypes = {\n version: PropTypes.string.isRequired\n}\n\nexport default VersionStamp\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport const DeepLink = ({ enabled, path, text }) => {\n return (\n e.preventDefault() : null}\n href={enabled ? `#/${path}` : null}>\n {text}\n \n )\n}\nDeepLink.propTypes = {\n enabled: PropTypes.bool,\n isShown: PropTypes.bool,\n path: PropTypes.string,\n text: PropTypes.node\n}\n\nexport default DeepLink\n","import React from \"react\"\nconst SvgAssets = () =>\n
\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n
\n\nexport default SvgAssets\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class BaseLayout extends React.Component {\n\n static propTypes = {\n errSelectors: PropTypes.object.isRequired,\n errActions: PropTypes.object.isRequired,\n specSelectors: PropTypes.object.isRequired,\n oas3Selectors: PropTypes.object.isRequired,\n oas3Actions: PropTypes.object.isRequired,\n getComponent: PropTypes.func.isRequired\n }\n\n render() {\n let {errSelectors, specSelectors, getComponent} = this.props\n\n let SvgAssets = getComponent(\"SvgAssets\")\n let InfoContainer = getComponent(\"InfoContainer\", true)\n let VersionPragmaFilter = getComponent(\"VersionPragmaFilter\")\n let Operations = getComponent(\"operations\", true)\n let Models = getComponent(\"Models\", true)\n let Row = getComponent(\"Row\")\n let Col = getComponent(\"Col\")\n let Errors = getComponent(\"errors\", true)\n\n const ServersContainer = getComponent(\"ServersContainer\", true)\n const SchemesContainer = getComponent(\"SchemesContainer\", true)\n const AuthorizeBtnContainer = getComponent(\"AuthorizeBtnContainer\", true)\n const FilterContainer = getComponent(\"FilterContainer\", true)\n let isSwagger2 = specSelectors.isSwagger2()\n let isOAS3 = specSelectors.isOAS3()\n\n const isSpecEmpty = !specSelectors.specStr()\n\n const loadingStatus = specSelectors.loadingStatus()\n\n let loadingMessage = null\n\n if(loadingStatus === \"loading\") {\n loadingMessage =
\n
\n
\n
\n
\n }\n\n if(loadingStatus === \"failed\") {\n loadingMessage =
\n
\n

Failed to load API definition.

\n \n
\n
\n }\n\n if (loadingStatus === \"failedConfig\") {\n const lastErr = errSelectors.lastError()\n const lastErrMsg = lastErr ? lastErr.get(\"message\") : \"\"\n loadingMessage =
\n
\n

Failed to load remote configuration.

\n

{lastErrMsg}

\n
\n
\n }\n\n if(!loadingMessage && isSpecEmpty) {\n loadingMessage =

No API definition provided.

\n }\n\n if(loadingMessage) {\n return
\n
\n {loadingMessage}\n
\n
\n }\n\n const servers = specSelectors.servers()\n const schemes = specSelectors.schemes()\n\n const hasServers = servers && servers.size\n const hasSchemes = schemes && schemes.size\n const hasSecurityDefinitions = !!specSelectors.securityDefinitions()\n\n return (\n
\n \n }>\n \n \n \n \n \n \n\n {hasServers || hasSchemes || hasSecurityDefinitions ? (\n
\n \n {hasServers ? () : null}\n {hasSchemes ? () : null}\n {hasSecurityDefinitions ? () : null}\n \n
\n ) : null}\n\n \n\n \n \n \n \n \n \n \n \n \n \n
\n
\n )\n }\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_debounce_input_7ed3e068__[\"default\"] });","import React, { PureComponent, Component } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { List, fromJS } from \"immutable\"\nimport cx from \"classnames\"\nimport ImPropTypes from \"react-immutable-proptypes\"\nimport DebounceInput from \"react-debounce-input\"\nimport { stringify, getSampleSchema } from \"core/utils\"\n//import \"less/json-schema-form\"\n\nconst noop = ()=> {}\nconst JsonSchemaPropShape = {\n getComponent: PropTypes.func.isRequired,\n value: PropTypes.any,\n onChange: PropTypes.func,\n keyName: PropTypes.any,\n fn: PropTypes.object.isRequired,\n schema: PropTypes.object,\n errors: ImPropTypes.list,\n required: PropTypes.bool,\n dispatchInitialValue: PropTypes.bool,\n description: PropTypes.any,\n disabled: PropTypes.bool,\n}\n\nconst JsonSchemaDefaultProps = {\n value: \"\",\n onChange: noop,\n schema: {},\n keyName: \"\",\n required: false,\n errors: List()\n}\n\nexport class JsonSchemaForm extends Component {\n\n static propTypes = JsonSchemaPropShape\n static defaultProps = JsonSchemaDefaultProps\n\n componentDidMount() {\n const { dispatchInitialValue, value, onChange } = this.props\n if(dispatchInitialValue) {\n onChange(value)\n } else if(dispatchInitialValue === false) {\n onChange(\"\")\n }\n }\n\n render() {\n let { schema, errors, value, onChange, getComponent, fn, disabled } = this.props\n const format = schema && schema.get ? schema.get(\"format\") : null\n const type = schema && schema.get ? schema.get(\"type\") : null\n\n let getComponentSilently = (name) => getComponent(name, false, { failSilently: true })\n let Comp = type ? format ?\n getComponentSilently(`JsonSchema_${type}_${format}`) :\n getComponentSilently(`JsonSchema_${type}`) :\n getComponent(\"JsonSchema_string\")\n if (!Comp) {\n Comp = getComponent(\"JsonSchema_string\")\n }\n return \n }\n}\n\nexport class JsonSchema_string extends Component {\n static propTypes = JsonSchemaPropShape\n static defaultProps = JsonSchemaDefaultProps\n onChange = (e) => {\n const value = this.props.schema && this.props.schema.get(\"type\") === \"file\" ? e.target.files[0] : e.target.value\n this.props.onChange(value, this.props.keyName)\n }\n onEnumChange = (val) => this.props.onChange(val)\n render() {\n let { getComponent, value, schema, errors, required, description, disabled } = this.props\n const enumValue = schema && schema.get ? schema.get(\"enum\") : null\n const format = schema && schema.get ? schema.get(\"format\") : null\n const type = schema && schema.get ? schema.get(\"type\") : null\n const schemaIn = schema && schema.get ? schema.get(\"in\") : null\n if (!value) {\n value = \"\" // value should not be null; this fixes a Debounce error\n }\n errors = errors.toJS ? errors.toJS() : []\n\n if ( enumValue ) {\n const Select = getComponent(\"Select\")\n return (\n )\n }\n else {\n return (\n \n )\n }\n }\n}\n\nexport class JsonSchema_array extends PureComponent {\n\n static propTypes = JsonSchemaPropShape\n static defaultProps = JsonSchemaDefaultProps\n\n constructor(props, context) {\n super(props, context)\n this.state = { value: valueOrEmptyList(props.value), schema: props.schema}\n }\n\n UNSAFE_componentWillReceiveProps(props) {\n const value = valueOrEmptyList(props.value)\n if(value !== this.state.value)\n this.setState({ value })\n\n if(props.schema !== this.state.schema)\n this.setState({ schema: props.schema })\n }\n\n onChange = () => {\n this.props.onChange(this.state.value)\n }\n\n onItemChange = (itemVal, i) => {\n this.setState(({ value }) => ({\n value: value.set(i, itemVal)\n }), this.onChange)\n }\n\n removeItem = (i) => {\n this.setState(({ value }) => ({\n value: value.delete(i)\n }), this.onChange)\n }\n\n addItem = () => {\n let newValue = valueOrEmptyList(this.state.value)\n this.setState(() => ({\n value: newValue.push(getSampleSchema(this.state.schema.get(\"items\"), false, {\n includeWriteOnly: true\n }))\n }), this.onChange)\n }\n\n onEnumChange = (value) => {\n this.setState(() => ({\n value: value\n }), this.onChange)\n }\n\n render() {\n let { getComponent, required, schema, errors, fn, disabled } = this.props\n\n errors = errors.toJS ? errors.toJS() : Array.isArray(errors) ? errors : []\n const arrayErrors = errors.filter(e => typeof e === \"string\")\n const needsRemoveError = errors.filter(e => e.needRemove !== undefined)\n .map(e => e.error)\n const value = this.state.value // expect Im List\n const shouldRenderValue =\n value && value.count && value.count() > 0 ? true : false\n const schemaItemsEnum = schema.getIn([\"items\", \"enum\"])\n const schemaItemsType = schema.getIn([\"items\", \"type\"])\n const schemaItemsFormat = schema.getIn([\"items\", \"format\"])\n const schemaItemsSchema = schema.get(\"items\")\n let ArrayItemsComponent\n let isArrayItemText = false\n let isArrayItemFile = (schemaItemsType === \"file\" || (schemaItemsType === \"string\" && schemaItemsFormat === \"binary\")) ? true : false\n if (schemaItemsType && schemaItemsFormat) {\n ArrayItemsComponent = getComponent(`JsonSchema_${schemaItemsType}_${schemaItemsFormat}`)\n } else if (schemaItemsType === \"boolean\" || schemaItemsType === \"array\" || schemaItemsType === \"object\") {\n ArrayItemsComponent = getComponent(`JsonSchema_${schemaItemsType}`)\n }\n // if ArrayItemsComponent not assigned or does not exist,\n // use default schemaItemsType === \"string\" & JsonSchemaArrayItemText component\n if (!ArrayItemsComponent && !isArrayItemFile) {\n isArrayItemText = true\n }\n\n if ( schemaItemsEnum ) {\n const Select = getComponent(\"Select\")\n return ()\n }\n}\n\nexport class JsonSchema_boolean extends Component {\n static propTypes = JsonSchemaPropShape\n static defaultProps = JsonSchemaDefaultProps\n\n onEnumChange = (val) => this.props.onChange(val)\n render() {\n let { getComponent, value, errors, schema, required, disabled } = this.props\n errors = errors.toJS ? errors.toJS() : []\n let enumValue = schema && schema.get ? schema.get(\"enum\") : null\n let allowEmptyValue = !enumValue || !required\n let booleanValue = !enumValue && fromJS([\"true\", \"false\"])\n const Select = getComponent(\"Select\")\n\n return (