From 7791696db674b1912f0a7eead889730840755cd6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 10:03:26 +0200 Subject: [PATCH 1/7] Update tendermint-proto requirement from 0.32 to 0.33 (#117) Updates the requirements on [tendermint-proto](https://github.com/informalsystems/tendermint-rs) to permit the latest version. - [Release notes](https://github.com/informalsystems/tendermint-rs/releases) - [Changelog](https://github.com/informalsystems/tendermint-rs/blob/main/CHANGELOG.md) - [Commits](https://github.com/informalsystems/tendermint-rs/compare/v0.32.0...v0.33.0) --- updated-dependencies: - dependency-name: tendermint-proto dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 2c4c9fec..52dfdc2c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,7 +50,7 @@ version = "0.10.1" default-features = false [dependencies.tendermint-proto] -version = "0.32" +version = "0.33" default-features = false [features] From 95fe344fd0219a0336a6c34e65e57a9e405dc94e Mon Sep 17 00:00:00 2001 From: Romain Ruetschi Date: Wed, 16 Aug 2023 19:24:06 +0200 Subject: [PATCH 2/7] Add release job (#127) For every tag that is pushed which matches `vX.Y.Z[-suffix]`, the job will create a corresponding GitHub release and publish the crate to crates.io --- .github/workflows/release.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..e195ebc0 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,31 @@ +# Attempts to perform a release when a particular tag is pushed. +# This assumes that the CRATES_TOKEN secret has been set and contains +# a crates.io API token with which we can publish our crates to crates.io. +name: Release + +on: + push: + tags: + - "v[0-9]+.[0-9]+.[0-9]+" # e.g. v0.26.0, v1.0.0 + - "v[0-9]+.[0-9]+.[0-9]+-pre.[0-9]+" # e.g. v0.26.0-pre.1 + +jobs: + create-release: + runs-on: ubuntu-latest + steps: + - uses: taiki-e/create-gh-release-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + publish: + name: Publish to crates.io + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + - name: Publish crate + run: | + cargo publish --token ${{ secrets.CRATES_TOKEN }} From cd54052465cd34b7f424391fcaaa05554f2a461c Mon Sep 17 00:00:00 2001 From: Erwan Date: Wed, 16 Aug 2023 16:25:07 -0400 Subject: [PATCH 3/7] cargo: prepare release `0.33` (#126) * cargo: bump to `0.33.0` * changelog: run `unclog build` * docs(CONTRIBUTING): add simple doc * Expand contributing guidelines * changelog: undo all changes * changelog: add `v0.33.0` summary * changelog: include `v0.33.0` --------- Co-authored-by: Romain Ruetschi <106849+romac@users.noreply.github.com> --- .changelog/v0.33.0/summary.md | 3 + CHANGELOG.md | 6 + CONTRIBUTING.md | 261 ++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- 4 files changed, 271 insertions(+), 1 deletion(-) create mode 100644 .changelog/v0.33.0/summary.md create mode 100644 CONTRIBUTING.md diff --git a/.changelog/v0.33.0/summary.md b/.changelog/v0.33.0/summary.md new file mode 100644 index 00000000..97e06dab --- /dev/null +++ b/.changelog/v0.33.0/summary.md @@ -0,0 +1,3 @@ +*Aug 14th, 2023* + +This release bumps `tendermint-rs` to `0.33.0`. diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d0d7df2..c2ab69ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG +## v0.33.0 + +*Aug 14th, 2023* + +This release bumps `tendermint-rs` to `0.33.0`. + ## v0.32.1 *July 31st, 2023* diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..62742cc7 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,261 @@ +# Contribution guidelines + +Thank you for your interest in contributing to the `ibc-proto-rs` project! +The goal of this project is maintain all the data structures relevant for interacting with on-chain IBC data. + +All work on the code base should be motivated by a GitHub issue. +Before opening a new issue, first do a search of open and closed issues to make sure that yours will not be a duplicate. +If you would like to work on an issue which already exists, please indicate so by leaving a comment on the issue. +If what you'd like to work on hasn't already been covered by an issue, then open a new one to get the process going. + +The rest of this document outlines the best practices for contributing to this repository: + +- [Decision Making](#decision-making) - process for agreeing to changes +- [Issues](#issues) - what makes a good issue +- [Pull Requests](#pull-requests) - what makes a good pull request +- [Forking](#forking) - fork the repo to make pull requests +- [Changelog](#changelog) - changes must be recorded in the changelog +- [Releases](#releases) - how to release new version of the crates + +## Decision Making + +When contributing to the project, the following process leads to the best chance of landing the changes in `main`. + +All new contributions should start with a GitHub issue which captures the +problem you're trying to solve. Starting off with an issue allows for early feedback. + +When the problem and the proposed solution are well understood, +changes should start with a [draft pull request](https://github.blog/2019-02-14-introducing-draft-pull-requests/) +against the branch `main`. The draft status signals that work is underway. +When the work is ready for feedback, hitting "Ready for Review" will signal to the maintainers to take a look. + +Implementation trajectories should aim to proceed where possible as a series +of smaller incremental changes, in the form of small PRs that can be merged +quickly. This helps manage the load for reviewers and reduces the likelihood +that PRs will sit open for long periods of time. + +## Issues + +We welcome bug reports, feature requests, and other contributions to our project. +To open an issue, please follow these guidelines: + +1. **Search existing issues**: Before opening a new issue, please search existing issues to ensure that is not a duplicates. + +2. **Provide a clear and descriptive title**: This helps others understand the nature of the issue at a glance. + +3. **Provide detailed information**: In the issue description, clearly state the **purpose** of the issue + include as much information as possible, such as: + - Steps to reproduce the issue + - Expected behavior + - Actual behavior + - The version of the operating system and the software you are using + - Error messages or logs (if applicable) + +This assist us prioritize and categorize your issue more effectively and help +others and reviewers understand the type and severity of the issue. +If the issue you worked on was tagged `A: low-priority`, we'll do our best to +review it in a timely manner, but please expect longer wait times for a review +in general. If a low priority issue is important to you, please leave a comment +explaining why, and we will reprioritize it! + +## Pull Requests + +If you have write access to the ibc-proto-rs repo, you can directly branch off of `main`. +This makes it easier for project maintainers to directly make changes to your +branch should the need arise. Otherwise, check the [Forking](#forking) section for instructions. + +Branch names should be prefixed with the author's name followed by a short description of the feature, eg. `name/feature-x`. + +Pull requests are made against `main` and are squash-merged into it. Each PR should: +- make reference to an issue outlining the context +- update any relevant documentation and include tests +- add a corresponding entry in the `.changelog` directory using `unclog`, + see the [Changelog](#changelog) section for more details. + +Additionally, in order to make PRs as easy to review as possible, each PR should: +- Be focused on implementing _*one*_ piece of logic from end-to-end. + It must be very clear what the purpose of the PR is from looking at the PR's title, + description, and/or linked issue(s). + It should also be very clear what value the changes incorporated in the PR aim to deliver. + A single PR that does multiple things, without a clear articulation of the problem it attempts to solve, will very likely be rejected. +- Be small, ideally no more than 500 lines of code changes. + While this is a guideline and not a hard rule, in general, larger changes should being + structured as a series of PRs, each building off of the previous ones; + these PRs should also be tracked in a tracking issue. + If a single PR absolutely has to be larger, it _must_ be structured such that + it can be reviewed commit-by-commit, with each commit doing a single logical thing, + accompanied with a good description of what it aims to achieve in the git commit message. + Poorly structured PRs will likely be rejected on the grounds of being too much of + a burden for the core maintainers to review; you will be asked to restructure the + PR in accordance with the guidelines laid out here. + This does not necessarily apply to documentation-related changes or + automatically generated code (e.g. generated from Protobuf definitions). + But automatically generated code changes should occur within separate commits, + so they are easily distinguishable from manual code changes. + +In order to help facilitate the PR review process, tag *one* person as the +reviewer of the PR. If you are unsure of who to tag, your point of contact on +the ibc-proto-rs team is always a natural candidate; they'll make sure that the PR gets +reviewed by whomever is most appropriate to review it. It also helps to notify +the person whom you tagged as reviewer through direct means, such as through +Slack or Discord, as it is easy for GitHub notifications to get lost or buried. + +## Responsibilities of a PR Reviewer + +If you're tagged as the reviewer of a PR, you are responsible for shepherding it +through to completion. This includes fixing issues with the PR and taking the +lead on decisions that need to be resolved in order to get the PR merged. + +If you're tagged as a reviewer on a PR that affects a part of the code base that +you are unfamiliar with, you can hand it off to someone (with their consent) +who is more appropriate to shepherd the PR through to completion. + +## Forking + +If you do not have write access to the repository, your contribution should be +made through a fork on GitHub. Fork the repository, contribute to your fork +(either in the `main` branch of the fork or in a separate branch), and then +make a pull request back upstream. + +When forking, add your fork's URL as a new git remote in your local copy of the +repo. For instance, to create a fork and work on a branch of it: +- Create the fork on GitHub, using the fork button. +- `cd` to the original clone of the repo on your machine +- `git remote rename origin upstream` +- `git remote add origin git@github.com:` + +Now `origin` refers to your fork and `upstream` refers to the original version. +Now `git push -u origin main` to update the fork, and make pull requests +against the original repo. + +To pull in updates from the origin repo, run `git fetch upstream` followed by +`git rebase upstream/main` (or whatever branch you're working in). + +## Changelog + +Every non-trivial PR must update the [CHANGELOG](CHANGELOG.md). This is +accomplished indirectly by adding entries to the `.changelog` folder in +[`unclog`](https://github.com/informalsystems/unclog) format using the `unclog` CLI tool. +`CHANGELOG.md` will be built by whomever is responsible for performing a release just +prior to release - this is to avoid changelog conflicts prior to releases. + +### Install `unclog` + +```bash +cargo install unclog +``` + +### Examples + +Add a `.changelog` entry to signal that a bug was fixed, without mentioning any component. + +```bash +unclog add -i update-unclog-instructions -s bug -n 1634 -m "Update CONTRIBUTING.md for latest version of unclog" --editor vim +``` + +Add a .changelog entry under the `FEATURES` section in CHANGELOG.md. + +```bash +unclog add -s features --id a-new-feature --issue-no 1235 -m "msg about this new-feature" --editor vim +``` + +### Preview unreleased changes + +```bash +unclog build -u +``` + +The Changelog is *not* a record of what Pull Requests were merged; +the commit history already shows that. The Changelog is a notice to users +about how their expectations of the software should be modified. +It is part of the UX of a release and is a *critical* user facing integration point. +The Changelog must be clean, inviting, and readable, with concise, meaningful entries. +Entries must be semantically meaningful to users. If a change takes multiple +Pull Requests to complete, it should likely have only a single entry in the +Changelog describing the net effect to the user. Instead of linking PRs directly, we +instead prefer to log issues, which tend to be higher-level, hence more relevant for users. + +When writing Changelog entries, ensure they are targeting users of the software, +not fellow developers. Developers have much more context and care about more +things than users do. Changelogs are for users. + +Changelog structure is modeled after +[Tendermint Core](https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md) +and [Hashicorp Consul](http://github.com/hashicorp/consul/tree/master/CHANGELOG.md). +See those changelogs for examples. + +We currently split changes for a given release between these four sections: +Breaking Changes, Features, Improvements, and Bug Fixes. + +Entries in the changelog should initially be logged in the __Unreleased__ section, which +represents a "staging area" for accumulating all the changes throughout a +release (see [Pull Requests](#pull-requests) below). With each release, +the entries then move from this section into their permanent place under a +specific release number in Changelog. + +Changelog entries should be formatted as follows: + +```md +- Some description about the change ([#xxx](https://github.com/cosmos/ibc-proto-rs/issues/xxx)) (optional @contributor) +``` + +Here `xxx` is the issue number, and `contributor` is the author/s of the change. + +It's also acceptable for `xxx` to refer to the relevant pull request, but issue numbers are preferred. +Note this means issues (or pull-requests) should be opened first so the changelog can then +be updated with the corresponding number. + +Changelog entries should be ordered alphabetically numerically according to their issue/PR number. + +Changes with multiple classifications should be doubly included (eg. a bug fix +that is also a breaking change should be recorded under both). + +Breaking changes are further subdivided according to the APIs/users they impact. +Any change that effects multiple APIs/users should be recorded multiply - for +instance, a change to some core protocol data structure might need to be +reflected both as breaking the core protocol but also breaking any APIs where core data structures are +exposed. + +## Releases + +Our release process is as follows: + +1. Update the [changelog](#changelog) to reflect and summarize all changes in + the release. This involves: + 1. Running `unclog build -u` and copy pasting the output at the top + of the `CHANGELOG.md` file, making sure to update the header with + the new version. + 1. Running `unclog release vX.Y.Z` to create a summary of all of the changes + in this release. + 3. Committing the updated `CHANGELOG.md` file and `.changelog` directory to the repo. +2. Push this to a branch `release/vX.Y.Z` according to the version number of + the anticipated release (e.g. `release/v0.18.0`) and open a **draft PR**. +3. Bump all relevant versions in the codebase to the new version and push these + changes to the release PR. This includes: + 1. All `Cargo.toml` files (making sure dependencies' versions are updated too). + 2. All crates' `lib.rs` files documentation references' `html_root_url` + parameters must point to the new version. +4. Run `cargo doc --all-features --open` locally to double-check that all the + documentation compiles and is up-to-date and coherent. Fix any potential + issues here and push them to the release PR. +5. Mark the PR as **Ready for Review** and incorporate feedback on the release. +6. Once approved, merge the PR. +7. Checkout the `main` and pull it with `git checkout main && git pull origin main`. + Then create a signed tag and push it to GitHub: `git tag -s -a vX.Y.Z && git push origin vX.Y.Z` + In the tag message, write the version and the link to the corresponding section of the changelog. +9. If any problem arises, submit a new PR, get it merged to `main` and try again. + The reason for not releasing straight from the release branch, and therefore losing the + ability to fix publishing-related problems as they arise, is that we would like the embedded + metadata of the published crates, namely the Git commit at which the release was done, + to match the Git commit on the `main` branch which will be tagged. + [See this article][crates.io-security] for a more in-depth explanation. + **Note:** This step requires the appropriate privileges to push crates to [crates.io]. +10. Once the tag is pushed, wait for the CI bot to create a GitHub release, + then update the release description to + ``` + [📖 CHANGELOG](https://github.com/cosmos/ibc-proto-rs/blob/master/CHANGELOG.md#vXYZ)` + ``` +11. All done! 🎉 + +[crates.io]: https://crates.io +[crates.io-security]: https://codeandbitters.com/published-crate-analysis/ diff --git a/Cargo.toml b/Cargo.toml index 52dfdc2c..c59ca0f1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ibc-proto" -version = "0.32.1" +version = "0.33.0" authors = ["Informal Systems "] edition = "2021" license = "Apache-2.0" From 7b7facbfb45dbed5144b9a8ac719a0cc8f8c98c3 Mon Sep 17 00:00:00 2001 From: Romain Ruetschi Date: Thu, 17 Aug 2023 09:41:00 +0200 Subject: [PATCH 4/7] Cleanup release CI job (#128) --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e195ebc0..cfbe4f93 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,8 +11,10 @@ on: jobs: create-release: + name: Create GitHub release runs-on: ubuntu-latest steps: + - uses: actions/checkout@v3 - uses: taiki-e/create-gh-release-action@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 80c9c28eff58a25ce566ef0c5575007b528ec692 Mon Sep 17 00:00:00 2001 From: Farhad Shabani Date: Thu, 17 Aug 2023 02:48:32 -0700 Subject: [PATCH 5/7] fix: restore `no_std` support for JSON serialization (#118) * fix: restore no_std support for JSON serialization * imp: put serde under feature flag * nit: remove unnecessary dep features * fix: rebuild b/c of changes in v0.32.1 * deps: upgrade ics23 version to 0.10.2 * Add changelog entry --------- Co-authored-by: Romain Ruetschi <106849+romac@users.noreply.github.com> --- .../bug-fixes/98-restore-no-std-support.md | 2 + Cargo.toml | 7 +- src/lib.rs | 2 +- src/prost/cosmos.auth.v1beta1.rs | 44 +++---- src/prost/cosmos.bank.v1beta1.rs | 66 +++++----- src/prost/cosmos.base.query.v1beta1.rs | 4 +- src/prost/cosmos.base.v1beta1.rs | 8 +- src/prost/cosmos.upgrade.v1beta1.rs | 36 +++--- src/prost/google.protobuf.rs | 6 +- ...tions.interchain_accounts.controller.v1.rs | 18 +-- ...ications.interchain_accounts.genesis.v1.rs | 10 +- ...pplications.interchain_accounts.host.v1.rs | 6 +- ...ibc.applications.interchain_accounts.v1.rs | 10 +- src/prost/ibc.applications.transfer.v1.rs | 36 +++--- src/prost/ibc.applications.transfer.v2.rs | 4 +- src/prost/ibc.core.channel.v1.rs | 122 +++++++++--------- src/prost/ibc.core.client.v1.rs | 78 +++++------ src/prost/ibc.core.commitment.v1.rs | 26 ++-- src/prost/ibc.core.connection.v1.rs | 64 ++++----- src/prost/ibc.core.types.v1.rs | 2 +- tools/proto-compiler/src/cmd/compile.rs | 20 +-- 21 files changed, 286 insertions(+), 285 deletions(-) create mode 100644 .changelog/unreleased/bug-fixes/98-restore-no-std-support.md diff --git a/.changelog/unreleased/bug-fixes/98-restore-no-std-support.md b/.changelog/unreleased/bug-fixes/98-restore-no-std-support.md new file mode 100644 index 00000000..3c3a79b1 --- /dev/null +++ b/.changelog/unreleased/bug-fixes/98-restore-no-std-support.md @@ -0,0 +1,2 @@ +- Restore `no_std` support for JSON serialization + ([\#98](https://github.com/cosmos/ibc-proto-rs/issues/98)) \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index c59ca0f1..c1746b47 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,9 +45,7 @@ scale-info = { version = "2.1.2", default-features = false, features = [ ## need tracking anchor-lang and near-sdk-rs borsh version borsh = { version = "0.9", default-features = false, optional = true } -[dependencies.ics23] -version = "0.10.1" -default-features = false +ics23 = { version = "0.10.2" , default-features = false } [dependencies.tendermint-proto] version = "0.33" @@ -55,7 +53,8 @@ default-features = false [features] default = ["std", "client"] -std = ["prost/std", "bytes/std", "subtle-encoding/std", "base64/std", "flex-error/std", "ics23/std", "ics23/serde"] +std = ["prost/std", "bytes/std", "subtle-encoding/std", "base64/std", "flex-error/std", "ics23/std"] +serde = ["ics23/serde"] client = ["std", "tonic", "tonic/codegen", "tonic/transport", "tonic/prost"] json-schema = ["std", "schemars"] server = ["std", "tonic", "tonic/codegen", "tonic/transport", "tonic/prost"] diff --git a/src/lib.rs b/src/lib.rs index aa3750df..10222773 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -254,7 +254,7 @@ pub mod stride { } } -#[cfg(feature = "std")] +#[cfg(feature = "serde")] pub(crate) mod base64 { use alloc::string::String; use alloc::vec::Vec; diff --git a/src/prost/cosmos.auth.v1beta1.rs b/src/prost/cosmos.auth.v1beta1.rs index 752cd26f..c5868704 100644 --- a/src/prost/cosmos.auth.v1beta1.rs +++ b/src/prost/cosmos.auth.v1beta1.rs @@ -1,7 +1,7 @@ /// 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). -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BaseAccount { @@ -15,7 +15,7 @@ pub struct BaseAccount { pub sequence: u64, } /// ModuleAccount defines an account for modules that holds coins on a pool. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ModuleAccount { @@ -27,7 +27,7 @@ pub struct ModuleAccount { pub permissions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } /// Params defines the parameters for the auth module. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { @@ -45,7 +45,7 @@ pub struct Params { /// QueryAccountsRequest is the request type for the Query/Accounts RPC method. /// /// Since: cosmos-sdk 0.43 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAccountsRequest { @@ -58,7 +58,7 @@ pub struct QueryAccountsRequest { /// QueryAccountsResponse is the response type for the Query/Accounts RPC method. /// /// Since: cosmos-sdk 0.43 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAccountsResponse { @@ -72,7 +72,7 @@ pub struct QueryAccountsResponse { >, } /// QueryAccountRequest is the request type for the Query/Account RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAccountRequest { @@ -81,7 +81,7 @@ pub struct QueryAccountRequest { pub address: ::prost::alloc::string::String, } /// QueryAccountResponse is the response type for the Query/Account RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAccountResponse { @@ -90,12 +90,12 @@ pub struct QueryAccountResponse { pub account: ::core::option::Option, } /// QueryParamsRequest is the request type for the Query/Params RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsRequest {} /// QueryParamsResponse is the response type for the Query/Params RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { @@ -106,14 +106,14 @@ pub struct QueryParamsResponse { /// QueryModuleAccountsRequest is the request type for the Query/ModuleAccounts RPC method. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryModuleAccountsRequest {} /// QueryModuleAccountsResponse is the response type for the Query/ModuleAccounts RPC method. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryModuleAccountsResponse { @@ -121,7 +121,7 @@ pub struct QueryModuleAccountsResponse { pub accounts: ::prost::alloc::vec::Vec, } /// QueryModuleAccountByNameRequest is the request type for the Query/ModuleAccountByName RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryModuleAccountByNameRequest { @@ -129,7 +129,7 @@ pub struct QueryModuleAccountByNameRequest { pub name: ::prost::alloc::string::String, } /// QueryModuleAccountByNameResponse is the response type for the Query/ModuleAccountByName RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryModuleAccountByNameResponse { @@ -139,14 +139,14 @@ pub struct QueryModuleAccountByNameResponse { /// Bech32PrefixRequest is the request type for Bech32Prefix rpc method. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Bech32PrefixRequest {} /// Bech32PrefixResponse is the response type for Bech32Prefix rpc method. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Bech32PrefixResponse { @@ -156,7 +156,7 @@ pub struct Bech32PrefixResponse { /// AddressBytesToStringRequest is the request type for AddressString rpc method. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AddressBytesToStringRequest { @@ -166,7 +166,7 @@ pub struct AddressBytesToStringRequest { /// AddressBytesToStringResponse is the response type for AddressString rpc method. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AddressBytesToStringResponse { @@ -176,7 +176,7 @@ pub struct AddressBytesToStringResponse { /// AddressStringToBytesRequest is the request type for AccountBytes rpc method. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AddressStringToBytesRequest { @@ -186,7 +186,7 @@ pub struct AddressStringToBytesRequest { /// AddressStringToBytesResponse is the response type for AddressBytes rpc method. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AddressStringToBytesResponse { @@ -196,7 +196,7 @@ pub struct AddressStringToBytesResponse { /// QueryAccountAddressByIDRequest is the request type for AccountAddressByID rpc method /// /// Since: cosmos-sdk 0.46.2 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAccountAddressByIdRequest { @@ -209,7 +209,7 @@ pub struct QueryAccountAddressByIdRequest { /// QueryAccountAddressByIDResponse is the response type for AccountAddressByID rpc method /// /// Since: cosmos-sdk 0.46.2 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAccountAddressByIdResponse { @@ -1184,7 +1184,7 @@ pub mod query_server { } } /// GenesisState defines the auth module's genesis state. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { diff --git a/src/prost/cosmos.bank.v1beta1.rs b/src/prost/cosmos.bank.v1beta1.rs index d92494cb..cd2e1837 100644 --- a/src/prost/cosmos.bank.v1beta1.rs +++ b/src/prost/cosmos.bank.v1beta1.rs @@ -1,5 +1,5 @@ /// Params defines the parameters for the bank module. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { @@ -10,7 +10,7 @@ pub struct Params { } /// SendEnabled maps coin denom to a send_enabled status (whether a denom is /// sendable). -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SendEnabled { @@ -20,7 +20,7 @@ pub struct SendEnabled { pub enabled: bool, } /// Input models transaction input. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Input { @@ -30,7 +30,7 @@ pub struct Input { pub coins: ::prost::alloc::vec::Vec, } /// Output models transaction outputs. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Output { @@ -42,7 +42,7 @@ pub struct Output { /// Supply represents a struct that passively keeps track of the total supply /// amounts in the network. /// This message is deprecated now that supply is indexed by denom. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Supply { @@ -51,7 +51,7 @@ pub struct Supply { } /// DenomUnit represents a struct that describes a given /// denomination unit of the basic token. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DenomUnit { @@ -71,7 +71,7 @@ pub struct DenomUnit { } /// Metadata represents a struct that describes /// a basic token. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Metadata { @@ -111,7 +111,7 @@ pub struct Metadata { pub uri_hash: ::prost::alloc::string::String, } /// MsgSend represents a message to send coins from one account to another. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSend { @@ -123,12 +123,12 @@ pub struct MsgSend { pub amount: ::prost::alloc::vec::Vec, } /// MsgSendResponse defines the Msg/Send response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSendResponse {} /// MsgMultiSend represents an arbitrary multi-in, multi-out send message. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgMultiSend { @@ -138,7 +138,7 @@ pub struct MsgMultiSend { pub outputs: ::prost::alloc::vec::Vec, } /// MsgMultiSendResponse defines the Msg/MultiSend response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgMultiSendResponse {} @@ -511,7 +511,7 @@ pub mod msg_server { } } /// QueryBalanceRequest is the request type for the Query/Balance RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryBalanceRequest { @@ -523,7 +523,7 @@ pub struct QueryBalanceRequest { pub denom: ::prost::alloc::string::String, } /// QueryBalanceResponse is the response type for the Query/Balance RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryBalanceResponse { @@ -532,7 +532,7 @@ pub struct QueryBalanceResponse { pub balance: ::core::option::Option, } /// QueryBalanceRequest is the request type for the Query/AllBalances RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAllBalancesRequest { @@ -547,7 +547,7 @@ pub struct QueryAllBalancesRequest { } /// QueryAllBalancesResponse is the response type for the Query/AllBalances RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAllBalancesResponse { @@ -564,7 +564,7 @@ pub struct QueryAllBalancesResponse { /// an account's spendable balances. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QuerySpendableBalancesRequest { @@ -581,7 +581,7 @@ pub struct QuerySpendableBalancesRequest { /// an account's spendable balances. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QuerySpendableBalancesResponse { @@ -596,7 +596,7 @@ pub struct QuerySpendableBalancesResponse { } /// QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryTotalSupplyRequest { @@ -610,7 +610,7 @@ pub struct QueryTotalSupplyRequest { } /// QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC /// method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryTotalSupplyResponse { @@ -626,7 +626,7 @@ pub struct QueryTotalSupplyResponse { >, } /// QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QuerySupplyOfRequest { @@ -635,7 +635,7 @@ pub struct QuerySupplyOfRequest { pub denom: ::prost::alloc::string::String, } /// QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QuerySupplyOfResponse { @@ -644,12 +644,12 @@ pub struct QuerySupplyOfResponse { pub amount: ::core::option::Option, } /// QueryParamsRequest defines the request type for querying x/bank parameters. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsRequest {} /// QueryParamsResponse defines the response type for querying x/bank parameters. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { @@ -657,7 +657,7 @@ pub struct QueryParamsResponse { pub params: ::core::option::Option, } /// QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomsMetadataRequest { @@ -669,7 +669,7 @@ pub struct QueryDenomsMetadataRequest { } /// QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomsMetadataResponse { @@ -683,7 +683,7 @@ pub struct QueryDenomsMetadataResponse { >, } /// QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomMetadataRequest { @@ -693,7 +693,7 @@ pub struct QueryDenomMetadataRequest { } /// QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomMetadataResponse { @@ -704,7 +704,7 @@ pub struct QueryDenomMetadataResponse { /// QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query, /// which queries for a paginated set of all account holders of a particular /// denomination. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomOwnersRequest { @@ -722,7 +722,7 @@ pub struct QueryDenomOwnersRequest { /// balance of the denominated token. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DenomOwner { @@ -736,7 +736,7 @@ pub struct DenomOwner { /// QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomOwnersResponse { @@ -1699,7 +1699,7 @@ pub mod query_server { /// the granter's account. /// /// Since: cosmos-sdk 0.43 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SendAuthorization { @@ -1707,7 +1707,7 @@ pub struct SendAuthorization { pub spend_limit: ::prost::alloc::vec::Vec, } /// GenesisState defines the bank module's genesis state. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { @@ -1727,7 +1727,7 @@ pub struct GenesisState { } /// Balance defines an account address and balance pair used in the bank module's /// genesis state. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Balance { diff --git a/src/prost/cosmos.base.query.v1beta1.rs b/src/prost/cosmos.base.query.v1beta1.rs index 7036e087..41258d9f 100644 --- a/src/prost/cosmos.base.query.v1beta1.rs +++ b/src/prost/cosmos.base.query.v1beta1.rs @@ -5,7 +5,7 @@ /// Foo some_parameter = 1; /// PageRequest pagination = 2; /// } -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PageRequest { @@ -42,7 +42,7 @@ pub struct PageRequest { /// repeated Bar results = 1; /// PageResponse page = 2; /// } -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PageResponse { diff --git a/src/prost/cosmos.base.v1beta1.rs b/src/prost/cosmos.base.v1beta1.rs index e6f40718..6cedf8eb 100644 --- a/src/prost/cosmos.base.v1beta1.rs +++ b/src/prost/cosmos.base.v1beta1.rs @@ -2,7 +2,7 @@ /// /// NOTE: The amount field is an Int which implements the custom method /// signatures required by gogoproto. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Coin { @@ -15,7 +15,7 @@ pub struct Coin { /// /// NOTE: The amount field is an Dec which implements the custom method /// signatures required by gogoproto. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DecCoin { @@ -25,7 +25,7 @@ pub struct DecCoin { pub amount: ::prost::alloc::string::String, } /// IntProto defines a Protobuf wrapper around an Int object. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IntProto { @@ -33,7 +33,7 @@ pub struct IntProto { pub int: ::prost::alloc::string::String, } /// DecProto defines a Protobuf wrapper around a Dec object. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DecProto { diff --git a/src/prost/cosmos.upgrade.v1beta1.rs b/src/prost/cosmos.upgrade.v1beta1.rs index aabbe6f2..a8ec85ff 100644 --- a/src/prost/cosmos.upgrade.v1beta1.rs +++ b/src/prost/cosmos.upgrade.v1beta1.rs @@ -1,5 +1,5 @@ /// Plan specifies information about a planned upgrade and when it should occur. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Plan { @@ -39,7 +39,7 @@ pub struct Plan { /// upgrade. /// Deprecated: This legacy proposal is deprecated in favor of Msg-based gov /// proposals, see MsgSoftwareUpgrade. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SoftwareUpgradeProposal { @@ -54,7 +54,7 @@ pub struct SoftwareUpgradeProposal { /// upgrade. /// Deprecated: This legacy proposal is deprecated in favor of Msg-based gov /// proposals, see MsgCancelUpgrade. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CancelSoftwareUpgradeProposal { @@ -66,7 +66,7 @@ pub struct CancelSoftwareUpgradeProposal { /// ModuleVersion specifies a module and its consensus version. /// /// Since: cosmos-sdk 0.43 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ModuleVersion { @@ -80,7 +80,7 @@ pub struct ModuleVersion { /// MsgSoftwareUpgrade is the Msg/SoftwareUpgrade request type. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSoftwareUpgrade { @@ -94,14 +94,14 @@ pub struct MsgSoftwareUpgrade { /// MsgSoftwareUpgradeResponse is the Msg/SoftwareUpgrade response type. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSoftwareUpgradeResponse {} /// MsgCancelUpgrade is the Msg/CancelUpgrade request type. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgCancelUpgrade { @@ -112,7 +112,7 @@ pub struct MsgCancelUpgrade { /// MsgCancelUpgradeResponse is the Msg/CancelUpgrade response type. /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgCancelUpgradeResponse {} @@ -505,13 +505,13 @@ pub mod msg_server { } /// QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryCurrentPlanRequest {} /// QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryCurrentPlanResponse { @@ -521,7 +521,7 @@ pub struct QueryCurrentPlanResponse { } /// QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAppliedPlanRequest { @@ -531,7 +531,7 @@ pub struct QueryAppliedPlanRequest { } /// QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAppliedPlanResponse { @@ -541,7 +541,7 @@ pub struct QueryAppliedPlanResponse { } /// QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState /// RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUpgradedConsensusStateRequest { @@ -552,7 +552,7 @@ pub struct QueryUpgradedConsensusStateRequest { } /// QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState /// RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUpgradedConsensusStateResponse { @@ -564,7 +564,7 @@ pub struct QueryUpgradedConsensusStateResponse { /// RPC method. /// /// Since: cosmos-sdk 0.43 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryModuleVersionsRequest { @@ -578,7 +578,7 @@ pub struct QueryModuleVersionsRequest { /// RPC method. /// /// Since: cosmos-sdk 0.43 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryModuleVersionsResponse { @@ -589,14 +589,14 @@ pub struct QueryModuleVersionsResponse { /// QueryAuthorityRequest is the request type for Query/Authority /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAuthorityRequest {} /// QueryAuthorityResponse is the response type for Query/Authority /// /// Since: cosmos-sdk 0.46 -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAuthorityResponse { diff --git a/src/prost/google.protobuf.rs b/src/prost/google.protobuf.rs index 27ae62a0..75994214 100644 --- a/src/prost/google.protobuf.rs +++ b/src/prost/google.protobuf.rs @@ -1231,7 +1231,7 @@ pub mod generated_code_info { /// "value": "1.212s" /// } /// -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[derive(Eq)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1363,7 +1363,7 @@ pub struct Any { /// ) to obtain a formatter capable of generating timestamps in this format. /// /// -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Timestamp { @@ -1439,7 +1439,7 @@ pub struct Timestamp { /// microsecond should be expressed in JSON format as "3.000001s". /// /// -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[derive(Eq)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/src/prost/ibc.applications.interchain_accounts.controller.v1.rs b/src/prost/ibc.applications.interchain_accounts.controller.v1.rs index 14d87ccf..68b35d39 100644 --- a/src/prost/ibc.applications.interchain_accounts.controller.v1.rs +++ b/src/prost/ibc.applications.interchain_accounts.controller.v1.rs @@ -1,5 +1,5 @@ /// MsgRegisterInterchainAccount defines the payload for Msg/MsgRegisterInterchainAccount -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRegisterInterchainAccount { @@ -11,7 +11,7 @@ pub struct MsgRegisterInterchainAccount { pub version: ::prost::alloc::string::String, } /// MsgRegisterInterchainAccountResponse defines the response for Msg/MsgRegisterInterchainAccountResponse -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRegisterInterchainAccountResponse { @@ -19,7 +19,7 @@ pub struct MsgRegisterInterchainAccountResponse { pub channel_id: ::prost::alloc::string::String, } /// MsgSendTx defines the payload for Msg/SendTx -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSendTx { @@ -37,7 +37,7 @@ pub struct MsgSendTx { pub relative_timeout: u64, } /// MsgSendTxResponse defines the response for MsgSendTx -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSendTxResponse { @@ -431,7 +431,7 @@ pub mod msg_server { } /// Params defines the set of on-chain interchain accounts parameters. /// The following parameters may be used to disable the controller submodule. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { @@ -440,7 +440,7 @@ pub struct Params { pub controller_enabled: bool, } /// QueryInterchainAccountRequest is the request type for the Query/InterchainAccount RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryInterchainAccountRequest { @@ -450,7 +450,7 @@ pub struct QueryInterchainAccountRequest { pub connection_id: ::prost::alloc::string::String, } /// QueryInterchainAccountResponse the response type for the Query/InterchainAccount RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryInterchainAccountResponse { @@ -458,12 +458,12 @@ pub struct QueryInterchainAccountResponse { pub address: ::prost::alloc::string::String, } /// QueryParamsRequest is the request type for the Query/Params RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsRequest {} /// QueryParamsResponse is the response type for the Query/Params RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { diff --git a/src/prost/ibc.applications.interchain_accounts.genesis.v1.rs b/src/prost/ibc.applications.interchain_accounts.genesis.v1.rs index 296acf8d..b6116a8c 100644 --- a/src/prost/ibc.applications.interchain_accounts.genesis.v1.rs +++ b/src/prost/ibc.applications.interchain_accounts.genesis.v1.rs @@ -1,5 +1,5 @@ /// GenesisState defines the interchain accounts genesis state -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { @@ -9,7 +9,7 @@ pub struct GenesisState { pub host_genesis_state: ::core::option::Option, } /// ControllerGenesisState defines the interchain accounts controller genesis state -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ControllerGenesisState { @@ -23,7 +23,7 @@ pub struct ControllerGenesisState { pub params: ::core::option::Option, } /// HostGenesisState defines the interchain accounts host genesis state -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct HostGenesisState { @@ -38,7 +38,7 @@ pub struct HostGenesisState { } /// ActiveChannel contains a connection ID, port ID and associated active channel ID, as well as a boolean flag to /// indicate if the channel is middleware enabled -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActiveChannel { @@ -52,7 +52,7 @@ pub struct ActiveChannel { pub is_middleware_enabled: bool, } /// RegisteredInterchainAccount contains a connection ID, port ID and associated interchain account address -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RegisteredInterchainAccount { diff --git a/src/prost/ibc.applications.interchain_accounts.host.v1.rs b/src/prost/ibc.applications.interchain_accounts.host.v1.rs index 2680aaa2..f5f51ff1 100644 --- a/src/prost/ibc.applications.interchain_accounts.host.v1.rs +++ b/src/prost/ibc.applications.interchain_accounts.host.v1.rs @@ -1,6 +1,6 @@ /// Params defines the set of on-chain interchain accounts parameters. /// The following parameters may be used to disable the host submodule. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { @@ -12,12 +12,12 @@ pub struct Params { pub allow_messages: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } /// QueryParamsRequest is the request type for the Query/Params RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsRequest {} /// QueryParamsResponse is the response type for the Query/Params RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { diff --git a/src/prost/ibc.applications.interchain_accounts.v1.rs b/src/prost/ibc.applications.interchain_accounts.v1.rs index 55480ebd..09ec19d1 100644 --- a/src/prost/ibc.applications.interchain_accounts.v1.rs +++ b/src/prost/ibc.applications.interchain_accounts.v1.rs @@ -1,5 +1,5 @@ /// An InterchainAccount is defined as a BaseAccount & the address of the account owner on the controller chain -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct InterchainAccount { @@ -11,7 +11,7 @@ pub struct InterchainAccount { pub account_owner: ::prost::alloc::string::String, } /// InterchainAccountPacketData is comprised of a raw transaction, type of transaction and optional memo field. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct InterchainAccountPacketData { @@ -23,7 +23,7 @@ pub struct InterchainAccountPacketData { pub memo: ::prost::alloc::string::String, } /// CosmosTx contains a list of sdk.Msg's. It should be used when sending transactions to an SDK host chain. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CosmosTx { @@ -34,7 +34,7 @@ pub struct CosmosTx { } /// Type defines a classification of message issued from a controller chain to its associated interchain accounts /// host -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum Type { @@ -65,7 +65,7 @@ impl Type { } /// Metadata defines a set of protocol specific data encoded into the ICS27 channel version bytestring /// See ICS004: -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Metadata { diff --git a/src/prost/ibc.applications.transfer.v1.rs b/src/prost/ibc.applications.transfer.v1.rs index 9b8b7a72..f5cc7bd1 100644 --- a/src/prost/ibc.applications.transfer.v1.rs +++ b/src/prost/ibc.applications.transfer.v1.rs @@ -1,7 +1,7 @@ /// MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between /// ICS20 enabled chains. See ICS Spec here: /// -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgTransfer { @@ -34,11 +34,11 @@ pub struct MsgTransfer { pub timeout_timestamp: u64, /// optional memo #[prost(string, tag = "8")] - #[cfg_attr(feature = "std", serde(default))] + #[cfg_attr(feature = "serde", serde(default))] pub memo: ::prost::alloc::string::String, } /// MsgTransferResponse defines the Msg/Transfer response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgTransferResponse { @@ -343,7 +343,7 @@ pub mod msg_server { } /// DenomTrace contains the base denomination for ICS20 fungible tokens and the /// source tracing information path. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DenomTrace { @@ -359,7 +359,7 @@ pub struct DenomTrace { /// 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. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { @@ -374,7 +374,7 @@ pub struct Params { } /// QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC /// method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomTraceRequest { @@ -384,7 +384,7 @@ pub struct QueryDenomTraceRequest { } /// QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomTraceResponse { @@ -394,7 +394,7 @@ pub struct QueryDenomTraceResponse { } /// QueryConnectionsRequest is the request type for the Query/DenomTraces RPC /// method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomTracesRequest { @@ -406,7 +406,7 @@ pub struct QueryDenomTracesRequest { } /// QueryConnectionsResponse is the response type for the Query/DenomTraces RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomTracesResponse { @@ -420,12 +420,12 @@ pub struct QueryDenomTracesResponse { >, } /// QueryParamsRequest is the request type for the Query/Params RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsRequest {} /// QueryParamsResponse is the response type for the Query/Params RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { @@ -435,7 +435,7 @@ pub struct QueryParamsResponse { } /// QueryDenomHashRequest is the request type for the Query/DenomHash RPC /// method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomHashRequest { @@ -445,7 +445,7 @@ pub struct QueryDenomHashRequest { } /// QueryDenomHashResponse is the response type for the Query/DenomHash RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomHashResponse { @@ -454,7 +454,7 @@ pub struct QueryDenomHashResponse { pub hash: ::prost::alloc::string::String, } /// QueryEscrowAddressRequest is the request type for the EscrowAddress RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryEscrowAddressRequest { @@ -466,7 +466,7 @@ pub struct QueryEscrowAddressRequest { pub channel_id: ::prost::alloc::string::String, } /// QueryEscrowAddressResponse is the response type of the EscrowAddress RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryEscrowAddressResponse { @@ -1097,7 +1097,7 @@ pub mod query_server { } } /// Allocation defines the spend limit for a particular port and channel -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Allocation { @@ -1118,7 +1118,7 @@ pub struct Allocation { } /// TransferAuthorization allows the grantee to spend up to spend_limit coins from /// the granter's account for ibc transfer on a specific channel -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransferAuthorization { @@ -1127,7 +1127,7 @@ pub struct TransferAuthorization { pub allocations: ::prost::alloc::vec::Vec, } /// GenesisState defines the ibc-transfer genesis state -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { diff --git a/src/prost/ibc.applications.transfer.v2.rs b/src/prost/ibc.applications.transfer.v2.rs index 065a5b1b..d1b76cc6 100644 --- a/src/prost/ibc.applications.transfer.v2.rs +++ b/src/prost/ibc.applications.transfer.v2.rs @@ -1,7 +1,7 @@ /// FungibleTokenPacketData defines a struct for the packet payload /// See FungibleTokenPacketData spec: /// -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct FungibleTokenPacketData { @@ -19,6 +19,6 @@ pub struct FungibleTokenPacketData { pub receiver: ::prost::alloc::string::String, /// optional memo #[prost(string, tag = "5")] - #[cfg_attr(feature = "std", serde(default))] + #[cfg_attr(feature = "serde", serde(default))] pub memo: ::prost::alloc::string::String, } diff --git a/src/prost/ibc.core.channel.v1.rs b/src/prost/ibc.core.channel.v1.rs index dfdb3822..1b33da16 100644 --- a/src/prost/ibc.core.channel.v1.rs +++ b/src/prost/ibc.core.channel.v1.rs @@ -1,9 +1,9 @@ /// 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. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[cfg_attr( - all(feature = "json-schema", feature = "std"), + all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] #[allow(clippy::derive_partial_eq_without_eq)] @@ -28,7 +28,7 @@ pub struct Channel { } /// IdentifiedChannel defines a channel with additional port and channel /// identifier fields. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IdentifiedChannel { @@ -56,9 +56,9 @@ pub struct IdentifiedChannel { pub channel_id: ::prost::alloc::string::String, } /// Counterparty defines a channel end counterparty -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[cfg_attr( - all(feature = "json-schema", feature = "std"), + all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] #[allow(clippy::derive_partial_eq_without_eq)] @@ -72,7 +72,7 @@ pub struct Counterparty { pub channel_id: ::prost::alloc::string::String, } /// Packet defines a type that carries data across different chains through IBC -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Packet { @@ -107,7 +107,7 @@ pub struct Packet { /// packet commitments, acknowledgements, and receipts. /// Caller is responsible for knowing the context necessary to interpret this /// state as a commitment, acknowledgement, or a receipt. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PacketState { @@ -127,7 +127,7 @@ pub struct PacketState { /// PacketId is an identifer for a unique Packet /// Source chains refer to packets by source port/channel /// Destination chains refer to packets by destination port/channel -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PacketId { @@ -148,7 +148,7 @@ pub struct PacketId { /// The first byte of any message with this format will be the non-ASCII values /// `0xaa` (result) or `0xb2` (error). Implemented as defined by ICS: /// -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Acknowledgement { @@ -159,7 +159,7 @@ pub struct Acknowledgement { /// Nested message and enum types in `Acknowledgement`. pub mod acknowledgement { /// response contains either a result or an error and must be non-empty - #[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] + #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Response { @@ -171,7 +171,7 @@ pub mod acknowledgement { } /// State defines if a channel is in one of the following states: /// CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum State { @@ -215,7 +215,7 @@ impl State { } } /// Order defines if a channel is ORDERED or UNORDERED -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum Order { @@ -250,7 +250,7 @@ impl Order { } } /// GenesisState defines the ibc channel submodule's genesis state. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { @@ -274,7 +274,7 @@ pub struct GenesisState { } /// PacketSequence defines the genesis type necessary to retrieve and store /// next send and receive sequences. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PacketSequence { @@ -287,7 +287,7 @@ pub struct PacketSequence { } /// MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It /// is called by a relayer on Chain A. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenInit { @@ -299,7 +299,7 @@ pub struct MsgChannelOpenInit { pub signer: ::prost::alloc::string::String, } /// MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenInitResponse { @@ -311,7 +311,7 @@ pub struct MsgChannelOpenInitResponse { /// MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel /// on Chain B. The version field within the Channel field has been deprecated. Its /// value will be ignored by core IBC. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenTry { @@ -334,7 +334,7 @@ pub struct MsgChannelOpenTry { pub signer: ::prost::alloc::string::String, } /// MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenTryResponse { @@ -343,7 +343,7 @@ pub struct MsgChannelOpenTryResponse { } /// MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge /// the change of channel state to TRYOPEN on Chain B. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenAck { @@ -363,13 +363,13 @@ pub struct MsgChannelOpenAck { pub signer: ::prost::alloc::string::String, } /// MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenAckResponse {} /// MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to /// acknowledge the change of channel state to OPEN on Chain A. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenConfirm { @@ -386,13 +386,13 @@ pub struct MsgChannelOpenConfirm { } /// MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response /// type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelOpenConfirmResponse {} /// MsgChannelCloseInit defines a msg sent by a Relayer to Chain A /// to close a channel with Chain B. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelCloseInit { @@ -404,13 +404,13 @@ pub struct MsgChannelCloseInit { pub signer: ::prost::alloc::string::String, } /// MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelCloseInitResponse {} /// MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B /// to acknowledge the change of channel state to CLOSED on Chain A. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelCloseConfirm { @@ -427,12 +427,12 @@ pub struct MsgChannelCloseConfirm { } /// MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response /// type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgChannelCloseConfirmResponse {} /// MsgRecvPacket receives incoming IBC packet -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRecvPacket { @@ -446,7 +446,7 @@ pub struct MsgRecvPacket { pub signer: ::prost::alloc::string::String, } /// MsgRecvPacketResponse defines the Msg/RecvPacket response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRecvPacketResponse { @@ -454,7 +454,7 @@ pub struct MsgRecvPacketResponse { pub result: i32, } /// MsgTimeout receives timed-out packet -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgTimeout { @@ -470,7 +470,7 @@ pub struct MsgTimeout { pub signer: ::prost::alloc::string::String, } /// MsgTimeoutResponse defines the Msg/Timeout response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgTimeoutResponse { @@ -478,7 +478,7 @@ pub struct MsgTimeoutResponse { pub result: i32, } /// MsgTimeoutOnClose timed-out packet upon counterparty channel closure. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgTimeoutOnClose { @@ -496,7 +496,7 @@ pub struct MsgTimeoutOnClose { pub signer: ::prost::alloc::string::String, } /// MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgTimeoutOnCloseResponse { @@ -504,7 +504,7 @@ pub struct MsgTimeoutOnCloseResponse { pub result: i32, } /// MsgAcknowledgement receives incoming IBC acknowledgement -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgAcknowledgement { @@ -520,7 +520,7 @@ pub struct MsgAcknowledgement { pub signer: ::prost::alloc::string::String, } /// MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgAcknowledgementResponse { @@ -528,7 +528,7 @@ pub struct MsgAcknowledgementResponse { pub result: i32, } /// ResponseResultType defines the possible outcomes of the execution of a message -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum ResponseResultType { @@ -1567,7 +1567,7 @@ pub mod msg_server { } } /// QueryChannelRequest is the request type for the Query/Channel RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelRequest { @@ -1581,7 +1581,7 @@ pub struct QueryChannelRequest { /// 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. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelResponse { @@ -1596,7 +1596,7 @@ pub struct QueryChannelResponse { pub proof_height: ::core::option::Option, } /// QueryChannelsRequest is the request type for the Query/Channels RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelsRequest { @@ -1607,7 +1607,7 @@ pub struct QueryChannelsRequest { >, } /// QueryChannelsResponse is the response type for the Query/Channels RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelsResponse { @@ -1625,7 +1625,7 @@ pub struct QueryChannelsResponse { } /// QueryConnectionChannelsRequest is the request type for the /// Query/QueryConnectionChannels RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionChannelsRequest { @@ -1640,7 +1640,7 @@ pub struct QueryConnectionChannelsRequest { } /// QueryConnectionChannelsResponse is the Response type for the /// Query/QueryConnectionChannels RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionChannelsResponse { @@ -1658,7 +1658,7 @@ pub struct QueryConnectionChannelsResponse { } /// QueryChannelClientStateRequest is the request type for the Query/ClientState /// RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelClientStateRequest { @@ -1671,7 +1671,7 @@ pub struct QueryChannelClientStateRequest { } /// QueryChannelClientStateResponse is the Response type for the /// Query/QueryChannelClientState RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelClientStateResponse { @@ -1689,7 +1689,7 @@ pub struct QueryChannelClientStateResponse { } /// QueryChannelConsensusStateRequest is the request type for the /// Query/ConsensusState RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelConsensusStateRequest { @@ -1708,7 +1708,7 @@ pub struct QueryChannelConsensusStateRequest { } /// QueryChannelClientStateResponse is the Response type for the /// Query/QueryChannelClientState RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryChannelConsensusStateResponse { @@ -1729,7 +1729,7 @@ pub struct QueryChannelConsensusStateResponse { } /// QueryPacketCommitmentRequest is the request type for the /// Query/PacketCommitment RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketCommitmentRequest { @@ -1746,7 +1746,7 @@ pub struct QueryPacketCommitmentRequest { /// QueryPacketCommitmentResponse defines the client query response for a packet /// which also includes a proof and the height from which the proof was /// retrieved -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketCommitmentResponse { @@ -1762,7 +1762,7 @@ pub struct QueryPacketCommitmentResponse { } /// QueryPacketCommitmentsRequest is the request type for the /// Query/QueryPacketCommitments RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketCommitmentsRequest { @@ -1780,7 +1780,7 @@ pub struct QueryPacketCommitmentsRequest { } /// QueryPacketCommitmentsResponse is the request type for the /// Query/QueryPacketCommitments RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketCommitmentsResponse { @@ -1797,7 +1797,7 @@ pub struct QueryPacketCommitmentsResponse { } /// QueryPacketReceiptRequest is the request type for the /// Query/PacketReceipt RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketReceiptRequest { @@ -1814,7 +1814,7 @@ pub struct QueryPacketReceiptRequest { /// QueryPacketReceiptResponse defines the client query response for a packet /// receipt which also includes a proof, and the height from which the proof was /// retrieved -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketReceiptResponse { @@ -1830,7 +1830,7 @@ pub struct QueryPacketReceiptResponse { } /// QueryPacketAcknowledgementRequest is the request type for the /// Query/PacketAcknowledgement RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketAcknowledgementRequest { @@ -1847,7 +1847,7 @@ pub struct QueryPacketAcknowledgementRequest { /// QueryPacketAcknowledgementResponse defines the client query response for a /// packet which also includes a proof and the height from which the /// proof was retrieved -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketAcknowledgementResponse { @@ -1863,7 +1863,7 @@ pub struct QueryPacketAcknowledgementResponse { } /// QueryPacketAcknowledgementsRequest is the request type for the /// Query/QueryPacketCommitments RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketAcknowledgementsRequest { @@ -1884,7 +1884,7 @@ pub struct QueryPacketAcknowledgementsRequest { } /// QueryPacketAcknowledgemetsResponse is the request type for the /// Query/QueryPacketAcknowledgements RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryPacketAcknowledgementsResponse { @@ -1901,7 +1901,7 @@ pub struct QueryPacketAcknowledgementsResponse { } /// QueryUnreceivedPacketsRequest is the request type for the /// Query/UnreceivedPackets RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUnreceivedPacketsRequest { @@ -1917,7 +1917,7 @@ pub struct QueryUnreceivedPacketsRequest { } /// QueryUnreceivedPacketsResponse is the response type for the /// Query/UnreceivedPacketCommitments RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUnreceivedPacketsResponse { @@ -1930,7 +1930,7 @@ pub struct QueryUnreceivedPacketsResponse { } /// QueryUnreceivedAcks is the request type for the /// Query/UnreceivedAcks RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUnreceivedAcksRequest { @@ -1946,7 +1946,7 @@ pub struct QueryUnreceivedAcksRequest { } /// QueryUnreceivedAcksResponse is the response type for the /// Query/UnreceivedAcks RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUnreceivedAcksResponse { @@ -1959,7 +1959,7 @@ pub struct QueryUnreceivedAcksResponse { } /// QueryNextSequenceReceiveRequest is the request type for the /// Query/QueryNextSequenceReceiveRequest RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryNextSequenceReceiveRequest { @@ -1972,7 +1972,7 @@ pub struct QueryNextSequenceReceiveRequest { } /// QuerySequenceResponse is the request type for the /// Query/QueryNextSequenceReceiveResponse RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryNextSequenceReceiveResponse { diff --git a/src/prost/ibc.core.client.v1.rs b/src/prost/ibc.core.client.v1.rs index cfa6a903..d9da0517 100644 --- a/src/prost/ibc.core.client.v1.rs +++ b/src/prost/ibc.core.client.v1.rs @@ -1,6 +1,6 @@ /// IdentifiedClientState defines a client state with an additional client /// identifier field. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IdentifiedClientState { @@ -15,7 +15,7 @@ pub struct IdentifiedClientState { } /// ConsensusStateWithHeight defines a consensus state with an additional height /// field. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsensusStateWithHeight { @@ -30,7 +30,7 @@ pub struct ConsensusStateWithHeight { } /// ClientConsensusStates defines all the stored consensus states for a given /// client. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientConsensusStates { @@ -45,7 +45,7 @@ pub struct ClientConsensusStates { /// client's latest consensus state is copied over to the subject client. The proposal /// handler may fail if the subject and the substitute do not match in client and /// chain parameters (with exception to latest height, frozen height, and chain-id). -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientUpdateProposal { @@ -65,7 +65,7 @@ pub struct ClientUpdateProposal { } /// UpgradeProposal is a gov Content type for initiating an IBC breaking /// upgrade. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UpgradeProposal { @@ -98,10 +98,10 @@ pub struct UpgradeProposal { /// breaking changes In these cases, the RevisionNumber is incremented so that /// height continues to be monitonically increasing even as the RevisionHeight /// gets reset -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[derive(Eq, PartialOrd, Ord)] #[cfg_attr( - all(feature = "json-schema", feature = "std"), + all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] #[allow(clippy::derive_partial_eq_without_eq)] @@ -109,15 +109,15 @@ pub struct UpgradeProposal { pub struct Height { /// the revision that the client is currently on #[prost(uint64, tag = "1")] - #[cfg_attr(feature = "std", serde(default))] + #[cfg_attr(feature = "serde", serde(default))] pub revision_number: u64, /// the height within the given revision #[prost(uint64, tag = "2")] - #[cfg_attr(feature = "std", serde(default))] + #[cfg_attr(feature = "serde", serde(default))] pub revision_height: u64, } /// Params defines the set of IBC light client parameters. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { @@ -126,7 +126,7 @@ pub struct Params { pub allowed_clients: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } /// GenesisState defines the ibc client submodule's genesis state. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { @@ -150,7 +150,7 @@ pub struct GenesisState { } /// GenesisMetadata defines the genesis type for metadata that clients may return /// with ExportMetadata -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisMetadata { @@ -163,7 +163,7 @@ pub struct GenesisMetadata { } /// IdentifiedGenesisMetadata has the client metadata with the corresponding /// client id. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IdentifiedGenesisMetadata { @@ -173,7 +173,7 @@ pub struct IdentifiedGenesisMetadata { pub client_metadata: ::prost::alloc::vec::Vec, } /// MsgCreateClient defines a message to create an IBC client -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgCreateClient { @@ -193,13 +193,13 @@ pub struct MsgCreateClient { pub signer: ::prost::alloc::string::String, } /// MsgCreateClientResponse defines the Msg/CreateClient response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgCreateClientResponse {} /// MsgUpdateClient defines an sdk.Msg to update a IBC client state using /// the given header. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpdateClient { @@ -216,13 +216,13 @@ pub struct MsgUpdateClient { pub signer: ::prost::alloc::string::String, } /// MsgUpdateClientResponse defines the Msg/UpdateClient response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpdateClientResponse {} /// MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client /// state -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpgradeClient { @@ -251,13 +251,13 @@ pub struct MsgUpgradeClient { pub signer: ::prost::alloc::string::String, } /// MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgUpgradeClientResponse {} /// MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for /// light client misbehaviour. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSubmitMisbehaviour { @@ -275,7 +275,7 @@ pub struct MsgSubmitMisbehaviour { } /// MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response /// type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSubmitMisbehaviourResponse {} @@ -814,7 +814,7 @@ pub mod msg_server { } /// QueryClientStateRequest is the request type for the Query/ClientState RPC /// method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientStateRequest { @@ -825,7 +825,7 @@ pub struct QueryClientStateRequest { /// 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. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientStateResponse { @@ -843,7 +843,7 @@ pub struct QueryClientStateResponse { } /// QueryClientStatesRequest is the request type for the Query/ClientStates RPC /// method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientStatesRequest { @@ -855,7 +855,7 @@ pub struct QueryClientStatesRequest { } /// QueryClientStatesResponse is the response type for the Query/ClientStates RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientStatesResponse { @@ -871,7 +871,7 @@ pub struct QueryClientStatesResponse { /// QueryConsensusStateRequest is the request type for the Query/ConsensusState /// RPC method. Besides the consensus state, it includes a proof and the height /// from which the proof was retrieved. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsensusStateRequest { @@ -891,7 +891,7 @@ pub struct QueryConsensusStateRequest { } /// QueryConsensusStateResponse is the response type for the Query/ConsensusState /// RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsensusStateResponse { @@ -909,7 +909,7 @@ pub struct QueryConsensusStateResponse { } /// QueryConsensusStatesRequest is the request type for the Query/ConsensusStates /// RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsensusStatesRequest { @@ -924,7 +924,7 @@ pub struct QueryConsensusStatesRequest { } /// QueryConsensusStatesResponse is the response type for the /// Query/ConsensusStates RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsensusStatesResponse { @@ -939,7 +939,7 @@ pub struct QueryConsensusStatesResponse { } /// QueryConsensusStateHeightsRequest is the request type for Query/ConsensusStateHeights /// RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsensusStateHeightsRequest { @@ -954,7 +954,7 @@ pub struct QueryConsensusStateHeightsRequest { } /// QueryConsensusStateHeightsResponse is the response type for the /// Query/ConsensusStateHeights RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsensusStateHeightsResponse { @@ -969,7 +969,7 @@ pub struct QueryConsensusStateHeightsResponse { } /// QueryClientStatusRequest is the request type for the Query/ClientStatus RPC /// method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientStatusRequest { @@ -979,7 +979,7 @@ pub struct QueryClientStatusRequest { } /// QueryClientStatusResponse is the response type for the Query/ClientStatus RPC /// method. It returns the current status of the IBC client. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientStatusResponse { @@ -988,13 +988,13 @@ pub struct QueryClientStatusResponse { } /// QueryClientParamsRequest is the request type for the Query/ClientParams RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientParamsRequest {} /// QueryClientParamsResponse is the response type for the Query/ClientParams RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientParamsResponse { @@ -1004,13 +1004,13 @@ pub struct QueryClientParamsResponse { } /// QueryUpgradedClientStateRequest is the request type for the /// Query/UpgradedClientState RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUpgradedClientStateRequest {} /// QueryUpgradedClientStateResponse is the response type for the /// Query/UpgradedClientState RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUpgradedClientStateResponse { @@ -1022,13 +1022,13 @@ pub struct QueryUpgradedClientStateResponse { } /// QueryUpgradedConsensusStateRequest is the request type for the /// Query/UpgradedConsensusState RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUpgradedConsensusStateRequest {} /// QueryUpgradedConsensusStateResponse is the response type for the /// Query/UpgradedConsensusState RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryUpgradedConsensusStateResponse { diff --git a/src/prost/ibc.core.commitment.v1.rs b/src/prost/ibc.core.commitment.v1.rs index 0b30b223..d4dfc369 100644 --- a/src/prost/ibc.core.commitment.v1.rs +++ b/src/prost/ibc.core.commitment.v1.rs @@ -1,38 +1,44 @@ /// MerkleRoot defines a merkle root hash. /// In the Cosmos SDK, the AppHash of a block header becomes the root. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[cfg_attr( - all(feature = "json-schema", feature = "std"), + all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MerkleRoot { #[prost(bytes = "vec", tag = "1")] - #[cfg_attr(feature = "std", serde(with = "crate::base64"))] - #[cfg_attr(all(feature = "json-schema", feature = "std"), schemars(with = "String"))] + #[cfg_attr(feature = "serde", serde(with = "crate::base64"))] + #[cfg_attr( + all(feature = "json-schema", feature = "serde"), + schemars(with = "String") + )] pub hash: ::prost::alloc::vec::Vec, } /// 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...)) -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[cfg_attr( - all(feature = "json-schema", feature = "std"), + all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MerklePrefix { #[prost(bytes = "vec", tag = "1")] - #[cfg_attr(feature = "std", serde(with = "crate::base64"))] - #[cfg_attr(all(feature = "json-schema", feature = "std"), schemars(with = "String"))] + #[cfg_attr(feature = "serde", serde(with = "crate::base64"))] + #[cfg_attr( + all(feature = "json-schema", feature = "serde"), + schemars(with = "String") + )] pub key_prefix: ::prost::alloc::vec::Vec, } /// MerklePath is the path used to verify commitment proofs, which can be an /// arbitrary structured object (defined by a commitment type). /// MerklePath is represented from root-to-leaf -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MerklePath { @@ -44,7 +50,7 @@ pub struct MerklePath { /// elements, verifiable in conjunction with a known commitment root. Proofs /// should be succinct. /// MerkleProofs are ordered from leaf-to-root -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MerkleProof { diff --git a/src/prost/ibc.core.connection.v1.rs b/src/prost/ibc.core.connection.v1.rs index f8d45790..38df474d 100644 --- a/src/prost/ibc.core.connection.v1.rs +++ b/src/prost/ibc.core.connection.v1.rs @@ -2,9 +2,9 @@ /// separate one. /// NOTE: there must only be 2 defined ConnectionEnds to establish /// a connection between two chains. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[cfg_attr( - all(feature = "json-schema", feature = "std"), + all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] #[allow(clippy::derive_partial_eq_without_eq)] @@ -31,7 +31,7 @@ pub struct ConnectionEnd { } /// IdentifiedConnection defines a connection with additional connection /// identifier field. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IdentifiedConnection { @@ -56,9 +56,9 @@ pub struct IdentifiedConnection { pub delay_period: u64, } /// Counterparty defines the counterparty chain associated with a connection end. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[cfg_attr( - all(feature = "json-schema", feature = "std"), + all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] #[allow(clippy::derive_partial_eq_without_eq)] @@ -77,7 +77,7 @@ pub struct Counterparty { pub prefix: ::core::option::Option, } /// ClientPaths define all the connection paths for a client state. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientPaths { @@ -86,7 +86,7 @@ pub struct ClientPaths { pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } /// ConnectionPaths define all the connection paths for a given client state. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConnectionPaths { @@ -99,9 +99,9 @@ pub struct ConnectionPaths { } /// Version defines the versioning scheme used to negotiate the IBC verison in /// the connection handshake. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[cfg_attr( - all(feature = "json-schema", feature = "std"), + all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema) )] #[allow(clippy::derive_partial_eq_without_eq)] @@ -115,7 +115,7 @@ pub struct Version { pub features: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } /// Params defines the set of Connection parameters. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { @@ -127,7 +127,7 @@ pub struct Params { } /// State defines if a connection is in one of the following states: /// INIT, TRYOPEN, OPEN or UNINITIALIZED. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum State { @@ -166,7 +166,7 @@ impl State { } } /// GenesisState defines the ibc connection submodule's genesis state. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { @@ -182,7 +182,7 @@ pub struct GenesisState { } /// MsgConnectionOpenInit defines the msg sent by an account on Chain A to /// initialize a connection with Chain B. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenInit { @@ -199,13 +199,13 @@ pub struct MsgConnectionOpenInit { } /// MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response /// type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenInitResponse {} /// MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a /// connection on Chain B. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenTry { @@ -243,13 +243,13 @@ pub struct MsgConnectionOpenTry { pub signer: ::prost::alloc::string::String, } /// MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenTryResponse {} /// MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to /// acknowledge the change of connection state to TRYOPEN on Chain B. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenAck { @@ -281,13 +281,13 @@ pub struct MsgConnectionOpenAck { pub signer: ::prost::alloc::string::String, } /// MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenAckResponse {} /// MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to /// acknowledge the change of connection state to OPEN on Chain A. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenConfirm { @@ -303,7 +303,7 @@ pub struct MsgConnectionOpenConfirm { } /// MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm /// response type. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenConfirmResponse {} @@ -857,7 +857,7 @@ pub mod msg_server { } /// QueryConnectionRequest is the request type for the Query/Connection RPC /// method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionRequest { @@ -868,7 +868,7 @@ pub struct QueryConnectionRequest { /// 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. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionResponse { @@ -884,7 +884,7 @@ pub struct QueryConnectionResponse { } /// QueryConnectionsRequest is the request type for the Query/Connections RPC /// method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionsRequest { @@ -895,7 +895,7 @@ pub struct QueryConnectionsRequest { } /// QueryConnectionsResponse is the response type for the Query/Connections RPC /// method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionsResponse { @@ -913,7 +913,7 @@ pub struct QueryConnectionsResponse { } /// QueryClientConnectionsRequest is the request type for the /// Query/ClientConnections RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientConnectionsRequest { @@ -923,7 +923,7 @@ pub struct QueryClientConnectionsRequest { } /// QueryClientConnectionsResponse is the response type for the /// Query/ClientConnections RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryClientConnectionsResponse { @@ -939,7 +939,7 @@ pub struct QueryClientConnectionsResponse { } /// QueryConnectionClientStateRequest is the request type for the /// Query/ConnectionClientState RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionClientStateRequest { @@ -949,7 +949,7 @@ pub struct QueryConnectionClientStateRequest { } /// QueryConnectionClientStateResponse is the response type for the /// Query/ConnectionClientState RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionClientStateResponse { @@ -967,7 +967,7 @@ pub struct QueryConnectionClientStateResponse { } /// QueryConnectionConsensusStateRequest is the request type for the /// Query/ConnectionConsensusState RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionConsensusStateRequest { @@ -981,7 +981,7 @@ pub struct QueryConnectionConsensusStateRequest { } /// QueryConnectionConsensusStateResponse is the response type for the /// Query/ConnectionConsensusState RPC method -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionConsensusStateResponse { @@ -1001,12 +1001,12 @@ pub struct QueryConnectionConsensusStateResponse { pub proof_height: ::core::option::Option, } /// QueryConnectionParamsRequest is the request type for the Query/ConnectionParams RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionParamsRequest {} /// QueryConnectionParamsResponse is the response type for the Query/ConnectionParams RPC method. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConnectionParamsResponse { diff --git a/src/prost/ibc.core.types.v1.rs b/src/prost/ibc.core.types.v1.rs index 704722dd..cc6a4edf 100644 --- a/src/prost/ibc.core.types.v1.rs +++ b/src/prost/ibc.core.types.v1.rs @@ -1,5 +1,5 @@ /// GenesisState defines the ibc module's genesis state. -#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))] +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { diff --git a/tools/proto-compiler/src/cmd/compile.rs b/tools/proto-compiler/src/cmd/compile.rs index e8627e19..23b9a9d4 100644 --- a/tools/proto-compiler/src/cmd/compile.rs +++ b/tools/proto-compiler/src/cmd/compile.rs @@ -113,21 +113,15 @@ impl CompileCmd { // List available paths for dependencies let includes: Vec = proto_includes_paths.iter().map(PathBuf::from).collect(); - // We can only enable JSON serialization when the `std` feature is enabled, - // as it is currently required by `ics23` for it to implement JSON serialization - // let attrs_serde = r#"#[derive(::serde::Serialize, ::serde::Deserialize)]"#; - // let attrs_serde_default = r#"#[serde(default)]"#; - // let attrs_jsonschema = - // r#"#[cfg_attr(feature = "json-schema", derive(::schemars::JsonSchema))]"#; - - let attrs_jsonschema = r#"#[cfg_attr(all(feature = "json-schema", feature = "std"), derive(::schemars::JsonSchema))]"#; + let attrs_serde = + r#"#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]"#; + let attrs_serde_default = r#"#[cfg_attr(feature = "serde", serde(default))]"#; + let attrs_jsonschema = r#"#[cfg_attr(all(feature = "json-schema", feature = "serde"), derive(::schemars::JsonSchema))]"#; + let attrs_ord = "#[derive(Eq, PartialOrd, Ord)]"; let attrs_eq = "#[derive(Eq)]"; - let attrs_serde = - r#"#[cfg_attr(feature = "std", derive(::serde::Serialize, ::serde::Deserialize))]"#; - let attrs_serde_default = r#"#[cfg_attr(feature = "std", serde(default))]"#; - let attrs_serde_base64 = r#"#[cfg_attr(feature = "std", serde(with = "crate::base64"))]"#; - let attrs_jsonschema_str = r#"#[cfg_attr(all(feature = "json-schema", feature = "std"), schemars(with = "String"))]"#; + let attrs_serde_base64 = r#"#[cfg_attr(feature = "serde", serde(with = "crate::base64"))]"#; + let attrs_jsonschema_str = r#"#[cfg_attr(all(feature = "json-schema", feature = "serde"), schemars(with = "String"))]"#; tonic_build::configure() .build_client(true) From ff390207ee8af106c06dcf42b337bb42e0975297 Mon Sep 17 00:00:00 2001 From: Romain Ruetschi Date: Thu, 17 Aug 2023 13:55:56 +0200 Subject: [PATCH 6/7] chore: update Cosmos SDK protos to v0.47.3 and IBC-Go protos to v7.2.0 (#122) --- .../features/129-update-protos-7.2.md | 2 + scripts/sync-protobuf.sh | 25 +- src/COSMOS_SDK_COMMIT | 2 +- src/IBC_GO_COMMIT | 2 +- src/lib.rs | 53 +- src/prost/cosmos.app.v1alpha1.rs | 83 + src/prost/cosmos.auth.module.v1.rs | 26 + src/prost/cosmos.auth.v1beta1.rs | 468 +++++- src/prost/cosmos.bank.module.v1.rs | 15 + src/prost/cosmos.bank.v1beta1.rs | 652 +++++++- src/prost/cosmos.base.abci.v1beta1.rs | 23 + src/prost/cosmos.base.kv.v1beta1.rs | 16 - src/prost/cosmos.base.node.v1beta1.rs | 101 ++ src/prost/cosmos.base.snapshots.v1beta1.rs | 119 -- src/prost/cosmos.base.store.v1beta1.rs | 49 - src/prost/cosmos.base.tendermint.v1beta1.rs | 50 +- src/prost/cosmos.base.v1beta1.rs | 16 - src/prost/cosmos.evidence.v1beta1.rs | 4 + src/prost/cosmos.gov.module.v1.rs | 12 + src/prost/cosmos.gov.v1.rs | 527 +++++- src/prost/cosmos.gov.v1beta1.rs | 74 +- src/prost/cosmos.staking.module.v1.rs | 19 + src/prost/cosmos.staking.v1beta1.rs | 230 ++- src/prost/cosmos.tx.config.v1.rs | 14 + src/prost/cosmos.tx.signing.v1beta1.rs | 4 +- src/prost/cosmos.tx.v1beta1.rs | 445 ++++- src/prost/cosmos.upgrade.module.v1.rs | 8 + src/prost/cosmos.upgrade.v1beta1.rs | 14 +- src/prost/google.protobuf.rs | 336 +++- src/prost/ibc.applications.fee.v1.rs | 15 + ...tions.interchain_accounts.controller.v1.rs | 128 +- ...pplications.interchain_accounts.host.v1.rs | 321 ++++ src/prost/ibc.applications.transfer.v1.rs | 273 +++- src/prost/ibc.core.channel.v1.rs | 127 ++ src/prost/ibc.core.client.v1.rs | 112 +- src/prost/ibc.core.commitment.v1.rs | 4 +- src/prost/ibc.core.connection.v1.rs | 110 ++ src/prost/ibc.lightclients.localhost.v1.rs | 12 - src/prost/ibc.lightclients.localhost.v2.rs | 11 + src/prost/ibc.lightclients.solomachine.v1.rs | 268 --- src/prost/ibc.lightclients.solomachine.v3.rs | 125 ++ src/prost/ibc.lightclients.tendermint.v1.rs | 11 +- .../interchain_security.ccv.consumer.v1.rs | 137 +- .../interchain_security.ccv.provider.v1.rs | 374 +++-- src/prost/interchain_security.ccv.v1.rs | 514 +----- src/prost/proto_descriptor.bin | Bin 632684 -> 704088 bytes src/prost/tendermint.abci.rs | 1430 ----------------- tools/proto-compiler/src/cmd/compile.rs | 6 + 48 files changed, 4711 insertions(+), 2656 deletions(-) create mode 100644 .changelog/unreleased/features/129-update-protos-7.2.md create mode 100644 src/prost/cosmos.app.v1alpha1.rs create mode 100644 src/prost/cosmos.auth.module.v1.rs create mode 100644 src/prost/cosmos.bank.module.v1.rs delete mode 100644 src/prost/cosmos.base.kv.v1beta1.rs delete mode 100644 src/prost/cosmos.base.snapshots.v1beta1.rs delete mode 100644 src/prost/cosmos.base.store.v1beta1.rs create mode 100644 src/prost/cosmos.gov.module.v1.rs create mode 100644 src/prost/cosmos.staking.module.v1.rs create mode 100644 src/prost/cosmos.tx.config.v1.rs create mode 100644 src/prost/cosmos.upgrade.module.v1.rs delete mode 100644 src/prost/ibc.lightclients.localhost.v1.rs create mode 100644 src/prost/ibc.lightclients.localhost.v2.rs delete mode 100644 src/prost/ibc.lightclients.solomachine.v1.rs create mode 100644 src/prost/ibc.lightclients.solomachine.v3.rs delete mode 100644 src/prost/tendermint.abci.rs diff --git a/.changelog/unreleased/features/129-update-protos-7.2.md b/.changelog/unreleased/features/129-update-protos-7.2.md new file mode 100644 index 00000000..8b33eb39 --- /dev/null +++ b/.changelog/unreleased/features/129-update-protos-7.2.md @@ -0,0 +1,2 @@ +- Update Cosmos SDK protos to v0.47.3 and IBC-Go protos to v7.2.0 + ([\#129](https://github.com/cosmos/ibc-proto-rs/issues/129)) \ No newline at end of file diff --git a/scripts/sync-protobuf.sh b/scripts/sync-protobuf.sh index f58f23f8..db36619c 100755 --- a/scripts/sync-protobuf.sh +++ b/scripts/sync-protobuf.sh @@ -111,12 +111,11 @@ COSMOS_ICS_DIR=$(mktemp -d /tmp/interchain-security-XXXXXXXX) pushd "$COSMOS_ICS_DIR" git clone "$COSMOS_ICS_GIT" . -git checkout "$COSMOS_ICS_COMMIT" # We have to name the commit as a branch because # proto-compiler uses the branch name as the commit # output. Otherwise it will just output HEAD -git checkout -b "$COSMOS_ICS_COMMIT" +git switch -c "$COSMOS_ICS_COMMIT" cd proto buf mod update @@ -127,12 +126,11 @@ COSMOS_SDK_DIR=$(mktemp -d /tmp/cosmos-sdk-XXXXXXXX) pushd "$COSMOS_SDK_DIR" git clone "$COSMOS_SDK_GIT" . -git checkout "$COSMOS_SDK_COMMIT" # We have to name the commit as a branch because # proto-compiler uses the branch name as the commit # output. Otherwise it will just output HEAD -git checkout -b "$COSMOS_SDK_COMMIT" +git switch -c "$COSMOS_SDK_COMMIT" cd proto buf mod update @@ -141,8 +139,6 @@ popd cat << "EOF" >> "$COSMOS_SDK_DIR/proto-include/cosmos/staking/v1beta1/staking.proto" -import "tendermint/abci/types.proto"; - // InfractionType indicates the infraction type a validator commited. enum InfractionType { option (gogoproto.goproto_enum_prefix) = false; @@ -154,19 +150,13 @@ enum InfractionType { // DOWNTIME defines a validator that missed signing too many blocks. INFRACTION_TYPE_DOWNTIME = 2 [(gogoproto.enumvalue_customname) = "Downtime"]; } - -// ValidatorUpdates defines an array of abci.ValidatorUpdate objects. -message ValidatorUpdates { - repeated tendermint.abci.ValidatorUpdate updates = 1 [(gogoproto.nullable) = false]; -} EOF IBC_GO_DIR=$(mktemp -d /tmp/ibc-go-XXXXXXXX) pushd "$IBC_GO_DIR" git clone "$IBC_GO_GIT" . -git checkout "$IBC_GO_COMMIT" -git checkout -b "$IBC_GO_COMMIT" +git switch -c "$IBC_GO_COMMIT" cd proto buf export -v -o ../proto-include @@ -193,6 +183,15 @@ cargo run --locked -- compile \ --ibc "$IBC_GO_DIR/proto-include" \ --out ../../src/prost +cd ../.. + +# Remove generated ICS23 code because it is not used, +# we instead re-exports the `ics23` crate type definitions. +rm -f src/prost/cosmos.ics23.v1.rs + +# The Tendermint ABCI protos are unused from within ibc-proto +rm -f src/prost/tendermint.abci.rs + # Remove the temporary checkouts of the repositories rm -rf "$COSMOS_ICS_DIR" rm -rf "$COSMOS_SDK_DIR" diff --git a/src/COSMOS_SDK_COMMIT b/src/COSMOS_SDK_COMMIT index 66ca8a20..a0625c6f 100644 --- a/src/COSMOS_SDK_COMMIT +++ b/src/COSMOS_SDK_COMMIT @@ -1 +1 @@ -eb1e3ebf6fcfd56e1f1d8f4c0a6192740bd8a6c1 +666c345ad23ddda9523cc5cd1b71187d91c26f34 diff --git a/src/IBC_GO_COMMIT b/src/IBC_GO_COMMIT index ccedd2c3..f0d03795 100644 --- a/src/IBC_GO_COMMIT +++ b/src/IBC_GO_COMMIT @@ -1 +1 @@ -d32a71b6e13e771ec5e7964ead28b9a6fa2b4472 +d02ab9db8fc80eb5e55041d3d6416370c33441f7 diff --git a/src/lib.rs b/src/lib.rs index 10222773..9e21a9b6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -36,6 +36,11 @@ pub const IBC_GO_COMMIT: &str = include_str!("IBC_GO_COMMIT"); pub const FILE_DESCRIPTOR_SET: &[u8] = include_bytes!("prost/proto_descriptor.bin"); pub mod cosmos { + pub mod app { + pub mod v1alpha1 { + include_proto!("cosmos.app.v1alpha1.rs"); + } + } pub mod auth { pub mod v1beta1 { include_proto!("cosmos.auth.v1beta1.rs"); @@ -52,6 +57,11 @@ pub mod cosmos { pub code_hash: ::prost::alloc::vec::Vec, } } + pub mod module { + pub mod v1 { + include_proto!("cosmos.auth.module.v1.rs"); + } + } } pub mod evidence { pub mod v1beta1 { @@ -62,11 +72,21 @@ pub mod cosmos { pub mod v1beta1 { include_proto!("cosmos.staking.v1beta1.rs"); } + pub mod module { + pub mod v1 { + include_proto!("cosmos.staking.module.v1.rs"); + } + } } pub mod bank { pub mod v1beta1 { include_proto!("cosmos.bank.v1beta1.rs"); } + pub mod module { + pub mod v1 { + include_proto!("cosmos.bank.module.v1.rs"); + } + } } pub mod base { pub mod abci { @@ -74,11 +94,6 @@ pub mod cosmos { include_proto!("cosmos.base.abci.v1beta1.rs"); } } - pub mod kv { - pub mod v1beta1 { - include_proto!("cosmos.base.kv.v1beta1.rs"); - } - } pub mod node { pub mod v1beta1 { include_proto!("cosmos.base.node.v1beta1.rs"); @@ -94,11 +109,6 @@ pub mod cosmos { include_proto!("cosmos.base.reflection.v1beta1.rs"); } } - pub mod store { - pub mod v1beta1 { - include_proto!("cosmos.base.store.v1beta1.rs"); - } - } pub mod v1beta1 { include_proto!("cosmos.base.v1beta1.rs"); } @@ -116,6 +126,11 @@ pub mod cosmos { } } pub mod tx { + pub mod config { + pub mod v1 { + include_proto!("cosmos.tx.config.v1.rs"); + } + } pub mod signing { pub mod v1beta1 { include_proto!("cosmos.tx.signing.v1beta1.rs"); @@ -129,11 +144,21 @@ pub mod cosmos { pub mod v1beta1 { include_proto!("cosmos.upgrade.v1beta1.rs"); } + pub mod module { + pub mod v1 { + include_proto!("cosmos.upgrade.module.v1.rs"); + } + } } pub mod gov { pub mod v1beta1 { include_proto!("cosmos.gov.v1beta1.rs"); } + pub mod module { + pub mod v1 { + include_proto!("cosmos.gov.module.v1.rs"); + } + } } pub mod ics23 { pub use ics23 as v1; @@ -204,13 +229,13 @@ pub mod ibc { } pub mod lightclients { pub mod localhost { - pub mod v1 { - include_proto!("ibc.lightclients.localhost.v1.rs"); + pub mod v2 { + include_proto!("ibc.lightclients.localhost.v2.rs"); } } pub mod solomachine { - pub mod v1 { - include_proto!("ibc.lightclients.solomachine.v1.rs"); + pub mod v3 { + include_proto!("ibc.lightclients.solomachine.v3.rs"); } } pub mod tendermint { diff --git a/src/prost/cosmos.app.v1alpha1.rs b/src/prost/cosmos.app.v1alpha1.rs new file mode 100644 index 00000000..6cbd715c --- /dev/null +++ b/src/prost/cosmos.app.v1alpha1.rs @@ -0,0 +1,83 @@ +/// ModuleDescriptor describes an app module. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ModuleDescriptor { + /// go_import names the package that should be imported by an app to load the + /// module in the runtime module registry. It is required to make debugging + /// of configuration errors easier for users. + #[prost(string, tag = "1")] + pub go_import: ::prost::alloc::string::String, + /// use_package refers to a protobuf package that this module + /// uses and exposes to the world. In an app, only one module should "use" + /// or own a single protobuf package. It is assumed that the module uses + /// all of the .proto files in a single package. + #[prost(message, repeated, tag = "2")] + pub use_package: ::prost::alloc::vec::Vec, + /// can_migrate_from defines which module versions this module can migrate + /// state from. The framework will check that one module version is able to + /// migrate from a previous module version before attempting to update its + /// config. It is assumed that modules can transitively migrate from earlier + /// versions. For instance if v3 declares it can migrate from v2, and v2 + /// declares it can migrate from v1, the framework knows how to migrate + /// from v1 to v3, assuming all 3 module versions are registered at runtime. + #[prost(message, repeated, tag = "3")] + pub can_migrate_from: ::prost::alloc::vec::Vec, +} +/// PackageReference is a reference to a protobuf package used by a module. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PackageReference { + /// name is the fully-qualified name of the package. + #[prost(string, tag = "1")] + pub name: ::prost::alloc::string::String, + /// revision is the optional revision of the package that is being used. + /// Protobuf packages used in Cosmos should generally have a major version + /// as the last part of the package name, ex. foo.bar.baz.v1. + /// The revision of a package can be thought of as the minor version of a + /// package which has additional backwards compatible definitions that weren't + /// present in a previous version. + /// + /// A package should indicate its revision with a source code comment + /// above the package declaration in one of its files containing the + /// text "Revision N" where N is an integer revision. All packages start + /// at revision 0 the first time they are released in a module. + /// + /// When a new version of a module is released and items are added to existing + /// .proto files, these definitions should contain comments of the form + /// "Since: Revision N" where N is an integer revision. + /// + /// When the module runtime starts up, it will check the pinned proto + /// image and panic if there are runtime protobuf definitions that are not + /// in the pinned descriptor which do not have + /// a "Since Revision N" comment or have a "Since Revision N" comment where + /// N is <= to the revision specified here. This indicates that the protobuf + /// files have been updated, but the pinned file descriptor hasn't. + /// + /// If there are items in the pinned file descriptor with a revision + /// greater than the value indicated here, this will also cause a panic + /// as it may mean that the pinned descriptor for a legacy module has been + /// improperly updated or that there is some other versioning discrepancy. + /// Runtime protobuf definitions will also be checked for compatibility + /// with pinned file descriptors to make sure there are no incompatible changes. + /// + /// This behavior ensures that: + /// * pinned proto images are up-to-date + /// * protobuf files are carefully annotated with revision comments which + /// are important good client UX + /// * protobuf files are changed in backwards and forwards compatible ways + #[prost(uint32, tag = "2")] + pub revision: u32, +} +/// MigrateFromInfo is information on a module version that a newer module +/// can migrate from. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MigrateFromInfo { + /// module is the fully-qualified protobuf name of the module config object + /// for the previous module version, ex: "cosmos.group.module.v1.Module". + #[prost(string, tag = "1")] + pub module: ::prost::alloc::string::String, +} diff --git a/src/prost/cosmos.auth.module.v1.rs b/src/prost/cosmos.auth.module.v1.rs new file mode 100644 index 00000000..35a54c0e --- /dev/null +++ b/src/prost/cosmos.auth.module.v1.rs @@ -0,0 +1,26 @@ +/// Module is the config object for the auth module. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Module { + /// bech32_prefix is the bech32 account prefix for the app. + #[prost(string, tag = "1")] + pub bech32_prefix: ::prost::alloc::string::String, + /// module_account_permissions are module account permissions. + #[prost(message, repeated, tag = "2")] + pub module_account_permissions: ::prost::alloc::vec::Vec, + /// authority defines the custom module authority. If not set, defaults to the governance module. + #[prost(string, tag = "3")] + pub authority: ::prost::alloc::string::String, +} +/// ModuleAccountPermission represents permissions for a module account. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ModuleAccountPermission { + /// account is the name of the module. + #[prost(string, tag = "1")] + pub account: ::prost::alloc::string::String, + /// permissions are the permissions this module has. Currently recognized + /// values are minter, burner and staking. + #[prost(string, repeated, tag = "2")] + pub permissions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} diff --git a/src/prost/cosmos.auth.v1beta1.rs b/src/prost/cosmos.auth.v1beta1.rs index c5868704..5ec8078f 100644 --- a/src/prost/cosmos.auth.v1beta1.rs +++ b/src/prost/cosmos.auth.v1beta1.rs @@ -26,6 +26,21 @@ pub struct ModuleAccount { #[prost(string, repeated, tag = "3")] pub permissions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } +/// ModuleCredential represents a unclaimable pubkey for base accounts controlled by modules. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ModuleCredential { + /// module_name is the name of the module used for address derivation (passed into address.Module). + #[prost(string, tag = "1")] + pub module_name: ::prost::alloc::string::String, + /// derivation_keys is for deriving a module account address (passed into address.Module) + /// adding more keys creates sub-account addresses (passed into address.Derive) + #[prost(bytes = "vec", repeated, tag = "2")] + pub derivation_keys: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, +} /// Params defines the parameters for the auth module. #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] @@ -42,6 +57,333 @@ pub struct Params { #[prost(uint64, tag = "5")] pub sig_verify_cost_secp256k1: u64, } +/// MsgUpdateParams is the Msg/UpdateParams request type. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParams { + /// authority is the address that controls the module (defaults to x/gov unless overwritten). + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the x/auth parameters to update. + /// + /// NOTE: All parameters must be supplied. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +/// MsgUpdateParamsResponse defines the response structure for executing a +/// MsgUpdateParams message. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParamsResponse {} +/// Generated client implementations. +#[cfg(feature = "client")] +pub mod msg_client { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + /// Msg defines the x/auth Msg service. + #[derive(Debug, Clone)] + pub struct MsgClient { + inner: tonic::client::Grpc, + } + impl MsgClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl MsgClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> MsgClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + Send + Sync, + { + MsgClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /// UpdateParams defines a (governance) operation for updating the x/auth module + /// parameters. The authority defaults to the x/gov module account. + /// + /// Since: cosmos-sdk 0.47 + pub async fn update_params( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.auth.v1beta1.Msg/UpdateParams", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.auth.v1beta1.Msg", "UpdateParams")); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +#[cfg(feature = "server")] +pub mod msg_server { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. + #[async_trait] + pub trait Msg: Send + Sync + 'static { + /// UpdateParams defines a (governance) operation for updating the x/auth module + /// parameters. The authority defaults to the x/gov module account. + /// + /// Since: cosmos-sdk 0.47 + async fn update_params( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + /// Msg defines the x/auth Msg service. + #[derive(Debug)] + pub struct MsgServer { + inner: _Inner, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + struct _Inner(Arc); + impl MsgServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + let inner = _Inner(inner); + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for MsgServer + where + T: Msg, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + let inner = self.inner.clone(); + match req.uri().path() { + "/cosmos.auth.v1beta1.Msg/UpdateParams" => { + #[allow(non_camel_case_types)] + struct UpdateParamsSvc(pub Arc); + impl tonic::server::UnaryService + for UpdateParamsSvc { + type Response = super::MsgUpdateParamsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).update_params(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = UpdateParamsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + Ok( + http::Response::builder() + .status(200) + .header("grpc-status", "12") + .header("content-type", "application/grpc") + .body(empty_body()) + .unwrap(), + ) + }) + } + } + } + } + impl Clone for MsgServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + impl Clone for _Inner { + fn clone(&self) -> Self { + Self(Arc::clone(&self.0)) + } + } + impl std::fmt::Debug for _Inner { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:?}", self.0) + } + } + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "cosmos.auth.v1beta1.Msg"; + } +} /// QueryAccountsRequest is the request type for the Query/Accounts RPC method. /// /// Since: cosmos-sdk 0.43 @@ -200,11 +542,19 @@ pub struct AddressStringToBytesResponse { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAccountAddressByIdRequest { + /// 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. + #[deprecated] #[prost(int64, tag = "1")] pub id: i64, + /// account_id is the account number of the address to be queried. + /// + /// Since: cosmos-sdk 0.47 + #[prost(uint64, tag = "2")] + pub account_id: u64, } /// QueryAccountAddressByIDResponse is the response type for AccountAddressByID rpc method /// @@ -216,6 +566,28 @@ pub struct QueryAccountAddressByIdResponse { #[prost(string, tag = "1")] pub account_address: ::prost::alloc::string::String, } +/// QueryAccountInfoRequest is the Query/AccountInfo request type. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryAccountInfoRequest { + /// address is the account address string. + #[prost(string, tag = "1")] + pub address: ::prost::alloc::string::String, +} +/// QueryAccountInfoResponse is the Query/AccountInfo response type. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryAccountInfoResponse { + /// info is the account info which is represented by BaseAccount. + #[prost(message, optional, tag = "1")] + pub info: ::core::option::Option, +} /// Generated client implementations. #[cfg(feature = "client")] pub mod query_client { @@ -303,7 +675,10 @@ pub mod query_client { self.inner = self.inner.max_encoding_message_size(limit); self } - /// Accounts returns all the existing accounts + /// Accounts returns all the existing accounts. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. /// /// Since: cosmos-sdk 0.43 pub async fn accounts( @@ -557,6 +932,34 @@ pub mod query_client { ); self.inner.unary(req, path, codec).await } + /// AccountInfo queries account info which is common to all account types. + /// + /// Since: cosmos-sdk 0.47 + pub async fn account_info( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.auth.v1beta1.Query/AccountInfo", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.auth.v1beta1.Query", "AccountInfo")); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -567,7 +970,10 @@ pub mod query_server { /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] pub trait Query: Send + Sync + 'static { - /// Accounts returns all the existing accounts + /// Accounts returns all the existing accounts. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. /// /// Since: cosmos-sdk 0.43 async fn accounts( @@ -651,6 +1057,16 @@ pub mod query_server { tonic::Response, tonic::Status, >; + /// AccountInfo queries account info which is common to all account types. + /// + /// Since: cosmos-sdk 0.47 + async fn account_info( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// Query defines the gRPC querier service. #[derive(Debug)] @@ -1142,6 +1558,52 @@ pub mod query_server { }; Box::pin(fut) } + "/cosmos.auth.v1beta1.Query/AccountInfo" => { + #[allow(non_camel_case_types)] + struct AccountInfoSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService + for AccountInfoSvc { + type Response = super::QueryAccountInfoResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).account_info(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = AccountInfoSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( @@ -1188,7 +1650,7 @@ pub mod query_server { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { - /// params defines all the paramaters of the module. + /// params defines all the parameters of the module. #[prost(message, optional, tag = "1")] pub params: ::core::option::Option, /// accounts are the accounts present at genesis. diff --git a/src/prost/cosmos.bank.module.v1.rs b/src/prost/cosmos.bank.module.v1.rs new file mode 100644 index 00000000..035daa71 --- /dev/null +++ b/src/prost/cosmos.bank.module.v1.rs @@ -0,0 +1,15 @@ +/// Module is the config object of the bank module. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Module { + /// blocked_module_accounts_override configures exceptional module accounts which should be blocked from receiving funds. + /// If left empty it defaults to the list of account names supplied in the auth module configuration as + /// module_account_permissions + #[prost(string, repeated, tag = "1")] + pub blocked_module_accounts_override: ::prost::alloc::vec::Vec< + ::prost::alloc::string::String, + >, + /// authority defines the custom module authority. If not set, defaults to the governance module. + #[prost(string, tag = "2")] + pub authority: ::prost::alloc::string::String, +} diff --git a/src/prost/cosmos.bank.v1beta1.rs b/src/prost/cosmos.bank.v1beta1.rs index cd2e1837..2a82a9dd 100644 --- a/src/prost/cosmos.bank.v1beta1.rs +++ b/src/prost/cosmos.bank.v1beta1.rs @@ -3,6 +3,12 @@ #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { + /// 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. + #[deprecated] #[prost(message, repeated, tag = "1")] pub send_enabled: ::prost::alloc::vec::Vec, #[prost(bool, tag = "2")] @@ -132,6 +138,8 @@ pub struct MsgSendResponse {} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgMultiSend { + /// Inputs, despite being `repeated`, only allows one sender input. This is + /// checked in MsgMultiSend's ValidateBasic. #[prost(message, repeated, tag = "1")] pub inputs: ::prost::alloc::vec::Vec, #[prost(message, repeated, tag = "2")] @@ -142,6 +150,61 @@ pub struct MsgMultiSend { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgMultiSendResponse {} +/// MsgUpdateParams is the Msg/UpdateParams request type. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParams { + /// authority is the address that controls the module (defaults to x/gov unless overwritten). + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the x/bank parameters to update. + /// + /// NOTE: All parameters must be supplied. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +/// MsgUpdateParamsResponse defines the response structure for executing a +/// MsgUpdateParams message. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParamsResponse {} +/// MsgSetSendEnabled is the Msg/SetSendEnabled request type. +/// +/// Only entries to add/update/delete need to be included. +/// Existing SendEnabled entries that are not included in this +/// message are left unchanged. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgSetSendEnabled { + /// authority is the address that controls the module. + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// send_enabled is the list of entries to add or update. + #[prost(message, repeated, tag = "2")] + pub send_enabled: ::prost::alloc::vec::Vec, + /// use_default_for is a list of denoms that should use the params.default_send_enabled value. + /// Denoms listed here will have their SendEnabled entries deleted. + /// If a denom is included that doesn't have a SendEnabled entry, + /// it will be ignored. + #[prost(string, repeated, tag = "3")] + pub use_default_for: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +/// MsgSetSendEnabledResponse defines the Msg/SetSendEnabled response type. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgSetSendEnabledResponse {} /// Generated client implementations. #[cfg(feature = "client")] pub mod msg_client { @@ -281,6 +344,66 @@ pub mod msg_client { .insert(GrpcMethod::new("cosmos.bank.v1beta1.Msg", "MultiSend")); self.inner.unary(req, path, codec).await } + /// UpdateParams defines a governance operation for updating the x/bank module parameters. + /// The authority is defined in the keeper. + /// + /// Since: cosmos-sdk 0.47 + pub async fn update_params( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.bank.v1beta1.Msg/UpdateParams", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.bank.v1beta1.Msg", "UpdateParams")); + self.inner.unary(req, path, codec).await + } + /// SetSendEnabled is a governance operation for setting the SendEnabled flag + /// on any number of Denoms. Only the entries to add or update should be + /// included. Entries that already exist in the store, but that aren't + /// included in this message, will be left unchanged. + /// + /// Since: cosmos-sdk 0.47 + pub async fn set_send_enabled( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.bank.v1beta1.Msg/SetSendEnabled", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.bank.v1beta1.Msg", "SetSendEnabled")); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -304,6 +427,30 @@ pub mod msg_server { tonic::Response, tonic::Status, >; + /// UpdateParams defines a governance operation for updating the x/bank module parameters. + /// The authority is defined in the keeper. + /// + /// Since: cosmos-sdk 0.47 + async fn update_params( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// SetSendEnabled is a governance operation for setting the SendEnabled flag + /// on any number of Denoms. Only the entries to add or update should be + /// included. Entries that already exist in the store, but that aren't + /// included in this message, will be left unchanged. + /// + /// Since: cosmos-sdk 0.47 + async fn set_send_enabled( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// Msg defines the bank Msg service. #[derive(Debug)] @@ -469,6 +616,94 @@ pub mod msg_server { }; Box::pin(fut) } + "/cosmos.bank.v1beta1.Msg/UpdateParams" => { + #[allow(non_camel_case_types)] + struct UpdateParamsSvc(pub Arc); + impl tonic::server::UnaryService + for UpdateParamsSvc { + type Response = super::MsgUpdateParamsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).update_params(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = UpdateParamsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/cosmos.bank.v1beta1.Msg/SetSendEnabled" => { + #[allow(non_camel_case_types)] + struct SetSendEnabledSvc(pub Arc); + impl tonic::server::UnaryService + for SetSendEnabledSvc { + type Response = super::MsgSetSendEnabledResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).set_send_enabled(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = SetSendEnabledSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( @@ -544,6 +779,11 @@ pub struct QueryAllBalancesRequest { pub pagination: ::core::option::Option< super::super::base::query::v1beta1::PageRequest, >, + /// resolve_denom is the flag to resolve the denom into a human-readable form from the metadata. + /// + /// Since: cosmos-sdk 0.50 + #[prost(bool, tag = "3")] + pub resolve_denom: bool, } /// QueryAllBalancesResponse is the response type for the Query/AllBalances RPC /// method. @@ -594,6 +834,33 @@ pub struct QuerySpendableBalancesResponse { super::super::base::query::v1beta1::PageResponse, >, } +/// QuerySpendableBalanceByDenomRequest defines the gRPC request structure for +/// querying an account's spendable balance for a specific denom. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QuerySpendableBalanceByDenomRequest { + /// address is the address to query balances for. + #[prost(string, tag = "1")] + pub address: ::prost::alloc::string::String, + /// denom is the coin denom to query balances for. + #[prost(string, tag = "2")] + pub denom: ::prost::alloc::string::String, +} +/// QuerySpendableBalanceByDenomResponse defines the gRPC response structure for +/// querying an account's spendable balance for a specific denom. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QuerySpendableBalanceByDenomResponse { + /// balance is the balance of the coin. + #[prost(message, optional, tag = "1")] + pub balance: ::core::option::Option, +} /// QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC /// method. #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] @@ -653,6 +920,7 @@ pub struct QueryParamsRequest {} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { + /// params provides the parameters of the bank module. #[prost(message, optional, tag = "1")] pub params: ::core::option::Option, } @@ -701,6 +969,26 @@ pub struct QueryDenomMetadataResponse { #[prost(message, optional, tag = "1")] pub metadata: ::core::option::Option, } +/// QueryDenomMetadataByQueryStringRequest is the request type for the Query/DenomMetadata RPC method. +/// Identical with QueryDenomMetadataRequest but receives denom as query string. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryDenomMetadataByQueryStringRequest { + /// denom is the coin denom to query the metadata for. + #[prost(string, tag = "1")] + pub denom: ::prost::alloc::string::String, +} +/// QueryDenomMetadataByQueryStringResponse is the response type for the Query/DenomMetadata RPC +/// method. Identical with QueryDenomMetadataResponse but receives denom as query string in request. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryDenomMetadataByQueryStringResponse { + /// metadata describes and provides all the client information for the requested token. + #[prost(message, optional, tag = "1")] + pub metadata: ::core::option::Option, +} /// QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query, /// which queries for a paginated set of all account holders of a particular /// denomination. @@ -748,6 +1036,39 @@ pub struct QueryDenomOwnersResponse { super::super::base::query::v1beta1::PageResponse, >, } +/// QuerySendEnabledRequest defines the RPC request for looking up SendEnabled entries. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QuerySendEnabledRequest { + /// denoms is the specific denoms you want look up. Leave empty to get all entries. + #[prost(string, repeated, tag = "1")] + pub denoms: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// pagination defines an optional pagination for the request. This field is + /// only read if the denoms field is empty. + #[prost(message, optional, tag = "99")] + pub pagination: ::core::option::Option< + super::super::base::query::v1beta1::PageRequest, + >, +} +/// QuerySendEnabledResponse defines the RPC response of a SendEnable query. +/// +/// Since: cosmos-sdk 0.47 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QuerySendEnabledResponse { + #[prost(message, repeated, tag = "1")] + pub send_enabled: ::prost::alloc::vec::Vec, + /// pagination defines the pagination in the response. This field is only + /// populated if the denoms field in the request is empty. + #[prost(message, optional, tag = "99")] + pub pagination: ::core::option::Option< + super::super::base::query::v1beta1::PageResponse, + >, +} /// Generated client implementations. #[cfg(feature = "client")] pub mod query_client { @@ -862,6 +1183,9 @@ pub mod query_client { self.inner.unary(req, path, codec).await } /// AllBalances queries the balance of all coins for a single account. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. pub async fn all_balances( &mut self, request: impl tonic::IntoRequest, @@ -887,9 +1211,12 @@ pub mod query_client { .insert(GrpcMethod::new("cosmos.bank.v1beta1.Query", "AllBalances")); self.inner.unary(req, path, codec).await } - /// SpendableBalances queries the spenable balance of all coins for a single + /// SpendableBalances queries the spendable balance of all coins for a single /// account. /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. + /// /// Since: cosmos-sdk 0.46 pub async fn spendable_balances( &mut self, @@ -918,7 +1245,47 @@ pub mod query_client { ); self.inner.unary(req, path, codec).await } + /// SpendableBalanceByDenom queries the spendable balance of a single denom for + /// a single account. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. + /// + /// Since: cosmos-sdk 0.47 + pub async fn spendable_balance_by_denom( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.bank.v1beta1.Query/SpendableBalanceByDenom", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "cosmos.bank.v1beta1.Query", + "SpendableBalanceByDenom", + ), + ); + self.inner.unary(req, path, codec).await + } /// TotalSupply queries the total supply of all coins. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. pub async fn total_supply( &mut self, request: impl tonic::IntoRequest, @@ -945,6 +1312,9 @@ pub mod query_client { self.inner.unary(req, path, codec).await } /// SupplyOf queries the supply of a single coin. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. pub async fn supply_of( &mut self, request: impl tonic::IntoRequest, @@ -1022,6 +1392,39 @@ pub mod query_client { .insert(GrpcMethod::new("cosmos.bank.v1beta1.Query", "DenomMetadata")); self.inner.unary(req, path, codec).await } + /// DenomsMetadata queries the client metadata of a given coin denomination. + pub async fn denom_metadata_by_query_string( + &mut self, + request: impl tonic::IntoRequest< + super::QueryDenomMetadataByQueryStringRequest, + >, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.bank.v1beta1.Query/DenomMetadataByQueryString", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "cosmos.bank.v1beta1.Query", + "DenomMetadataByQueryString", + ), + ); + self.inner.unary(req, path, codec).await + } /// DenomsMetadata queries the client metadata for all registered coin /// denominations. pub async fn denoms_metadata( @@ -1052,6 +1455,9 @@ pub mod query_client { /// DenomOwners queries for all account addresses that own a particular token /// denomination. /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. + /// /// Since: cosmos-sdk 0.46 pub async fn denom_owners( &mut self, @@ -1078,6 +1484,38 @@ pub mod query_client { .insert(GrpcMethod::new("cosmos.bank.v1beta1.Query", "DenomOwners")); self.inner.unary(req, path, codec).await } + /// SendEnabled queries for SendEnabled entries. + /// + /// 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. + /// + /// Since: cosmos-sdk 0.47 + pub async fn send_enabled( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.bank.v1beta1.Query/SendEnabled", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.bank.v1beta1.Query", "SendEnabled")); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -1097,6 +1535,9 @@ pub mod query_server { tonic::Status, >; /// AllBalances queries the balance of all coins for a single account. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. async fn all_balances( &self, request: tonic::Request, @@ -1104,9 +1545,12 @@ pub mod query_server { tonic::Response, tonic::Status, >; - /// SpendableBalances queries the spenable balance of all coins for a single + /// SpendableBalances queries the spendable balance of all coins for a single /// account. /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. + /// /// Since: cosmos-sdk 0.46 async fn spendable_balances( &self, @@ -1115,7 +1559,24 @@ pub mod query_server { tonic::Response, tonic::Status, >; + /// SpendableBalanceByDenom queries the spendable balance of a single denom for + /// a single account. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. + /// + /// Since: cosmos-sdk 0.47 + async fn spendable_balance_by_denom( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; /// TotalSupply queries the total supply of all coins. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. async fn total_supply( &self, request: tonic::Request, @@ -1124,6 +1585,9 @@ pub mod query_server { tonic::Status, >; /// SupplyOf queries the supply of a single coin. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. async fn supply_of( &self, request: tonic::Request, @@ -1147,6 +1611,14 @@ pub mod query_server { tonic::Response, tonic::Status, >; + /// DenomsMetadata queries the client metadata of a given coin denomination. + async fn denom_metadata_by_query_string( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; /// DenomsMetadata queries the client metadata for all registered coin /// denominations. async fn denoms_metadata( @@ -1159,6 +1631,9 @@ pub mod query_server { /// DenomOwners queries for all account addresses that own a particular token /// denomination. /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. + /// /// Since: cosmos-sdk 0.46 async fn denom_owners( &self, @@ -1167,6 +1642,20 @@ pub mod query_server { tonic::Response, tonic::Status, >; + /// SendEnabled queries for SendEnabled entries. + /// + /// 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. + /// + /// Since: cosmos-sdk 0.47 + async fn send_enabled( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// Query defines the gRPC querier service. #[derive(Debug)] @@ -1384,6 +1873,55 @@ pub mod query_server { }; Box::pin(fut) } + "/cosmos.bank.v1beta1.Query/SpendableBalanceByDenom" => { + #[allow(non_camel_case_types)] + struct SpendableBalanceByDenomSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService< + super::QuerySpendableBalanceByDenomRequest, + > for SpendableBalanceByDenomSvc { + type Response = super::QuerySpendableBalanceByDenomResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::QuerySpendableBalanceByDenomRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).spendable_balance_by_denom(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = SpendableBalanceByDenomSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } "/cosmos.bank.v1beta1.Query/TotalSupply" => { #[allow(non_camel_case_types)] struct TotalSupplySvc(pub Arc); @@ -1562,6 +2100,55 @@ pub mod query_server { }; Box::pin(fut) } + "/cosmos.bank.v1beta1.Query/DenomMetadataByQueryString" => { + #[allow(non_camel_case_types)] + struct DenomMetadataByQueryStringSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService< + super::QueryDenomMetadataByQueryStringRequest, + > for DenomMetadataByQueryStringSvc { + type Response = super::QueryDenomMetadataByQueryStringResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::QueryDenomMetadataByQueryStringRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).denom_metadata_by_query_string(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = DenomMetadataByQueryStringSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } "/cosmos.bank.v1beta1.Query/DenomsMetadata" => { #[allow(non_camel_case_types)] struct DenomsMetadataSvc(pub Arc); @@ -1654,6 +2241,52 @@ pub mod query_server { }; Box::pin(fut) } + "/cosmos.bank.v1beta1.Query/SendEnabled" => { + #[allow(non_camel_case_types)] + struct SendEnabledSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService + for SendEnabledSvc { + type Response = super::QuerySendEnabledResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).send_enabled(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = SendEnabledSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( @@ -1705,13 +2338,19 @@ pub mod query_server { pub struct SendAuthorization { #[prost(message, repeated, tag = "1")] pub spend_limit: ::prost::alloc::vec::Vec, + /// allow_list specifies an optional list of addresses to whom the grantee can send tokens on behalf of the + /// granter. If omitted, any recipient is allowed. + /// + /// Since: cosmos-sdk 0.47 + #[prost(string, repeated, tag = "2")] + pub allow_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } /// GenesisState defines the bank module's genesis state. #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { - /// params defines all the paramaters of the module. + /// params defines all the parameters of the module. #[prost(message, optional, tag = "1")] pub params: ::core::option::Option, /// balances is an array containing the balances of all the accounts. @@ -1721,9 +2360,14 @@ pub struct GenesisState { /// balances. Otherwise, it will be used to validate that the sum of the balances equals this amount. #[prost(message, repeated, tag = "3")] pub supply: ::prost::alloc::vec::Vec, - /// denom_metadata defines the metadata of the differents coins. + /// denom_metadata defines the metadata of the different coins. #[prost(message, repeated, tag = "4")] pub denom_metadata: ::prost::alloc::vec::Vec, + /// send_enabled defines the denoms where send is enabled or disabled. + /// + /// Since: cosmos-sdk 0.47 + #[prost(message, repeated, tag = "5")] + pub send_enabled: ::prost::alloc::vec::Vec, } /// Balance defines an account address and balance pair used in the bank module's /// genesis state. diff --git a/src/prost/cosmos.base.abci.v1beta1.rs b/src/prost/cosmos.base.abci.v1beta1.rs index b76eab19..0dced31e 100644 --- a/src/prost/cosmos.base.abci.v1beta1.rs +++ b/src/prost/cosmos.base.abci.v1beta1.rs @@ -181,3 +181,26 @@ pub struct SearchTxsResult { #[prost(message, repeated, tag = "6")] pub txs: ::prost::alloc::vec::Vec, } +/// SearchBlocksResult defines a structure for querying blocks pageable +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SearchBlocksResult { + /// Count of all blocks + #[prost(int64, tag = "1")] + pub total_count: i64, + /// Count of blocks in current page + #[prost(int64, tag = "2")] + pub count: i64, + /// Index of current page, start from 1 + #[prost(int64, tag = "3")] + pub page_number: i64, + /// Count of total pages + #[prost(int64, tag = "4")] + pub page_total: i64, + /// Max count blocks per page + #[prost(int64, tag = "5")] + pub limit: i64, + /// List of blocks in current page + #[prost(message, repeated, tag = "6")] + pub blocks: ::prost::alloc::vec::Vec<::tendermint_proto::types::Block>, +} diff --git a/src/prost/cosmos.base.kv.v1beta1.rs b/src/prost/cosmos.base.kv.v1beta1.rs deleted file mode 100644 index 60bda62f..00000000 --- a/src/prost/cosmos.base.kv.v1beta1.rs +++ /dev/null @@ -1,16 +0,0 @@ -/// Pairs defines a repeated slice of Pair objects. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Pairs { - #[prost(message, repeated, tag = "1")] - pub pairs: ::prost::alloc::vec::Vec, -} -/// Pair defines a key/value bytes tuple. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Pair { - #[prost(bytes = "vec", tag = "1")] - pub key: ::prost::alloc::vec::Vec, - #[prost(bytes = "vec", tag = "2")] - pub value: ::prost::alloc::vec::Vec, -} diff --git a/src/prost/cosmos.base.node.v1beta1.rs b/src/prost/cosmos.base.node.v1beta1.rs index bb478e7e..d839b4ba 100644 --- a/src/prost/cosmos.base.node.v1beta1.rs +++ b/src/prost/cosmos.base.node.v1beta1.rs @@ -8,6 +8,37 @@ pub struct ConfigRequest {} pub struct ConfigResponse { #[prost(string, tag = "1")] pub minimum_gas_price: ::prost::alloc::string::String, + /// pruning settings + #[prost(string, tag = "2")] + pub pruning_keep_recent: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub pruning_interval: ::prost::alloc::string::String, +} +/// StateRequest defines the request structure for the status of a node. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct StatusRequest {} +/// StateResponse defines the response structure for the status of a node. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct StatusResponse { + /// earliest block height available in the store + #[prost(uint64, tag = "1")] + pub earliest_store_height: u64, + /// current block height + #[prost(uint64, tag = "2")] + pub height: u64, + /// block height timestamp + #[prost(message, optional, tag = "3")] + pub timestamp: ::core::option::Option< + super::super::super::super::google::protobuf::Timestamp, + >, + /// app hash of the current block + #[prost(bytes = "vec", tag = "4")] + pub app_hash: ::prost::alloc::vec::Vec, + /// validator hash provided by the consensus header + #[prost(bytes = "vec", tag = "5")] + pub validator_hash: ::prost::alloc::vec::Vec, } /// Generated client implementations. #[cfg(feature = "client")] @@ -119,6 +150,29 @@ pub mod service_client { .insert(GrpcMethod::new("cosmos.base.node.v1beta1.Service", "Config")); self.inner.unary(req, path, codec).await } + /// Status queries for the node status. + pub async fn status( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.base.node.v1beta1.Service/Status", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.base.node.v1beta1.Service", "Status")); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -134,6 +188,11 @@ pub mod service_server { &self, request: tonic::Request, ) -> std::result::Result, tonic::Status>; + /// Status queries for the node status. + async fn status( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; } /// Service defines the gRPC querier service for node related queries. #[derive(Debug)] @@ -257,6 +316,48 @@ pub mod service_server { }; Box::pin(fut) } + "/cosmos.base.node.v1beta1.Service/Status" => { + #[allow(non_camel_case_types)] + struct StatusSvc(pub Arc); + impl tonic::server::UnaryService + for StatusSvc { + type Response = super::StatusResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { (*inner).status(request).await }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = StatusSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( diff --git a/src/prost/cosmos.base.snapshots.v1beta1.rs b/src/prost/cosmos.base.snapshots.v1beta1.rs deleted file mode 100644 index 00f64eaf..00000000 --- a/src/prost/cosmos.base.snapshots.v1beta1.rs +++ /dev/null @@ -1,119 +0,0 @@ -/// Snapshot contains Tendermint state sync snapshot info. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Snapshot { - #[prost(uint64, tag = "1")] - pub height: u64, - #[prost(uint32, tag = "2")] - pub format: u32, - #[prost(uint32, tag = "3")] - pub chunks: u32, - #[prost(bytes = "vec", tag = "4")] - pub hash: ::prost::alloc::vec::Vec, - #[prost(message, optional, tag = "5")] - pub metadata: ::core::option::Option, -} -/// Metadata contains SDK-specific snapshot metadata. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Metadata { - /// SHA-256 chunk hashes - #[prost(bytes = "vec", repeated, tag = "1")] - pub chunk_hashes: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, -} -/// SnapshotItem is an item contained in a rootmulti.Store snapshot. -/// -/// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SnapshotItem { - /// item is the specific type of snapshot item. - #[prost(oneof = "snapshot_item::Item", tags = "1, 2, 3, 4, 5, 6")] - pub item: ::core::option::Option, -} -/// Nested message and enum types in `SnapshotItem`. -pub mod snapshot_item { - /// item is the specific type of snapshot item. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum Item { - #[prost(message, tag = "1")] - Store(super::SnapshotStoreItem), - #[prost(message, tag = "2")] - Iavl(super::SnapshotIavlItem), - #[prost(message, tag = "3")] - Extension(super::SnapshotExtensionMeta), - #[prost(message, tag = "4")] - ExtensionPayload(super::SnapshotExtensionPayload), - #[prost(message, tag = "5")] - Kv(super::SnapshotKvItem), - #[prost(message, tag = "6")] - Schema(super::SnapshotSchema), - } -} -/// SnapshotStoreItem contains metadata about a snapshotted store. -/// -/// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SnapshotStoreItem { - #[prost(string, tag = "1")] - pub name: ::prost::alloc::string::String, -} -/// SnapshotIAVLItem is an exported IAVL node. -/// -/// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SnapshotIavlItem { - #[prost(bytes = "vec", tag = "1")] - pub key: ::prost::alloc::vec::Vec, - #[prost(bytes = "vec", tag = "2")] - pub value: ::prost::alloc::vec::Vec, - /// version is block height - #[prost(int64, tag = "3")] - pub version: i64, - /// height is depth of the tree. - #[prost(int32, tag = "4")] - pub height: i32, -} -/// SnapshotExtensionMeta contains metadata about an external snapshotter. -/// -/// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SnapshotExtensionMeta { - #[prost(string, tag = "1")] - pub name: ::prost::alloc::string::String, - #[prost(uint32, tag = "2")] - pub format: u32, -} -/// SnapshotExtensionPayload contains payloads of an external snapshotter. -/// -/// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SnapshotExtensionPayload { - #[prost(bytes = "vec", tag = "1")] - pub payload: ::prost::alloc::vec::Vec, -} -/// SnapshotKVItem is an exported Key/Value Pair -/// -/// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SnapshotKvItem { - #[prost(bytes = "vec", tag = "1")] - pub key: ::prost::alloc::vec::Vec, - #[prost(bytes = "vec", tag = "2")] - pub value: ::prost::alloc::vec::Vec, -} -/// SnapshotSchema is an exported schema of smt store -/// -/// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SnapshotSchema { - #[prost(bytes = "vec", repeated, tag = "1")] - pub keys: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, -} diff --git a/src/prost/cosmos.base.store.v1beta1.rs b/src/prost/cosmos.base.store.v1beta1.rs deleted file mode 100644 index 9aac646b..00000000 --- a/src/prost/cosmos.base.store.v1beta1.rs +++ /dev/null @@ -1,49 +0,0 @@ -/// CommitInfo defines commit information used by the multi-store when committing -/// a version/height. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct CommitInfo { - #[prost(int64, tag = "1")] - pub version: i64, - #[prost(message, repeated, tag = "2")] - pub store_infos: ::prost::alloc::vec::Vec, -} -/// StoreInfo defines store-specific commit information. It contains a reference -/// between a store name and the commit ID. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct StoreInfo { - #[prost(string, tag = "1")] - pub name: ::prost::alloc::string::String, - #[prost(message, optional, tag = "2")] - pub commit_id: ::core::option::Option, -} -/// CommitID defines the committment information when a specific store is -/// committed. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct CommitId { - #[prost(int64, tag = "1")] - pub version: i64, - #[prost(bytes = "vec", tag = "2")] - pub hash: ::prost::alloc::vec::Vec, -} -/// StoreKVPair is a KVStore KVPair used for listening to state changes (Sets and Deletes) -/// It optionally includes the StoreKey for the originating KVStore and a Boolean flag to distinguish between Sets and -/// Deletes -/// -/// Since: cosmos-sdk 0.43 -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct StoreKvPair { - /// the store key for the KVStore this pair originates from - #[prost(string, tag = "1")] - pub store_key: ::prost::alloc::string::String, - /// true indicates a delete operation, false indicates a set operation - #[prost(bool, tag = "2")] - pub delete: bool, - #[prost(bytes = "vec", tag = "3")] - pub key: ::prost::alloc::vec::Vec, - #[prost(bytes = "vec", tag = "4")] - pub value: ::prost::alloc::vec::Vec, -} diff --git a/src/prost/cosmos.base.tendermint.v1beta1.rs b/src/prost/cosmos.base.tendermint.v1beta1.rs index 4efef5d7..0e9b9a3f 100644 --- a/src/prost/cosmos.base.tendermint.v1beta1.rs +++ b/src/prost/cosmos.base.tendermint.v1beta1.rs @@ -68,8 +68,7 @@ pub struct Header { #[prost(string, tag = "14")] pub proposer_address: ::prost::alloc::string::String, } -/// GetValidatorSetByHeightRequest is the request type for the -/// Query/GetValidatorSetByHeight RPC method. +/// GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetValidatorSetByHeightRequest { @@ -79,8 +78,7 @@ pub struct GetValidatorSetByHeightRequest { #[prost(message, optional, tag = "2")] pub pagination: ::core::option::Option, } -/// GetValidatorSetByHeightResponse is the response type for the -/// Query/GetValidatorSetByHeight RPC method. +/// GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetValidatorSetByHeightResponse { @@ -92,8 +90,7 @@ pub struct GetValidatorSetByHeightResponse { #[prost(message, optional, tag = "3")] pub pagination: ::core::option::Option, } -/// GetLatestValidatorSetRequest is the request type for the -/// Query/GetValidatorSetByHeight RPC method. +/// GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetLatestValidatorSetRequest { @@ -101,8 +98,7 @@ pub struct GetLatestValidatorSetRequest { #[prost(message, optional, tag = "1")] pub pagination: ::core::option::Option, } -/// GetLatestValidatorSetResponse is the response type for the -/// Query/GetValidatorSetByHeight RPC method. +/// GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetLatestValidatorSetResponse { @@ -129,16 +125,14 @@ pub struct Validator { #[prost(int64, tag = "4")] pub proposer_priority: i64, } -/// GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight -/// RPC method. +/// GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetBlockByHeightRequest { #[prost(int64, tag = "1")] pub height: i64, } -/// GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight -/// RPC method. +/// GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetBlockByHeightResponse { @@ -151,13 +145,11 @@ pub struct GetBlockByHeightResponse { #[prost(message, optional, tag = "3")] pub sdk_block: ::core::option::Option, } -/// GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC -/// method. +/// GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetLatestBlockRequest {} -/// GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC -/// method. +/// GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetLatestBlockResponse { @@ -185,8 +177,7 @@ pub struct GetSyncingResponse { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetNodeInfoRequest {} -/// GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC -/// method. +/// GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC method. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetNodeInfoResponse { @@ -246,8 +237,7 @@ pub struct AbciQueryRequest { #[prost(bool, tag = "4")] pub prove: bool, } -/// ABCIQueryResponse defines the response structure for the ABCIQuery gRPC -/// query. +/// ABCIQueryResponse defines the response structure for the ABCIQuery gRPC query. /// /// Note: This type is a duplicate of the ResponseQuery proto type defined in /// Tendermint. @@ -276,11 +266,10 @@ pub struct AbciQueryResponse { pub codespace: ::prost::alloc::string::String, } /// ProofOp defines an operation used for calculating Merkle root. The data could -/// be arbitrary format, providing nessecary data for example neighbouring node +/// 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. +/// Note: This type is a duplicate of the ProofOp proto type defined in Tendermint. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProofOp { @@ -293,8 +282,7 @@ pub struct ProofOp { } /// ProofOps is Merkle proof defined by the list of ProofOps. /// -/// Note: This type is a duplicate of the ProofOps proto type defined in -/// Tendermint. +/// Note: This type is a duplicate of the ProofOps proto type defined in Tendermint. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProofOps { @@ -574,9 +562,9 @@ pub mod service_client { ); self.inner.unary(req, path, codec).await } - /// 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. + /// 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. /// /// Since: cosmos-sdk 0.46 pub async fn abci_query( @@ -667,9 +655,9 @@ pub mod service_server { tonic::Response, tonic::Status, >; - /// 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. + /// 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. /// /// Since: cosmos-sdk 0.46 async fn abci_query( diff --git a/src/prost/cosmos.base.v1beta1.rs b/src/prost/cosmos.base.v1beta1.rs index 6cedf8eb..a05807e5 100644 --- a/src/prost/cosmos.base.v1beta1.rs +++ b/src/prost/cosmos.base.v1beta1.rs @@ -24,19 +24,3 @@ pub struct DecCoin { #[prost(string, tag = "2")] pub amount: ::prost::alloc::string::String, } -/// IntProto defines a Protobuf wrapper around an Int object. -#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct IntProto { - #[prost(string, tag = "1")] - pub int: ::prost::alloc::string::String, -} -/// DecProto defines a Protobuf wrapper around a Dec object. -#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct DecProto { - #[prost(string, tag = "1")] - pub dec: ::prost::alloc::string::String, -} diff --git a/src/prost/cosmos.evidence.v1beta1.rs b/src/prost/cosmos.evidence.v1beta1.rs index bf067bba..66ee4789 100644 --- a/src/prost/cosmos.evidence.v1beta1.rs +++ b/src/prost/cosmos.evidence.v1beta1.rs @@ -3,12 +3,16 @@ #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Equivocation { + /// height is the equivocation height. #[prost(int64, tag = "1")] pub height: i64, + /// time is the equivocation time. #[prost(message, optional, tag = "2")] pub time: ::core::option::Option, + /// power is the equivocation validator power. #[prost(int64, tag = "3")] pub power: i64, + /// consensus_address is the equivocation validator consensus address. #[prost(string, tag = "4")] pub consensus_address: ::prost::alloc::string::String, } diff --git a/src/prost/cosmos.gov.module.v1.rs b/src/prost/cosmos.gov.module.v1.rs new file mode 100644 index 00000000..86a21aca --- /dev/null +++ b/src/prost/cosmos.gov.module.v1.rs @@ -0,0 +1,12 @@ +/// Module is the config object of the gov module. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Module { + /// max_metadata_len defines the maximum proposal metadata length. + /// Defaults to 255 if not explicitly set. + #[prost(uint64, tag = "1")] + pub max_metadata_len: u64, + /// authority defines the custom module authority. If not set, defaults to the governance module. + #[prost(string, tag = "2")] + pub authority: ::prost::alloc::string::String, +} diff --git a/src/prost/cosmos.gov.v1.rs b/src/prost/cosmos.gov.v1.rs index cc0e6864..7547cced 100644 --- a/src/prost/cosmos.gov.v1.rs +++ b/src/prost/cosmos.gov.v1.rs @@ -2,8 +2,10 @@ #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WeightedVoteOption { + /// option defines the valid vote options, it must not contain duplicate vote options. #[prost(enumeration = "VoteOption", tag = "1")] pub option: i32, + /// weight is the vote weight associated with the vote option. #[prost(string, tag = "2")] pub weight: ::prost::alloc::string::String, } @@ -12,10 +14,13 @@ pub struct WeightedVoteOption { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Deposit { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, + /// depositor defines the deposit addresses from the proposals. #[prost(string, tag = "2")] pub depositor: ::prost::alloc::string::String, + /// amount to be deposited by depositor. #[prost(message, repeated, tag = "3")] pub amount: ::prost::alloc::vec::Vec, } @@ -23,10 +28,13 @@ pub struct Deposit { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Proposal { + /// id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub id: u64, + /// messages are the arbitrary messages to be executed if the proposal passes. #[prost(message, repeated, tag = "2")] pub messages: ::prost::alloc::vec::Vec, + /// status defines the proposal status. #[prost(enumeration = "ProposalStatus", tag = "3")] pub status: i32, /// final_tally_result is the final tally result of the proposal. When @@ -34,38 +42,73 @@ pub struct Proposal { /// proposal's voting period has ended. #[prost(message, optional, tag = "4")] pub final_tally_result: ::core::option::Option, + /// submit_time is the time of proposal submission. #[prost(message, optional, tag = "5")] pub submit_time: ::core::option::Option< super::super::super::google::protobuf::Timestamp, >, + /// deposit_end_time is the end time for deposition. #[prost(message, optional, tag = "6")] pub deposit_end_time: ::core::option::Option< super::super::super::google::protobuf::Timestamp, >, + /// total_deposit is the total deposit on the proposal. #[prost(message, repeated, tag = "7")] pub total_deposit: ::prost::alloc::vec::Vec, + /// voting_start_time is the starting time to vote on a proposal. #[prost(message, optional, tag = "8")] pub voting_start_time: ::core::option::Option< super::super::super::google::protobuf::Timestamp, >, + /// voting_end_time is the end time of voting on a proposal. #[prost(message, optional, tag = "9")] pub voting_end_time: ::core::option::Option< super::super::super::google::protobuf::Timestamp, >, /// metadata is any arbitrary metadata attached to the proposal. + /// the recommended format of the metadata is to be found here: #[prost(string, tag = "10")] pub metadata: ::prost::alloc::string::String, + /// title is the title of the proposal + /// + /// Since: cosmos-sdk 0.47 + #[prost(string, tag = "11")] + pub title: ::prost::alloc::string::String, + /// summary is a short summary of the proposal + /// + /// Since: cosmos-sdk 0.47 + #[prost(string, tag = "12")] + pub summary: ::prost::alloc::string::String, + /// proposer is the address of the proposal sumbitter + /// + /// Since: cosmos-sdk 0.47 + #[prost(string, tag = "13")] + pub proposer: ::prost::alloc::string::String, + /// expedited defines if the proposal is expedited + /// + /// Since: cosmos-sdk 0.50 + #[prost(bool, tag = "14")] + pub expedited: bool, + /// failed_reason defines the reason why the proposal failed + /// + /// Since: cosmos-sdk 0.50 + #[prost(string, tag = "15")] + pub failed_reason: ::prost::alloc::string::String, } /// TallyResult defines a standard tally for a governance proposal. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TallyResult { + /// yes_count is the number of yes votes on a proposal. #[prost(string, tag = "1")] pub yes_count: ::prost::alloc::string::String, + /// abstain_count is the number of abstain votes on a proposal. #[prost(string, tag = "2")] pub abstain_count: ::prost::alloc::string::String, + /// no_count is the number of no votes on a proposal. #[prost(string, tag = "3")] pub no_count: ::prost::alloc::string::String, + /// no_with_veto_count is the number of no with veto votes on a proposal. #[prost(string, tag = "4")] pub no_with_veto_count: ::prost::alloc::string::String, } @@ -74,13 +117,17 @@ pub struct TallyResult { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Vote { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, + /// voter is the voter address of the proposal. #[prost(string, tag = "2")] pub voter: ::prost::alloc::string::String, + /// options is the weighted vote options. #[prost(message, repeated, tag = "4")] pub options: ::prost::alloc::vec::Vec, - /// metadata is any arbitrary metadata to attached to the vote. + /// metadata is any arbitrary metadata attached to the vote. + /// the recommended format of the metadata is to be found here: #[prost(string, tag = "5")] pub metadata: ::prost::alloc::string::String, } @@ -88,11 +135,11 @@ pub struct Vote { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DepositParams { - /// Minimum deposit for a proposal to enter voting period. + /// Minimum deposit for a proposal to enter voting period. #[prost(message, repeated, tag = "1")] pub min_deposit: ::prost::alloc::vec::Vec, - /// Maximum period for Atom holders to deposit on a proposal. Initial value: 2 - /// months. + /// Maximum period for Atom holders to deposit on a proposal. Initial value: 2 + /// months. #[prost(message, optional, tag = "2")] pub max_deposit_period: ::core::option::Option< super::super::super::google::protobuf::Duration, @@ -102,7 +149,7 @@ pub struct DepositParams { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct VotingParams { - /// Length of the voting period. + /// Duration of the voting period. #[prost(message, optional, tag = "1")] pub voting_period: ::core::option::Option< super::super::super::google::protobuf::Duration, @@ -112,17 +159,89 @@ pub struct VotingParams { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TallyParams { + /// Minimum percentage of total stake needed to vote for a result to be + /// considered valid. + #[prost(string, tag = "1")] + pub quorum: ::prost::alloc::string::String, + /// Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. + #[prost(string, tag = "2")] + pub threshold: ::prost::alloc::string::String, + /// Minimum value of Veto votes to Total votes ratio for proposal to be + /// vetoed. Default value: 1/3. + #[prost(string, tag = "3")] + pub veto_threshold: ::prost::alloc::string::String, +} +/// Params defines the parameters for the x/gov module. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Params { + /// Minimum deposit for a proposal to enter voting period. + #[prost(message, repeated, tag = "1")] + pub min_deposit: ::prost::alloc::vec::Vec, + /// Maximum period for Atom holders to deposit on a proposal. Initial value: 2 + /// months. + #[prost(message, optional, tag = "2")] + pub max_deposit_period: ::core::option::Option< + super::super::super::google::protobuf::Duration, + >, + /// Duration of the voting period. + #[prost(message, optional, tag = "3")] + pub voting_period: ::core::option::Option< + super::super::super::google::protobuf::Duration, + >, /// Minimum percentage of total stake needed to vote for a result to be /// considered valid. - #[prost(string, tag = "1")] + #[prost(string, tag = "4")] pub quorum: ::prost::alloc::string::String, /// Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. - #[prost(string, tag = "2")] + #[prost(string, tag = "5")] pub threshold: ::prost::alloc::string::String, /// Minimum value of Veto votes to Total votes ratio for proposal to be /// vetoed. Default value: 1/3. - #[prost(string, tag = "3")] + #[prost(string, tag = "6")] pub veto_threshold: ::prost::alloc::string::String, + /// The ratio representing the proportion of the deposit value that must be paid at proposal submission. + #[prost(string, tag = "7")] + pub min_initial_deposit_ratio: ::prost::alloc::string::String, + /// The cancel ratio which will not be returned back to the depositors when a proposal is cancelled. + /// + /// Since: cosmos-sdk 0.50 + #[prost(string, tag = "8")] + pub proposal_cancel_ratio: ::prost::alloc::string::String, + /// The address which will receive (proposal_cancel_ratio * deposit) proposal deposits. + /// If empty, the (proposal_cancel_ratio * deposit) proposal deposits will be burned. + /// + /// Since: cosmos-sdk 0.50 + #[prost(string, tag = "9")] + pub proposal_cancel_dest: ::prost::alloc::string::String, + /// Duration of the voting period of an expedited proposal. + /// + /// Since: cosmos-sdk 0.50 + #[prost(message, optional, tag = "10")] + pub expedited_voting_period: ::core::option::Option< + super::super::super::google::protobuf::Duration, + >, + /// Minimum proportion of Yes votes for proposal to pass. Default value: 0.67. + /// + /// Since: cosmos-sdk 0.50 + #[prost(string, tag = "11")] + pub expedited_threshold: ::prost::alloc::string::String, + /// Minimum expedited deposit for a proposal to enter voting period. + #[prost(message, repeated, tag = "12")] + pub expedited_min_deposit: ::prost::alloc::vec::Vec< + super::super::base::v1beta1::Coin, + >, + /// burn deposits if a proposal does not meet quorum + #[prost(bool, tag = "13")] + pub burn_vote_quorum: bool, + /// burn deposits if the proposal does not enter voting period + #[prost(bool, tag = "14")] + pub burn_proposal_deposit_prevote: bool, + /// burn deposits if quorum with vote type no_veto is met + #[prost(bool, tag = "15")] + pub burn_vote_veto: bool, } /// VoteOption enumerates the valid vote options for a given governance proposal. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] @@ -220,20 +339,39 @@ impl ProposalStatus { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSubmitProposal { + /// messages are the arbitrary messages to be executed if proposal passes. #[prost(message, repeated, tag = "1")] pub messages: ::prost::alloc::vec::Vec, + /// initial_deposit is the deposit value that must be paid at proposal submission. #[prost(message, repeated, tag = "2")] pub initial_deposit: ::prost::alloc::vec::Vec, + /// proposer is the account address of the proposer. #[prost(string, tag = "3")] pub proposer: ::prost::alloc::string::String, /// metadata is any arbitrary metadata attached to the proposal. #[prost(string, tag = "4")] pub metadata: ::prost::alloc::string::String, + /// title is the title of the proposal. + /// + /// Since: cosmos-sdk 0.47 + #[prost(string, tag = "5")] + pub title: ::prost::alloc::string::String, + /// summary is the summary of the proposal + /// + /// Since: cosmos-sdk 0.47 + #[prost(string, tag = "6")] + pub summary: ::prost::alloc::string::String, + /// expedited defines if the proposal is expedited or not + /// + /// Since: cosmos-sdk 0.50 + #[prost(bool, tag = "7")] + pub expedited: bool, } /// MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSubmitProposalResponse { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, } @@ -257,12 +395,16 @@ pub struct MsgExecLegacyContentResponse {} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgVote { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, + /// voter is the voter address for the proposal. #[prost(string, tag = "2")] pub voter: ::prost::alloc::string::String, + /// option defines the vote option. #[prost(enumeration = "VoteOption", tag = "3")] pub option: i32, + /// metadata is any arbitrary metadata attached to the Vote. #[prost(string, tag = "4")] pub metadata: ::prost::alloc::string::String, } @@ -274,12 +416,16 @@ pub struct MsgVoteResponse {} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgVoteWeighted { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, + /// voter is the voter address for the proposal. #[prost(string, tag = "2")] pub voter: ::prost::alloc::string::String, + /// options defines the weighted vote options. #[prost(message, repeated, tag = "3")] pub options: ::prost::alloc::vec::Vec, + /// metadata is any arbitrary metadata attached to the VoteWeighted. #[prost(string, tag = "4")] pub metadata: ::prost::alloc::string::String, } @@ -291,10 +437,13 @@ pub struct MsgVoteWeightedResponse {} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgDeposit { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, + /// depositor defines the deposit addresses from the proposals. #[prost(string, tag = "2")] pub depositor: ::prost::alloc::string::String, + /// amount to be deposited by depositor. #[prost(message, repeated, tag = "3")] pub amount: ::prost::alloc::vec::Vec, } @@ -302,6 +451,60 @@ pub struct MsgDeposit { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgDepositResponse {} +/// MsgUpdateParams is the Msg/UpdateParams request type. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParams { + /// authority is the address that controls the module (defaults to x/gov unless overwritten). + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the x/gov parameters to update. + /// + /// NOTE: All parameters must be supplied. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +/// MsgUpdateParamsResponse defines the response structure for executing a +/// MsgUpdateParams message. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParamsResponse {} +/// MsgCancelProposal is the Msg/CancelProposal request type. +/// +/// Since: cosmos-sdk 0.50 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgCancelProposal { + /// proposal_id defines the unique id of the proposal. + #[prost(uint64, tag = "1")] + pub proposal_id: u64, + /// proposer is the account address of the proposer. + #[prost(string, tag = "2")] + pub proposer: ::prost::alloc::string::String, +} +/// MsgCancelProposalResponse defines the response structure for executing a +/// MsgCancelProposal message. +/// +/// Since: cosmos-sdk 0.50 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgCancelProposalResponse { + /// proposal_id defines the unique id of the proposal. + #[prost(uint64, tag = "1")] + pub proposal_id: u64, + /// canceled_time is the time when proposal is canceled. + #[prost(message, optional, tag = "2")] + pub canceled_time: ::core::option::Option< + super::super::super::google::protobuf::Timestamp, + >, + /// canceled_height defines the block height at which the proposal is canceled. + #[prost(uint64, tag = "3")] + pub canceled_height: u64, +} /// Generated client implementations. #[cfg(feature = "client")] pub mod msg_client { @@ -389,7 +592,7 @@ pub mod msg_client { self.inner = self.inner.max_encoding_message_size(limit); self } - /// SubmitProposal defines a method to create new proposal given a content. + /// SubmitProposal defines a method to create new proposal given the messages. pub async fn submit_proposal( &mut self, request: impl tonic::IntoRequest, @@ -516,6 +719,63 @@ pub mod msg_client { req.extensions_mut().insert(GrpcMethod::new("cosmos.gov.v1.Msg", "Deposit")); self.inner.unary(req, path, codec).await } + /// UpdateParams defines a governance operation for updating the x/gov module + /// parameters. The authority is defined in the keeper. + /// + /// Since: cosmos-sdk 0.47 + pub async fn update_params( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.gov.v1.Msg/UpdateParams", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.gov.v1.Msg", "UpdateParams")); + self.inner.unary(req, path, codec).await + } + /// CancelProposal defines a method to cancel governance proposal + /// + /// Since: cosmos-sdk 0.50 + pub async fn cancel_proposal( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.gov.v1.Msg/CancelProposal", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.gov.v1.Msg", "CancelProposal")); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -526,7 +786,7 @@ pub mod msg_server { /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. #[async_trait] pub trait Msg: Send + Sync + 'static { - /// SubmitProposal defines a method to create new proposal given a content. + /// SubmitProposal defines a method to create new proposal given the messages. async fn submit_proposal( &self, request: tonic::Request, @@ -564,6 +824,27 @@ pub mod msg_server { tonic::Response, tonic::Status, >; + /// UpdateParams defines a governance operation for updating the x/gov module + /// parameters. The authority is defined in the keeper. + /// + /// Since: cosmos-sdk 0.47 + async fn update_params( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// CancelProposal defines a method to cancel governance proposal + /// + /// Since: cosmos-sdk 0.50 + async fn cancel_proposal( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// Msg defines the gov Msg service. #[derive(Debug)] @@ -861,6 +1142,94 @@ pub mod msg_server { }; Box::pin(fut) } + "/cosmos.gov.v1.Msg/UpdateParams" => { + #[allow(non_camel_case_types)] + struct UpdateParamsSvc(pub Arc); + impl tonic::server::UnaryService + for UpdateParamsSvc { + type Response = super::MsgUpdateParamsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).update_params(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = UpdateParamsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/cosmos.gov.v1.Msg/CancelProposal" => { + #[allow(non_camel_case_types)] + struct CancelProposalSvc(pub Arc); + impl tonic::server::UnaryService + for CancelProposalSvc { + type Response = super::MsgCancelProposalResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).cancel_proposal(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = CancelProposalSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( @@ -902,6 +1271,17 @@ pub mod msg_server { const NAME: &'static str = "cosmos.gov.v1.Msg"; } } +/// QueryConstitutionRequest is the request type for the Query/Constitution RPC method +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryConstitutionRequest {} +/// QueryConstitutionResponse is the response type for the Query/Constitution RPC method +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryConstitutionResponse { + #[prost(string, tag = "1")] + pub constitution: ::prost::alloc::string::String, +} /// QueryProposalRequest is the request type for the Query/Proposal RPC method. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -914,6 +1294,7 @@ pub struct QueryProposalRequest { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryProposalResponse { + /// proposal is the requested governance proposal. #[prost(message, optional, tag = "1")] pub proposal: ::core::option::Option, } @@ -941,6 +1322,7 @@ pub struct QueryProposalsRequest { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryProposalsResponse { + /// proposals defines all the requested governance proposals. #[prost(message, repeated, tag = "1")] pub proposals: ::prost::alloc::vec::Vec, /// pagination defines the pagination in the response. @@ -964,7 +1346,7 @@ pub struct QueryVoteRequest { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryVoteResponse { - /// vote defined the queried vote. + /// vote defines the queried vote. #[prost(message, optional, tag = "1")] pub vote: ::core::option::Option, } @@ -985,7 +1367,7 @@ pub struct QueryVotesRequest { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryVotesResponse { - /// votes defined the queried votes. + /// votes defines the queried votes. #[prost(message, repeated, tag = "1")] pub votes: ::prost::alloc::vec::Vec, /// pagination defines the pagination in the response. @@ -1007,15 +1389,26 @@ pub struct QueryParamsRequest { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { + /// Deprecated: Prefer to use `params` instead. /// voting_params defines the parameters related to voting. + #[deprecated] #[prost(message, optional, tag = "1")] pub voting_params: ::core::option::Option, + /// Deprecated: Prefer to use `params` instead. /// deposit_params defines the parameters related to deposit. + #[deprecated] #[prost(message, optional, tag = "2")] pub deposit_params: ::core::option::Option, + /// Deprecated: Prefer to use `params` instead. /// tally_params defines the parameters related to tally. + #[deprecated] #[prost(message, optional, tag = "3")] pub tally_params: ::core::option::Option, + /// params defines all the paramaters of x/gov module. + /// + /// Since: cosmos-sdk 0.47 + #[prost(message, optional, tag = "4")] + pub params: ::core::option::Option, } /// QueryDepositRequest is the request type for the Query/Deposit RPC method. #[allow(clippy::derive_partial_eq_without_eq)] @@ -1053,6 +1446,7 @@ pub struct QueryDepositsRequest { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDepositsResponse { + /// deposits defines the requested deposits. #[prost(message, repeated, tag = "1")] pub deposits: ::prost::alloc::vec::Vec, /// pagination defines the pagination in the response. @@ -1164,6 +1558,32 @@ pub mod query_client { self.inner = self.inner.max_encoding_message_size(limit); self } + /// Constitution queries the chain's constitution. + pub async fn constitution( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.gov.v1.Query/Constitution", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.gov.v1.Query", "Constitution")); + self.inner.unary(req, path, codec).await + } /// Proposal queries proposal details based on ProposalID. pub async fn proposal( &mut self, @@ -1290,7 +1710,7 @@ pub mod query_client { .insert(GrpcMethod::new("cosmos.gov.v1.Query", "Params")); self.inner.unary(req, path, codec).await } - /// Deposit queries single deposit information based proposalID, depositAddr. + /// Deposit queries single deposit information based on proposalID, depositAddr. pub async fn deposit( &mut self, request: impl tonic::IntoRequest, @@ -1378,6 +1798,14 @@ pub mod query_server { /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. #[async_trait] pub trait Query: Send + Sync + 'static { + /// Constitution queries the chain's constitution. + async fn constitution( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; /// Proposal queries proposal details based on ProposalID. async fn proposal( &self, @@ -1418,7 +1846,7 @@ pub mod query_server { tonic::Response, tonic::Status, >; - /// Deposit queries single deposit information based proposalID, depositAddr. + /// Deposit queries single deposit information based on proposalID, depositAddr. async fn deposit( &self, request: tonic::Request, @@ -1523,6 +1951,52 @@ pub mod query_server { fn call(&mut self, req: http::Request) -> Self::Future { let inner = self.inner.clone(); match req.uri().path() { + "/cosmos.gov.v1.Query/Constitution" => { + #[allow(non_camel_case_types)] + struct ConstitutionSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService + for ConstitutionSvc { + type Response = super::QueryConstitutionResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).constitution(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = ConstitutionSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } "/cosmos.gov.v1.Query/Proposal" => { #[allow(non_camel_case_types)] struct ProposalSvc(pub Arc); @@ -1928,13 +2402,32 @@ pub struct GenesisState { /// proposals defines all the proposals present at genesis. #[prost(message, repeated, tag = "4")] pub proposals: ::prost::alloc::vec::Vec, - /// params defines all the paramaters of related to deposit. + /// Deprecated: Prefer to use `params` instead. + /// deposit_params defines all the paramaters of related to deposit. + #[deprecated] #[prost(message, optional, tag = "5")] pub deposit_params: ::core::option::Option, - /// params defines all the paramaters of related to voting. + /// Deprecated: Prefer to use `params` instead. + /// voting_params defines all the paramaters of related to voting. + #[deprecated] #[prost(message, optional, tag = "6")] pub voting_params: ::core::option::Option, - /// params defines all the paramaters of related to tally. + /// Deprecated: Prefer to use `params` instead. + /// tally_params defines all the paramaters of related to tally. + #[deprecated] #[prost(message, optional, tag = "7")] pub tally_params: ::core::option::Option, + /// params defines all the paramaters of x/gov module. + /// + /// Since: cosmos-sdk 0.47 + #[prost(message, optional, tag = "8")] + pub params: ::core::option::Option, + /// The constitution allows builders to lay a foundation and define purpose. + /// This is an immutable string set in genesis. + /// There are no amendments, to go outside of scope, just fork. + /// constitution is an immutable string in genesis for a chain builder to lay out their vision, ideas and ideals. + /// + /// Since: cosmos-sdk 0.50 + #[prost(string, tag = "9")] + pub constitution: ::prost::alloc::string::String, } diff --git a/src/prost/cosmos.gov.v1beta1.rs b/src/prost/cosmos.gov.v1beta1.rs index 2ad8874b..c7594d37 100644 --- a/src/prost/cosmos.gov.v1beta1.rs +++ b/src/prost/cosmos.gov.v1beta1.rs @@ -4,8 +4,10 @@ #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WeightedVoteOption { + /// option defines the valid vote options, it must not contain duplicate vote options. #[prost(enumeration = "VoteOption", tag = "1")] pub option: i32, + /// weight is the vote weight associated with the vote option. #[prost(string, tag = "2")] pub weight: ::prost::alloc::string::String, } @@ -14,8 +16,10 @@ pub struct WeightedVoteOption { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TextProposal { + /// title of the proposal. #[prost(string, tag = "1")] pub title: ::prost::alloc::string::String, + /// description associated with the proposal. #[prost(string, tag = "2")] pub description: ::prost::alloc::string::String, } @@ -24,10 +28,13 @@ pub struct TextProposal { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Deposit { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, + /// depositor defines the deposit addresses from the proposals. #[prost(string, tag = "2")] pub depositor: ::prost::alloc::string::String, + /// amount to be deposited by depositor. #[prost(message, repeated, tag = "3")] pub amount: ::prost::alloc::vec::Vec, } @@ -35,10 +42,13 @@ pub struct Deposit { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Proposal { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, + /// content is the proposal's content. #[prost(message, optional, tag = "2")] pub content: ::core::option::Option, + /// status defines the proposal status. #[prost(enumeration = "ProposalStatus", tag = "3")] pub status: i32, /// final_tally_result is the final tally result of the proposal. When @@ -46,20 +56,25 @@ pub struct Proposal { /// proposal's voting period has ended. #[prost(message, optional, tag = "4")] pub final_tally_result: ::core::option::Option, + /// submit_time is the time of proposal submission. #[prost(message, optional, tag = "5")] pub submit_time: ::core::option::Option< super::super::super::google::protobuf::Timestamp, >, + /// deposit_end_time is the end time for deposition. #[prost(message, optional, tag = "6")] pub deposit_end_time: ::core::option::Option< super::super::super::google::protobuf::Timestamp, >, + /// total_deposit is the total deposit on the proposal. #[prost(message, repeated, tag = "7")] pub total_deposit: ::prost::alloc::vec::Vec, + /// voting_start_time is the starting time to vote on a proposal. #[prost(message, optional, tag = "8")] pub voting_start_time: ::core::option::Option< super::super::super::google::protobuf::Timestamp, >, + /// voting_end_time is the end time of voting on a proposal. #[prost(message, optional, tag = "9")] pub voting_end_time: ::core::option::Option< super::super::super::google::protobuf::Timestamp, @@ -69,12 +84,16 @@ pub struct Proposal { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TallyResult { + /// yes is the number of yes votes on a proposal. #[prost(string, tag = "1")] pub yes: ::prost::alloc::string::String, + /// abstain is the number of abstain votes on a proposal. #[prost(string, tag = "2")] pub abstain: ::prost::alloc::string::String, + /// no is the number of no votes on a proposal. #[prost(string, tag = "3")] pub no: ::prost::alloc::string::String, + /// no_with_veto is the number of no with veto votes on a proposal. #[prost(string, tag = "4")] pub no_with_veto: ::prost::alloc::string::String, } @@ -83,8 +102,10 @@ pub struct TallyResult { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Vote { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, + /// voter is the voter address of the proposal. #[prost(string, tag = "2")] pub voter: ::prost::alloc::string::String, /// Deprecated: Prefer to use `options` instead. This field is set in queries @@ -93,6 +114,8 @@ pub struct Vote { #[deprecated] #[prost(enumeration = "VoteOption", tag = "3")] pub option: i32, + /// options is the weighted vote options. + /// /// Since: cosmos-sdk 0.43 #[prost(message, repeated, tag = "4")] pub options: ::prost::alloc::vec::Vec, @@ -101,11 +124,11 @@ pub struct Vote { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DepositParams { - /// Minimum deposit for a proposal to enter voting period. + /// Minimum deposit for a proposal to enter voting period. #[prost(message, repeated, tag = "1")] pub min_deposit: ::prost::alloc::vec::Vec, - /// Maximum period for Atom holders to deposit on a proposal. Initial value: 2 - /// months. + /// Maximum period for Atom holders to deposit on a proposal. Initial value: 2 + /// months. #[prost(message, optional, tag = "2")] pub max_deposit_period: ::core::option::Option< super::super::super::google::protobuf::Duration, @@ -115,7 +138,7 @@ pub struct DepositParams { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct VotingParams { - /// Length of the voting period. + /// Duration of the voting period. #[prost(message, optional, tag = "1")] pub voting_period: ::core::option::Option< super::super::super::google::protobuf::Duration, @@ -125,15 +148,15 @@ pub struct VotingParams { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TallyParams { - /// Minimum percentage of total stake needed to vote for a result to be - /// considered valid. + /// Minimum percentage of total stake needed to vote for a result to be + /// considered valid. #[prost(bytes = "vec", tag = "1")] pub quorum: ::prost::alloc::vec::Vec, - /// Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. + /// Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. #[prost(bytes = "vec", tag = "2")] pub threshold: ::prost::alloc::vec::Vec, - /// Minimum value of Veto votes to Total votes ratio for proposal to be - /// vetoed. Default value: 1/3. + /// Minimum value of Veto votes to Total votes ratio for proposal to be + /// vetoed. Default value: 1/3. #[prost(bytes = "vec", tag = "3")] pub veto_threshold: ::prost::alloc::vec::Vec, } @@ -233,10 +256,13 @@ impl ProposalStatus { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSubmitProposal { + /// content is the proposal's content. #[prost(message, optional, tag = "1")] pub content: ::core::option::Option, + /// initial_deposit is the deposit value that must be paid at proposal submission. #[prost(message, repeated, tag = "2")] pub initial_deposit: ::prost::alloc::vec::Vec, + /// proposer is the account address of the proposer. #[prost(string, tag = "3")] pub proposer: ::prost::alloc::string::String, } @@ -244,6 +270,7 @@ pub struct MsgSubmitProposal { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSubmitProposalResponse { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, } @@ -251,10 +278,13 @@ pub struct MsgSubmitProposalResponse { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgVote { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, + /// voter is the voter address for the proposal. #[prost(string, tag = "2")] pub voter: ::prost::alloc::string::String, + /// option defines the vote option. #[prost(enumeration = "VoteOption", tag = "3")] pub option: i32, } @@ -268,10 +298,13 @@ pub struct MsgVoteResponse {} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgVoteWeighted { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, + /// voter is the voter address for the proposal. #[prost(string, tag = "2")] pub voter: ::prost::alloc::string::String, + /// options defines the weighted vote options. #[prost(message, repeated, tag = "3")] pub options: ::prost::alloc::vec::Vec, } @@ -285,10 +318,13 @@ pub struct MsgVoteWeightedResponse {} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgDeposit { + /// proposal_id defines the unique id of the proposal. #[prost(uint64, tag = "1")] pub proposal_id: u64, + /// depositor defines the deposit addresses from the proposals. #[prost(string, tag = "2")] pub depositor: ::prost::alloc::string::String, + /// amount to be deposited by depositor. #[prost(message, repeated, tag = "3")] pub amount: ::prost::alloc::vec::Vec, } @@ -302,7 +338,7 @@ pub mod msg_client { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] use tonic::codegen::*; use tonic::codegen::http::Uri; - /// Msg defines the bank Msg service. + /// Msg defines the gov Msg service. #[derive(Debug, Clone)] pub struct MsgClient { inner: tonic::client::Grpc, @@ -531,7 +567,7 @@ pub mod msg_server { tonic::Status, >; } - /// Msg defines the bank Msg service. + /// Msg defines the gov Msg service. #[derive(Debug)] pub struct MsgServer { inner: _Inner, @@ -863,6 +899,7 @@ pub struct QueryProposalsRequest { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryProposalsResponse { + /// proposals defines all the requested governance proposals. #[prost(message, repeated, tag = "1")] pub proposals: ::prost::alloc::vec::Vec, /// pagination defines the pagination in the response. @@ -886,7 +923,7 @@ pub struct QueryVoteRequest { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryVoteResponse { - /// vote defined the queried vote. + /// vote defines the queried vote. #[prost(message, optional, tag = "1")] pub vote: ::core::option::Option, } @@ -907,7 +944,7 @@ pub struct QueryVotesRequest { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryVotesResponse { - /// votes defined the queried votes. + /// votes defines the queried votes. #[prost(message, repeated, tag = "1")] pub votes: ::prost::alloc::vec::Vec, /// pagination defines the pagination in the response. @@ -975,6 +1012,7 @@ pub struct QueryDepositsRequest { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDepositsResponse { + /// deposits defines the requested deposits. #[prost(message, repeated, tag = "1")] pub deposits: ::prost::alloc::vec::Vec, /// pagination defines the pagination in the response. @@ -1216,7 +1254,7 @@ pub mod query_client { .insert(GrpcMethod::new("cosmos.gov.v1beta1.Query", "Params")); self.inner.unary(req, path, codec).await } - /// Deposit queries single deposit information based proposalID, depositAddr. + /// Deposit queries single deposit information based on proposalID, depositor address. pub async fn deposit( &mut self, request: impl tonic::IntoRequest, @@ -1344,7 +1382,7 @@ pub mod query_server { tonic::Response, tonic::Status, >; - /// Deposit queries single deposit information based proposalID, depositAddr. + /// Deposit queries single deposit information based on proposalID, depositor address. async fn deposit( &self, request: tonic::Request, @@ -1854,13 +1892,13 @@ pub struct GenesisState { /// proposals defines all the proposals present at genesis. #[prost(message, repeated, tag = "4")] pub proposals: ::prost::alloc::vec::Vec, - /// params defines all the paramaters of related to deposit. + /// deposit_params defines all the parameters related to deposit. #[prost(message, optional, tag = "5")] pub deposit_params: ::core::option::Option, - /// params defines all the paramaters of related to voting. + /// voting_params defines all the parameters related to voting. #[prost(message, optional, tag = "6")] pub voting_params: ::core::option::Option, - /// params defines all the paramaters of related to tally. + /// tally_params defines all the parameters related to tally. #[prost(message, optional, tag = "7")] pub tally_params: ::core::option::Option, } diff --git a/src/prost/cosmos.staking.module.v1.rs b/src/prost/cosmos.staking.module.v1.rs new file mode 100644 index 00000000..d018cfe1 --- /dev/null +++ b/src/prost/cosmos.staking.module.v1.rs @@ -0,0 +1,19 @@ +/// Module is the config object of the staking module. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Module { + /// hooks_order specifies the order of staking hooks and should be a list + /// of module names which provide a staking hooks instance. If no order is + /// provided, then hooks will be applied in alphabetical order of module names. + #[prost(string, repeated, tag = "1")] + pub hooks_order: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// authority defines the custom module authority. If not set, defaults to the governance module. + #[prost(string, tag = "2")] + pub authority: ::prost::alloc::string::String, + /// bech32_prefix_validator is the bech32 validator prefix for the app. + #[prost(string, tag = "3")] + pub bech32_prefix_validator: ::prost::alloc::string::String, + /// bech32_prefix_consensus is the bech32 consensus node prefix for the app. + #[prost(string, tag = "4")] + pub bech32_prefix_consensus: ::prost::alloc::string::String, +} diff --git a/src/prost/cosmos.staking.v1beta1.rs b/src/prost/cosmos.staking.v1beta1.rs index 0f7c11af..6e350541 100644 --- a/src/prost/cosmos.staking.v1beta1.rs +++ b/src/prost/cosmos.staking.v1beta1.rs @@ -108,6 +108,12 @@ pub struct Validator { /// Since: cosmos-sdk 0.46 #[prost(string, tag = "11")] pub min_self_delegation: ::prost::alloc::string::String, + /// strictly positive if this validator's unbonding has been stopped by external modules + #[prost(int64, tag = "12")] + pub unbonding_on_hold_ref_count: i64, + /// list of unbonding ids, each uniquely identifing an unbonding of this validator + #[prost(uint64, repeated, tag = "13")] + pub unbonding_ids: ::prost::alloc::vec::Vec, } /// ValAddresses defines a repeated set of validator addresses. #[allow(clippy::derive_partial_eq_without_eq)] @@ -161,10 +167,10 @@ pub struct DvvTriplets { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Delegation { - /// delegator_address is the bech32-encoded address of the delegator. + /// delegator_address is the encoded address of the delegator. #[prost(string, tag = "1")] pub delegator_address: ::prost::alloc::string::String, - /// validator_address is the bech32-encoded address of the validator. + /// validator_address is the encoded address of the validator. #[prost(string, tag = "2")] pub validator_address: ::prost::alloc::string::String, /// shares define the delegation shares received. @@ -176,10 +182,10 @@ pub struct Delegation { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UnbondingDelegation { - /// delegator_address is the bech32-encoded address of the delegator. + /// delegator_address is the encoded address of the delegator. #[prost(string, tag = "1")] pub delegator_address: ::prost::alloc::string::String, - /// validator_address is the bech32-encoded address of the validator. + /// validator_address is the encoded address of the validator. #[prost(string, tag = "2")] pub validator_address: ::prost::alloc::string::String, /// entries are the unbonding delegation entries. @@ -206,6 +212,12 @@ pub struct UnbondingDelegationEntry { /// balance defines the tokens to receive at completion. #[prost(string, tag = "4")] pub balance: ::prost::alloc::string::String, + /// Incrementing id that uniquely identifies this entry + #[prost(uint64, tag = "5")] + pub unbonding_id: u64, + /// Strictly positive if this entry's unbonding has been stopped by external modules + #[prost(int64, tag = "6")] + pub unbonding_on_hold_ref_count: i64, } /// RedelegationEntry defines a redelegation object with relevant metadata. #[allow(clippy::derive_partial_eq_without_eq)] @@ -225,6 +237,12 @@ pub struct RedelegationEntry { /// shares_dst is the amount of destination-validator shares created by redelegation. #[prost(string, tag = "4")] pub shares_dst: ::prost::alloc::string::String, + /// Incrementing id that uniquely identifies this entry + #[prost(uint64, tag = "5")] + pub unbonding_id: u64, + /// Strictly positive if this entry's unbonding has been stopped by external modules + #[prost(int64, tag = "6")] + pub unbonding_on_hold_ref_count: i64, } /// Redelegation contains the list of a particular delegator's redelegating bonds /// from a particular source validator to a particular destination validator. @@ -246,7 +264,7 @@ pub struct Redelegation { #[prost(message, repeated, tag = "4")] pub entries: ::prost::alloc::vec::Vec, } -/// Params defines the parameters for the staking module. +/// Params defines the parameters for the x/staking module. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { @@ -314,6 +332,7 @@ pub struct Pool { pub bonded_tokens: ::prost::alloc::string::String, } /// ValidatorUpdates defines an array of abci.ValidatorUpdate objects. +/// TODO: explore moving this to proto/cosmos/base to separate modules from tendermint dependence #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorUpdates { @@ -357,6 +376,39 @@ impl BondStatus { } } } +/// Infraction indicates the infraction a validator commited. +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Infraction { + /// UNSPECIFIED defines an empty infraction. + Unspecified = 0, + /// DOUBLE_SIGN defines a validator that double-signs a block. + DoubleSign = 1, + /// DOWNTIME defines a validator that missed signing too many blocks. + Downtime = 2, +} +impl Infraction { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Infraction::Unspecified => "INFRACTION_UNSPECIFIED", + Infraction::DoubleSign => "INFRACTION_DOUBLE_SIGN", + Infraction::Downtime => "INFRACTION_DOWNTIME", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "INFRACTION_UNSPECIFIED" => Some(Self::Unspecified), + "INFRACTION_DOUBLE_SIGN" => Some(Self::DoubleSign), + "INFRACTION_DOWNTIME" => Some(Self::Downtime), + _ => None, + } + } +} /// InfractionType indicates the infraction type a validator commited. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] @@ -400,6 +452,10 @@ pub struct MsgCreateValidator { pub commission: ::core::option::Option, #[prost(string, tag = "3")] pub min_self_delegation: ::prost::alloc::string::String, + /// Deprecated: Use of Delegator Address in MsgCreateValidator is deprecated. + /// The validator address bytes and delegator address bytes refer to the same account while creating validator (defer + /// only in bech32 notation). + #[deprecated] #[prost(string, tag = "4")] pub delegator_address: ::prost::alloc::string::String, #[prost(string, tag = "5")] @@ -493,6 +549,11 @@ pub struct MsgUndelegateResponse { pub completion_time: ::core::option::Option< super::super::super::google::protobuf::Timestamp, >, + /// amount returns the amount of undelegated coins + /// + /// Since: cosmos-sdk 0.50 + #[prost(message, optional, tag = "2")] + pub amount: ::core::option::Option, } /// MsgCancelUnbondingDelegation defines the SDK message for performing a cancel unbonding delegation for delegator /// @@ -517,6 +578,28 @@ pub struct MsgCancelUnbondingDelegation { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgCancelUnbondingDelegationResponse {} +/// MsgUpdateParams is the Msg/UpdateParams request type. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParams { + /// authority is the address that controls the module (defaults to x/gov unless overwritten). + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the x/staking parameters to update. + /// + /// NOTE: All parameters must be supplied. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +/// MsgUpdateParamsResponse defines the response structure for executing a +/// MsgUpdateParams message. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParamsResponse {} /// Generated client implementations. #[cfg(feature = "client")] pub mod msg_client { @@ -775,6 +858,34 @@ pub mod msg_client { ); self.inner.unary(req, path, codec).await } + /// UpdateParams defines an operation for updating the x/staking module + /// parameters. + /// Since: cosmos-sdk 0.47 + pub async fn update_params( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.staking.v1beta1.Msg/UpdateParams", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.staking.v1beta1.Msg", "UpdateParams")); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -839,6 +950,16 @@ pub mod msg_server { tonic::Response, tonic::Status, >; + /// UpdateParams defines an operation for updating the x/staking module + /// parameters. + /// Since: cosmos-sdk 0.47 + async fn update_params( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// Msg defines the staking Msg service. #[derive(Debug)] @@ -1182,6 +1303,50 @@ pub mod msg_server { }; Box::pin(fut) } + "/cosmos.staking.v1beta1.Msg/UpdateParams" => { + #[allow(non_camel_case_types)] + struct UpdateParamsSvc(pub Arc); + impl tonic::server::UnaryService + for UpdateParamsSvc { + type Response = super::MsgUpdateParamsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).update_params(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = UpdateParamsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( @@ -1626,6 +1791,9 @@ pub mod query_client { self } /// Validators queries all validators that match the given status. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. pub async fn validators( &mut self, request: impl tonic::IntoRequest, @@ -1678,6 +1846,9 @@ pub mod query_client { self.inner.unary(req, path, codec).await } /// ValidatorDelegations queries delegate info for given validator. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. pub async fn validator_delegations( &mut self, request: impl tonic::IntoRequest, @@ -1709,6 +1880,9 @@ pub mod query_client { self.inner.unary(req, path, codec).await } /// ValidatorUnbondingDelegations queries unbonding delegations of a validator. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. pub async fn validator_unbonding_delegations( &mut self, request: impl tonic::IntoRequest< @@ -1800,6 +1974,9 @@ pub mod query_client { self.inner.unary(req, path, codec).await } /// DelegatorDelegations queries all delegations of a given delegator address. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. pub async fn delegator_delegations( &mut self, request: impl tonic::IntoRequest, @@ -1832,6 +2009,9 @@ pub mod query_client { } /// DelegatorUnbondingDelegations queries all unbonding delegations of a given /// delegator address. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. pub async fn delegator_unbonding_delegations( &mut self, request: impl tonic::IntoRequest< @@ -1865,6 +2045,9 @@ pub mod query_client { self.inner.unary(req, path, codec).await } /// Redelegations queries redelegations of given address. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. pub async fn redelegations( &mut self, request: impl tonic::IntoRequest, @@ -1894,6 +2077,9 @@ pub mod query_client { } /// DelegatorValidators queries all validators info for given delegator /// address. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. pub async fn delegator_validators( &mut self, request: impl tonic::IntoRequest, @@ -2044,6 +2230,9 @@ pub mod query_server { #[async_trait] pub trait Query: Send + Sync + 'static { /// Validators queries all validators that match the given status. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. async fn validators( &self, request: tonic::Request, @@ -2060,6 +2249,9 @@ pub mod query_server { tonic::Status, >; /// ValidatorDelegations queries delegate info for given validator. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. async fn validator_delegations( &self, request: tonic::Request, @@ -2068,6 +2260,9 @@ pub mod query_server { tonic::Status, >; /// ValidatorUnbondingDelegations queries unbonding delegations of a validator. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. async fn validator_unbonding_delegations( &self, request: tonic::Request, @@ -2093,6 +2288,9 @@ pub mod query_server { tonic::Status, >; /// DelegatorDelegations queries all delegations of a given delegator address. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. async fn delegator_delegations( &self, request: tonic::Request, @@ -2102,6 +2300,9 @@ pub mod query_server { >; /// DelegatorUnbondingDelegations queries all unbonding delegations of a given /// delegator address. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. async fn delegator_unbonding_delegations( &self, request: tonic::Request, @@ -2110,6 +2311,9 @@ pub mod query_server { tonic::Status, >; /// Redelegations queries redelegations of given address. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. async fn redelegations( &self, request: tonic::Request, @@ -2119,6 +2323,9 @@ pub mod query_server { >; /// DelegatorValidators queries all validators info for given delegator /// address. + /// + /// When called from another module, this query might consume a high amount of + /// gas if the pagination field is incorrectly set. async fn delegator_validators( &self, request: tonic::Request, @@ -2982,6 +3189,8 @@ pub enum AuthorizationType { Undelegate = 2, /// AUTHORIZATION_TYPE_REDELEGATE defines an authorization type for Msg/BeginRedelegate Redelegate = 3, + /// AUTHORIZATION_TYPE_CANCEL_UNBONDING_DELEGATION defines an authorization type for Msg/MsgCancelUnbondingDelegation + CancelUnbondingDelegation = 4, } impl AuthorizationType { /// String value of the enum field names used in the ProtoBuf definition. @@ -2994,6 +3203,9 @@ impl AuthorizationType { AuthorizationType::Delegate => "AUTHORIZATION_TYPE_DELEGATE", AuthorizationType::Undelegate => "AUTHORIZATION_TYPE_UNDELEGATE", AuthorizationType::Redelegate => "AUTHORIZATION_TYPE_REDELEGATE", + AuthorizationType::CancelUnbondingDelegation => { + "AUTHORIZATION_TYPE_CANCEL_UNBONDING_DELEGATION" + } } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -3003,6 +3215,9 @@ impl AuthorizationType { "AUTHORIZATION_TYPE_DELEGATE" => Some(Self::Delegate), "AUTHORIZATION_TYPE_UNDELEGATE" => Some(Self::Undelegate), "AUTHORIZATION_TYPE_REDELEGATE" => Some(Self::Redelegate), + "AUTHORIZATION_TYPE_CANCEL_UNBONDING_DELEGATION" => { + Some(Self::CancelUnbondingDelegation) + } _ => None, } } @@ -3011,7 +3226,7 @@ impl AuthorizationType { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { - /// params defines all the paramaters of related to deposit. + /// params defines all the parameters of related to deposit. #[prost(message, optional, tag = "1")] pub params: ::core::option::Option, /// last_total_power tracks the total amounts of bonded tokens recorded during @@ -3022,7 +3237,7 @@ pub struct GenesisState { /// of the last-block's bonded validators. #[prost(message, repeated, tag = "3")] pub last_validator_powers: ::prost::alloc::vec::Vec, - /// delegations defines the validator set at genesis. + /// validators defines the validator set at genesis. #[prost(message, repeated, tag = "4")] pub validators: ::prost::alloc::vec::Vec, /// delegations defines the delegations active at genesis. @@ -3034,6 +3249,7 @@ pub struct GenesisState { /// redelegations defines the redelegations active at genesis. #[prost(message, repeated, tag = "7")] pub redelegations: ::prost::alloc::vec::Vec, + /// exported defines a bool to identify whether the chain dealing with exported or initialized genesis. #[prost(bool, tag = "8")] pub exported: bool, } diff --git a/src/prost/cosmos.tx.config.v1.rs b/src/prost/cosmos.tx.config.v1.rs new file mode 100644 index 00000000..b36bd58f --- /dev/null +++ b/src/prost/cosmos.tx.config.v1.rs @@ -0,0 +1,14 @@ +/// Config is the config object of the x/auth/tx package. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Config { + /// skip_ante_handler defines whether the ante handler registration should be skipped in case an app wants to override + /// this functionality. + #[prost(bool, tag = "1")] + pub skip_ante_handler: bool, + /// skip_post_handler defines whether the post handler registration should be skipped in case an app wants to override + /// this functionality. + #[prost(bool, tag = "2")] + pub skip_post_handler: bool, +} diff --git a/src/prost/cosmos.tx.signing.v1beta1.rs b/src/prost/cosmos.tx.signing.v1beta1.rs index bfed1a37..efa1b143 100644 --- a/src/prost/cosmos.tx.signing.v1beta1.rs +++ b/src/prost/cosmos.tx.signing.v1beta1.rs @@ -94,7 +94,9 @@ pub enum SignMode { Direct = 1, /// 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. It is currently not supported. + /// from SIGN_MODE_DIRECT. It is currently experimental, and should be used + /// for testing purposes only, until Textual is fully released. Please follow + /// the tracking issue Textual = 2, /// SIGN_MODE_DIRECT_AUX specifies a signing mode which uses /// SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not diff --git a/src/prost/cosmos.tx.v1beta1.rs b/src/prost/cosmos.tx.v1beta1.rs index fe8e3838..4fa31e0c 100644 --- a/src/prost/cosmos.tx.v1beta1.rs +++ b/src/prost/cosmos.tx.v1beta1.rs @@ -292,6 +292,9 @@ pub struct AuxSignerData { #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetTxsEventRequest { /// events is the list of transaction event type. + /// Deprecated post v0.47.x: use query instead, which should contain a valid + /// events query. + #[deprecated] #[prost(string, repeated, tag = "1")] pub events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// pagination defines a pagination for the request. @@ -303,13 +306,20 @@ pub struct GetTxsEventRequest { >, #[prost(enumeration = "OrderBy", tag = "3")] pub order_by: i32, - /// page is the page number to query, starts at 1. If not provided, will default to first page. + /// page is the page number to query, starts at 1. If not provided, will + /// default to first page. #[prost(uint64, tag = "4")] pub page: u64, /// 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. #[prost(uint64, tag = "5")] pub limit: u64, + /// query defines the transaction event query that is proxied to Tendermint's + /// TxSearch RPC method. The query must be valid. + /// + /// Since cosmos-sdk 0.50 + #[prost(string, tag = "6")] + pub query: ::prost::alloc::string::String, } /// GetTxsEventResponse is the response type for the Service.TxsByEvents /// RPC method. @@ -423,7 +433,8 @@ pub struct GetBlockWithTxsRequest { super::super::base::query::v1beta1::PageRequest, >, } -/// GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs method. +/// GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs +/// method. /// /// Since: cosmos-sdk 0.45.2 #[allow(clippy::derive_partial_eq_without_eq)] @@ -442,11 +453,96 @@ pub struct GetBlockWithTxsResponse { super::super::base::query::v1beta1::PageResponse, >, } +/// TxDecodeRequest is the request type for the Service.TxDecode +/// RPC method. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TxDecodeRequest { + /// tx_bytes is the raw transaction. + #[prost(bytes = "vec", tag = "1")] + pub tx_bytes: ::prost::alloc::vec::Vec, +} +/// TxDecodeResponse is the response type for the +/// Service.TxDecode method. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TxDecodeResponse { + /// tx is the decoded transaction. + #[prost(message, optional, tag = "1")] + pub tx: ::core::option::Option, +} +/// TxEncodeRequest is the request type for the Service.TxEncode +/// RPC method. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TxEncodeRequest { + /// tx is the transaction to encode. + #[prost(message, optional, tag = "1")] + pub tx: ::core::option::Option, +} +/// TxEncodeResponse is the response type for the +/// Service.TxEncode method. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TxEncodeResponse { + /// tx_bytes is the encoded transaction bytes. + #[prost(bytes = "vec", tag = "1")] + pub tx_bytes: ::prost::alloc::vec::Vec, +} +/// TxEncodeAminoRequest is the request type for the Service.TxEncodeAmino +/// RPC method. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TxEncodeAminoRequest { + #[prost(string, tag = "1")] + pub amino_json: ::prost::alloc::string::String, +} +/// TxEncodeAminoResponse is the response type for the Service.TxEncodeAmino +/// RPC method. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TxEncodeAminoResponse { + #[prost(bytes = "vec", tag = "1")] + pub amino_binary: ::prost::alloc::vec::Vec, +} +/// TxDecodeAminoRequest is the request type for the Service.TxDecodeAmino +/// RPC method. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TxDecodeAminoRequest { + #[prost(bytes = "vec", tag = "1")] + pub amino_binary: ::prost::alloc::vec::Vec, +} +/// TxDecodeAminoResponse is the response type for the Service.TxDecodeAmino +/// RPC method. +/// +/// Since: cosmos-sdk 0.47 +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TxDecodeAminoResponse { + #[prost(string, tag = "1")] + pub amino_json: ::prost::alloc::string::String, +} /// OrderBy defines the sorting order #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum OrderBy { - /// ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults to ASC in this case. + /// ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults + /// to ASC in this case. Unspecified = 0, /// ORDER_BY_ASC defines ascending order Asc = 1, @@ -475,20 +571,21 @@ impl OrderBy { } } } -/// BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method. +/// BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC +/// method. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum BroadcastMode { /// zero-value for mode ordering Unspecified = 0, - /// BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for - /// the tx to be committed in a block. + /// DEPRECATED: use BROADCAST_MODE_SYNC instead, + /// BROADCAST_MODE_BLOCK is not supported by the SDK from v0.47.x onwards. Block = 1, - /// BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for - /// a CheckTx execution response only. + /// BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits + /// for a CheckTx execution response only. Sync = 2, - /// BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns - /// immediately. + /// BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client + /// returns immediately. Async = 3, } impl BroadcastMode { @@ -731,6 +828,118 @@ pub mod service_client { .insert(GrpcMethod::new("cosmos.tx.v1beta1.Service", "GetBlockWithTxs")); self.inner.unary(req, path, codec).await } + /// TxDecode decodes the transaction. + /// + /// Since: cosmos-sdk 0.47 + pub async fn tx_decode( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.tx.v1beta1.Service/TxDecode", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.tx.v1beta1.Service", "TxDecode")); + self.inner.unary(req, path, codec).await + } + /// TxEncode encodes the transaction. + /// + /// Since: cosmos-sdk 0.47 + pub async fn tx_encode( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.tx.v1beta1.Service/TxEncode", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.tx.v1beta1.Service", "TxEncode")); + self.inner.unary(req, path, codec).await + } + /// TxEncodeAmino encodes an Amino transaction from JSON to encoded bytes. + /// + /// Since: cosmos-sdk 0.47 + pub async fn tx_encode_amino( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.tx.v1beta1.Service/TxEncodeAmino", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.tx.v1beta1.Service", "TxEncodeAmino")); + self.inner.unary(req, path, codec).await + } + /// TxDecodeAmino decodes an Amino transaction from encoded bytes to JSON. + /// + /// Since: cosmos-sdk 0.47 + pub async fn tx_decode_amino( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/cosmos.tx.v1beta1.Service/TxDecodeAmino", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("cosmos.tx.v1beta1.Service", "TxDecodeAmino")); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -780,6 +989,46 @@ pub mod service_server { tonic::Response, tonic::Status, >; + /// TxDecode decodes the transaction. + /// + /// Since: cosmos-sdk 0.47 + async fn tx_decode( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// TxEncode encodes the transaction. + /// + /// Since: cosmos-sdk 0.47 + async fn tx_encode( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// TxEncodeAmino encodes an Amino transaction from JSON to encoded bytes. + /// + /// Since: cosmos-sdk 0.47 + async fn tx_encode_amino( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// TxDecodeAmino decodes an Amino transaction from encoded bytes to JSON. + /// + /// Since: cosmos-sdk 0.47 + async fn tx_decode_amino( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// Service defines a gRPC service for interacting with transactions. #[derive(Debug)] @@ -1083,6 +1332,182 @@ pub mod service_server { }; Box::pin(fut) } + "/cosmos.tx.v1beta1.Service/TxDecode" => { + #[allow(non_camel_case_types)] + struct TxDecodeSvc(pub Arc); + impl tonic::server::UnaryService + for TxDecodeSvc { + type Response = super::TxDecodeResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { (*inner).tx_decode(request).await }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = TxDecodeSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/cosmos.tx.v1beta1.Service/TxEncode" => { + #[allow(non_camel_case_types)] + struct TxEncodeSvc(pub Arc); + impl tonic::server::UnaryService + for TxEncodeSvc { + type Response = super::TxEncodeResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { (*inner).tx_encode(request).await }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = TxEncodeSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/cosmos.tx.v1beta1.Service/TxEncodeAmino" => { + #[allow(non_camel_case_types)] + struct TxEncodeAminoSvc(pub Arc); + impl< + T: Service, + > tonic::server::UnaryService + for TxEncodeAminoSvc { + type Response = super::TxEncodeAminoResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).tx_encode_amino(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = TxEncodeAminoSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/cosmos.tx.v1beta1.Service/TxDecodeAmino" => { + #[allow(non_camel_case_types)] + struct TxDecodeAminoSvc(pub Arc); + impl< + T: Service, + > tonic::server::UnaryService + for TxDecodeAminoSvc { + type Response = super::TxDecodeAminoResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).tx_decode_amino(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = TxDecodeAminoSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( diff --git a/src/prost/cosmos.upgrade.module.v1.rs b/src/prost/cosmos.upgrade.module.v1.rs new file mode 100644 index 00000000..2243196d --- /dev/null +++ b/src/prost/cosmos.upgrade.module.v1.rs @@ -0,0 +1,8 @@ +/// Module is the config object of the upgrade module. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Module { + /// authority defines the custom module authority. If not set, defaults to the governance module. + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, +} diff --git a/src/prost/cosmos.upgrade.v1beta1.rs b/src/prost/cosmos.upgrade.v1beta1.rs index a8ec85ff..01a12467 100644 --- a/src/prost/cosmos.upgrade.v1beta1.rs +++ b/src/prost/cosmos.upgrade.v1beta1.rs @@ -19,7 +19,6 @@ pub struct Plan { #[prost(message, optional, tag = "2")] pub time: ::core::option::Option, /// The height at which the upgrade must be performed. - /// Only used if Time is not set. #[prost(int64, tag = "3")] pub height: i64, /// Any application specific upgrade info to be included on-chain @@ -43,10 +42,13 @@ pub struct Plan { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SoftwareUpgradeProposal { + /// title of the proposal #[prost(string, tag = "1")] pub title: ::prost::alloc::string::String, + /// description of the proposal #[prost(string, tag = "2")] pub description: ::prost::alloc::string::String, + /// plan of the proposal #[prost(message, optional, tag = "3")] pub plan: ::core::option::Option, } @@ -58,8 +60,10 @@ pub struct SoftwareUpgradeProposal { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CancelSoftwareUpgradeProposal { + /// title of the proposal #[prost(string, tag = "1")] pub title: ::prost::alloc::string::String, + /// description of the proposal #[prost(string, tag = "2")] pub description: ::prost::alloc::string::String, } @@ -84,7 +88,7 @@ pub struct ModuleVersion { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSoftwareUpgrade { - /// authority is the address of the governance account. + /// authority is the address that controls the module (defaults to x/gov unless overwritten). #[prost(string, tag = "1")] pub authority: ::prost::alloc::string::String, /// plan is the upgrade plan. @@ -105,7 +109,7 @@ pub struct MsgSoftwareUpgradeResponse {} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgCancelUpgrade { - /// authority is the address of the governance account. + /// authority is the address that controls the module (defaults to x/gov unless overwritten). #[prost(string, tag = "1")] pub authority: ::prost::alloc::string::String, } @@ -234,7 +238,7 @@ pub mod msg_client { self.inner.unary(req, path, codec).await } /// CancelUpgrade is a governance operation for cancelling a previously - /// approvid software upgrade. + /// approved software upgrade. /// /// Since: cosmos-sdk 0.46 pub async fn cancel_upgrade( @@ -283,7 +287,7 @@ pub mod msg_server { tonic::Status, >; /// CancelUpgrade is a governance operation for cancelling a previously - /// approvid software upgrade. + /// approved software upgrade. /// /// Since: cosmos-sdk 0.46 async fn cancel_upgrade( diff --git a/src/prost/google.protobuf.rs b/src/prost/google.protobuf.rs index 75994214..a19234a4 100644 --- a/src/prost/google.protobuf.rs +++ b/src/prost/google.protobuf.rs @@ -44,9 +44,14 @@ pub struct FileDescriptorProto { #[prost(message, optional, tag = "9")] pub source_code_info: ::core::option::Option, /// The syntax of the proto file. - /// The supported values are "proto2" and "proto3". + /// The supported values are "proto2", "proto3", and "editions". + /// + /// If `edition` is present, this value must be "editions". #[prost(string, optional, tag = "12")] pub syntax: ::core::option::Option<::prost::alloc::string::String>, + /// The edition of the proto file, which is an opaque string. + #[prost(string, optional, tag = "13")] + pub edition: ::core::option::Option<::prost::alloc::string::String>, } /// Describes a message type. #[allow(clippy::derive_partial_eq_without_eq)] @@ -109,6 +114,92 @@ pub struct ExtensionRangeOptions { /// The parser stores options it doesn't recognize here. See above. #[prost(message, repeated, tag = "999")] pub uninterpreted_option: ::prost::alloc::vec::Vec, + /// go/protobuf-stripping-extension-declarations + /// Like Metadata, but we use a repeated field to hold all extension + /// declarations. This should avoid the size increases of transforming a large + /// extension range into small ranges in generated binaries. + #[prost(message, repeated, tag = "2")] + pub declaration: ::prost::alloc::vec::Vec, + /// The verification state of the range. + /// TODO(b/278783756): flip the default to DECLARATION once all empty ranges + /// are marked as UNVERIFIED. + #[prost( + enumeration = "extension_range_options::VerificationState", + optional, + tag = "3", + default = "Unverified" + )] + pub verification: ::core::option::Option, +} +/// Nested message and enum types in `ExtensionRangeOptions`. +pub mod extension_range_options { + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct Declaration { + /// The extension number declared within the extension range. + #[prost(int32, optional, tag = "1")] + pub number: ::core::option::Option, + /// The fully-qualified name of the extension field. There must be a leading + /// dot in front of the full name. + #[prost(string, optional, tag = "2")] + pub full_name: ::core::option::Option<::prost::alloc::string::String>, + /// The fully-qualified type name of the extension field. Unlike + /// Metadata.type, Declaration.type must have a leading dot for messages + /// and enums. + #[prost(string, optional, tag = "3")] + pub r#type: ::core::option::Option<::prost::alloc::string::String>, + /// Deprecated. Please use "repeated". + #[deprecated] + #[prost(bool, optional, tag = "4")] + pub is_repeated: ::core::option::Option, + /// If true, indicates that the number is reserved in the extension range, + /// and any extension field with the number will fail to compile. Set this + /// when a declared extension field is deleted. + #[prost(bool, optional, tag = "5")] + pub reserved: ::core::option::Option, + /// If true, indicates that the extension must be defined as repeated. + /// Otherwise the extension must be defined as optional. + #[prost(bool, optional, tag = "6")] + pub repeated: ::core::option::Option, + } + /// The verification state of the extension range. + #[derive( + Clone, + Copy, + Debug, + PartialEq, + Eq, + Hash, + PartialOrd, + Ord, + ::prost::Enumeration + )] + #[repr(i32)] + pub enum VerificationState { + /// All the extensions of the range must be declared. + Declaration = 0, + Unverified = 1, + } + impl VerificationState { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + VerificationState::Declaration => "DECLARATION", + VerificationState::Unverified => "UNVERIFIED", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DECLARATION" => Some(Self::Declaration), + "UNVERIFIED" => Some(Self::Unverified), + _ => None, + } + } + } } /// Describes a field within a message. #[allow(clippy::derive_partial_eq_without_eq)] @@ -608,6 +699,10 @@ pub struct MessageOptions { /// this is a formalization for deprecating messages. #[prost(bool, optional, tag = "3", default = "false")] pub deprecated: ::core::option::Option, + /// NOTE: Do not set the option in .proto files. Always use the maps syntax + /// instead. The option should only be implicitly set by the proto compiler + /// parser. + /// /// Whether the message is an automatically generated map entry type for the /// maps field. /// @@ -625,12 +720,21 @@ pub struct MessageOptions { /// use a native map in the target language to hold the keys and values. /// The reflection APIs in such implementations still need to work as /// if the field is a repeated message field. - /// - /// NOTE: Do not set the option in .proto files. Always use the maps syntax - /// instead. The option should only be implicitly set by the proto compiler - /// parser. #[prost(bool, optional, tag = "7")] pub map_entry: ::core::option::Option, + /// Enable the legacy handling of JSON field name conflicts. This lowercases + /// and strips underscored from the fields before comparison in proto3 only. + /// The new behavior takes `json_name` into account and applies to proto2 as + /// well. + /// + /// This should only be used as a temporary measure against broken builds due + /// to the change in behavior for JSON field name conflicts. + /// + /// TODO(b/261750190) This is legacy behavior we plan to remove once downstream + /// teams have had time to migrate. + #[deprecated] + #[prost(bool, optional, tag = "11")] + pub deprecated_legacy_json_field_conflicts: ::core::option::Option, /// The parser stores options it doesn't recognize here. See above. #[prost(message, repeated, tag = "999")] pub uninterpreted_option: ::prost::alloc::vec::Vec, @@ -640,8 +744,10 @@ pub struct MessageOptions { pub struct FieldOptions { /// The ctype option instructs the C++ code generator to use a different /// representation of the field than it normally would. See the specific - /// options below. This option is not yet implemented in the open source - /// release -- sorry, we'll try to include it in a future version! + /// options below. This option is only implemented to support use of + /// \[ctype=CORD\] and \[ctype=STRING\] (the default) on non-repeated fields of + /// type "bytes" in the open source release -- sorry, we'll try to include + /// other types in a future version! #[prost( enumeration = "field_options::CType", optional, @@ -691,7 +797,6 @@ pub struct FieldOptions { /// call from multiple threads concurrently, while non-const methods continue /// to require exclusive access. /// - /// /// Note that implementations may choose not to check required fields within /// a lazy sub-message. That is, calling IsInitialized() on the outer message /// may return true even if the inner message has missing required fields. @@ -703,11 +808,8 @@ pub struct FieldOptions { /// check its required fields, regardless of whether or not the message has /// been parsed. /// - /// As of 2021, lazy does no correctness checks on the byte stream during - /// parsing. This may lead to crashes if and when an invalid byte stream is - /// finally parsed upon access. - /// - /// TODO(b/211906113): Enable validation on lazy fields. + /// As of May 2022, lazy verifies the contents of the byte stream during + /// parsing. An invalid byte stream will cause the overall parsing to fail. #[prost(bool, optional, tag = "5", default = "false")] pub lazy: ::core::option::Option, /// unverified_lazy does no correctness checks on the byte stream. This should @@ -724,6 +826,22 @@ pub struct FieldOptions { /// For Google-internal migration only. Do not use. #[prost(bool, optional, tag = "10", default = "false")] pub weak: ::core::option::Option, + /// Indicate that the field value should not be printed out when using debug + /// formats, e.g. when the field contains sensitive credentials. + #[prost(bool, optional, tag = "16", default = "false")] + pub debug_redact: ::core::option::Option, + #[prost(enumeration = "field_options::OptionRetention", optional, tag = "17")] + pub retention: ::core::option::Option, + #[deprecated] + #[prost(enumeration = "field_options::OptionTargetType", optional, tag = "18")] + pub target: ::core::option::Option, + #[prost( + enumeration = "field_options::OptionTargetType", + repeated, + packed = "false", + tag = "19" + )] + pub targets: ::prost::alloc::vec::Vec, /// The parser stores options it doesn't recognize here. See above. #[prost(message, repeated, tag = "999")] pub uninterpreted_option: ::prost::alloc::vec::Vec, @@ -745,6 +863,12 @@ pub mod field_options { pub enum CType { /// Default mode. String = 0, + /// The option \[ctype=CORD\] may be applied to a non-repeated field of type + /// "bytes". It indicates that in C++, the data should be stored in a Cord + /// instead of a string. For very large strings, this may reduce memory + /// fragmentation. It may also allow better performance when parsing from a + /// Cord, or when parsing with aliasing enabled, as the parsed Cord may then + /// alias the original buffer. Cord = 1, StringPiece = 2, } @@ -812,6 +936,114 @@ pub mod field_options { } } } + /// If set to RETENTION_SOURCE, the option will be omitted from the binary. + /// Note: as of January 2023, support for this is in progress and does not yet + /// have an effect (b/264593489). + #[derive( + Clone, + Copy, + Debug, + PartialEq, + Eq, + Hash, + PartialOrd, + Ord, + ::prost::Enumeration + )] + #[repr(i32)] + pub enum OptionRetention { + RetentionUnknown = 0, + RetentionRuntime = 1, + RetentionSource = 2, + } + impl OptionRetention { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + OptionRetention::RetentionUnknown => "RETENTION_UNKNOWN", + OptionRetention::RetentionRuntime => "RETENTION_RUNTIME", + OptionRetention::RetentionSource => "RETENTION_SOURCE", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "RETENTION_UNKNOWN" => Some(Self::RetentionUnknown), + "RETENTION_RUNTIME" => Some(Self::RetentionRuntime), + "RETENTION_SOURCE" => Some(Self::RetentionSource), + _ => None, + } + } + } + /// This indicates the types of entities that the field may apply to when used + /// as an option. If it is unset, then the field may be freely used as an + /// option on any kind of entity. Note: as of January 2023, support for this is + /// in progress and does not yet have an effect (b/264593489). + #[derive( + Clone, + Copy, + Debug, + PartialEq, + Eq, + Hash, + PartialOrd, + Ord, + ::prost::Enumeration + )] + #[repr(i32)] + pub enum OptionTargetType { + TargetTypeUnknown = 0, + TargetTypeFile = 1, + TargetTypeExtensionRange = 2, + TargetTypeMessage = 3, + TargetTypeField = 4, + TargetTypeOneof = 5, + TargetTypeEnum = 6, + TargetTypeEnumEntry = 7, + TargetTypeService = 8, + TargetTypeMethod = 9, + } + impl OptionTargetType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + OptionTargetType::TargetTypeUnknown => "TARGET_TYPE_UNKNOWN", + OptionTargetType::TargetTypeFile => "TARGET_TYPE_FILE", + OptionTargetType::TargetTypeExtensionRange => { + "TARGET_TYPE_EXTENSION_RANGE" + } + OptionTargetType::TargetTypeMessage => "TARGET_TYPE_MESSAGE", + OptionTargetType::TargetTypeField => "TARGET_TYPE_FIELD", + OptionTargetType::TargetTypeOneof => "TARGET_TYPE_ONEOF", + OptionTargetType::TargetTypeEnum => "TARGET_TYPE_ENUM", + OptionTargetType::TargetTypeEnumEntry => "TARGET_TYPE_ENUM_ENTRY", + OptionTargetType::TargetTypeService => "TARGET_TYPE_SERVICE", + OptionTargetType::TargetTypeMethod => "TARGET_TYPE_METHOD", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "TARGET_TYPE_UNKNOWN" => Some(Self::TargetTypeUnknown), + "TARGET_TYPE_FILE" => Some(Self::TargetTypeFile), + "TARGET_TYPE_EXTENSION_RANGE" => Some(Self::TargetTypeExtensionRange), + "TARGET_TYPE_MESSAGE" => Some(Self::TargetTypeMessage), + "TARGET_TYPE_FIELD" => Some(Self::TargetTypeField), + "TARGET_TYPE_ONEOF" => Some(Self::TargetTypeOneof), + "TARGET_TYPE_ENUM" => Some(Self::TargetTypeEnum), + "TARGET_TYPE_ENUM_ENTRY" => Some(Self::TargetTypeEnumEntry), + "TARGET_TYPE_SERVICE" => Some(Self::TargetTypeService), + "TARGET_TYPE_METHOD" => Some(Self::TargetTypeMethod), + _ => None, + } + } + } } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -833,6 +1065,15 @@ pub struct EnumOptions { /// is a formalization for deprecating enums. #[prost(bool, optional, tag = "3", default = "false")] pub deprecated: ::core::option::Option, + /// Enable the legacy handling of JSON field name conflicts. This lowercases + /// and strips underscored from the fields before comparison in proto3 only. + /// The new behavior takes `json_name` into account and applies to proto2 as + /// well. + /// TODO(b/261750190) Remove this legacy behavior once downstream teams have + /// had time to migrate. + #[deprecated] + #[prost(bool, optional, tag = "6")] + pub deprecated_legacy_json_field_conflicts: ::core::option::Option, /// The parser stores options it doesn't recognize here. See above. #[prost(message, repeated, tag = "999")] pub uninterpreted_option: ::prost::alloc::vec::Vec, @@ -1145,10 +1386,59 @@ pub mod generated_code_info { #[prost(int32, optional, tag = "3")] pub begin: ::core::option::Option, /// Identifies the ending offset in bytes in the generated code that - /// relates to the identified offset. The end offset should be one past + /// relates to the identified object. The end offset should be one past /// the last relevant byte (so the length of the text = end - begin). #[prost(int32, optional, tag = "4")] pub end: ::core::option::Option, + #[prost(enumeration = "annotation::Semantic", optional, tag = "5")] + pub semantic: ::core::option::Option, + } + /// Nested message and enum types in `Annotation`. + pub mod annotation { + /// Represents the identified object's effect on the element in the original + /// .proto file. + #[derive( + Clone, + Copy, + Debug, + PartialEq, + Eq, + Hash, + PartialOrd, + Ord, + ::prost::Enumeration + )] + #[repr(i32)] + pub enum Semantic { + /// There is no effect or the effect is indescribable. + None = 0, + /// The element is set or otherwise mutated. + Set = 1, + /// An alias to the element is returned. + Alias = 2, + } + impl Semantic { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Semantic::None => "NONE", + Semantic::Set => "SET", + Semantic::Alias => "ALIAS", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NONE" => Some(Self::None), + "SET" => Some(Self::Set), + "ALIAS" => Some(Self::Alias), + _ => None, + } + } + } } } /// `Any` contains an arbitrary serialized protocol buffer message along with a @@ -1175,6 +1465,10 @@ pub mod generated_code_info { /// if (any.is(Foo.class)) { /// foo = any.unpack(Foo.class); /// } +/// // or ... +/// if (any.isSameTypeAs(Foo.getDefaultInstance())) { +/// foo = any.unpack(Foo.getDefaultInstance()); +/// } /// /// Example 3: Pack and unpack a message in Python. /// @@ -1189,10 +1483,13 @@ pub mod generated_code_info { /// Example 4: Pack and unpack a message in Go /// /// foo := &pb.Foo{...} -/// any, err := ptypes.MarshalAny(foo) +/// any, err := anypb.New(foo) +/// if err != nil { +/// ... +/// } /// ... /// foo := &pb.Foo{} -/// if err := ptypes.UnmarshalAny(any, foo); err != nil { +/// if err := any.UnmarshalTo(foo); err != nil { /// ... /// } /// @@ -1202,7 +1499,6 @@ pub mod generated_code_info { /// in the type URL, for example "foo.bar.com/x/y.z" will yield type /// name "y.z". /// -/// /// JSON /// ==== /// The JSON representation of an `Any` value uses the regular @@ -1320,7 +1616,6 @@ pub struct Any { /// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) /// .setNanos((int) ((millis % 1000) * 1000000)).build(); /// -/// /// Example 5: Compute Timestamp from Java `Instant.now()`. /// /// Instant now = Instant.now(); @@ -1329,7 +1624,6 @@ pub struct Any { /// Timestamp.newBuilder().setSeconds(now.getEpochSecond()) /// .setNanos(now.getNano()).build(); /// -/// /// Example 6: Compute Timestamp from current time in Python. /// /// timestamp = Timestamp() @@ -1359,10 +1653,9 @@ pub struct Any { /// \[`strftime`\]() with /// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use /// the Joda Time's \[`ISODateTimeFormat.dateTime()`\]( -/// +/// ) /// ) to obtain a formatter capable of generating timestamps in this format. /// -/// #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1438,7 +1731,6 @@ pub struct Timestamp { /// be expressed in JSON format as "3.000000001s", and 3 seconds and 1 /// microsecond should be expressed in JSON format as "3.000001s". /// -/// #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[derive(Eq)] #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/src/prost/ibc.applications.fee.v1.rs b/src/prost/ibc.applications.fee.v1.rs index 2ec27051..a385ca63 100644 --- a/src/prost/ibc.applications.fee.v1.rs +++ b/src/prost/ibc.applications.fee.v1.rs @@ -816,6 +816,11 @@ pub struct QueryIncentivizedPacketsResponse { /// list of identified fees for incentivized packets #[prost(message, repeated, tag = "1")] pub incentivized_packets: ::prost::alloc::vec::Vec, + /// pagination defines the pagination in the response. + #[prost(message, optional, tag = "2")] + pub pagination: ::core::option::Option< + super::super::super::super::cosmos::base::query::v1beta1::PageResponse, + >, } /// QueryIncentivizedPacketRequest defines the request type for the IncentivizedPacket rpc #[allow(clippy::derive_partial_eq_without_eq)] @@ -863,6 +868,11 @@ pub struct QueryIncentivizedPacketsForChannelResponse { /// Map of all incentivized_packets #[prost(message, repeated, tag = "1")] pub incentivized_packets: ::prost::alloc::vec::Vec, + /// pagination defines the pagination in the response. + #[prost(message, optional, tag = "2")] + pub pagination: ::core::option::Option< + super::super::super::super::cosmos::base::query::v1beta1::PageResponse, + >, } /// QueryTotalRecvFeesRequest defines the request type for the TotalRecvFees rpc #[allow(clippy::derive_partial_eq_without_eq)] @@ -982,6 +992,11 @@ pub struct QueryFeeEnabledChannelsResponse { /// list of fee enabled channels #[prost(message, repeated, tag = "1")] pub fee_enabled_channels: ::prost::alloc::vec::Vec, + /// pagination defines the pagination in the response. + #[prost(message, optional, tag = "2")] + pub pagination: ::core::option::Option< + super::super::super::super::cosmos::base::query::v1beta1::PageResponse, + >, } /// QueryFeeEnabledChannelRequest defines the request type for the FeeEnabledChannel rpc #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/src/prost/ibc.applications.interchain_accounts.controller.v1.rs b/src/prost/ibc.applications.interchain_accounts.controller.v1.rs index 68b35d39..9d89a714 100644 --- a/src/prost/ibc.applications.interchain_accounts.controller.v1.rs +++ b/src/prost/ibc.applications.interchain_accounts.controller.v1.rs @@ -1,4 +1,14 @@ -/// MsgRegisterInterchainAccount defines the payload for Msg/MsgRegisterInterchainAccount +/// Params defines the set of on-chain interchain accounts parameters. +/// The following parameters may be used to disable the controller submodule. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Params { + /// controller_enabled enables or disables the controller submodule. + #[prost(bool, tag = "1")] + pub controller_enabled: bool, +} +/// MsgRegisterInterchainAccount defines the payload for Msg/RegisterAccount #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -10,13 +20,15 @@ pub struct MsgRegisterInterchainAccount { #[prost(string, tag = "3")] pub version: ::prost::alloc::string::String, } -/// MsgRegisterInterchainAccountResponse defines the response for Msg/MsgRegisterInterchainAccountResponse +/// MsgRegisterInterchainAccountResponse defines the response for Msg/RegisterAccount #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRegisterInterchainAccountResponse { #[prost(string, tag = "1")] pub channel_id: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub port_id: ::prost::alloc::string::String, } /// MsgSendTx defines the payload for Msg/SendTx #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] @@ -44,6 +56,25 @@ pub struct MsgSendTxResponse { #[prost(uint64, tag = "1")] pub sequence: u64, } +/// MsgUpdateParams defines the payload for Msg/UpdateParams +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParams { + /// authority is the address that controls the module (defaults to x/gov unless overwritten). + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the 27-interchain-accounts/controller parameters to update. + /// + /// NOTE: All parameters must be supplied. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +/// MsgUpdateParamsResponse defines the response for Msg/UpdateParams +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParamsResponse {} /// Generated client implementations. #[cfg(feature = "client")] pub mod msg_client { @@ -193,6 +224,37 @@ pub mod msg_client { ); self.inner.unary(req, path, codec).await } + /// UpdateParams defines a rpc handler for MsgUpdateParams. + pub async fn update_params( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/ibc.applications.interchain_accounts.controller.v1.Msg/UpdateParams", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "ibc.applications.interchain_accounts.controller.v1.Msg", + "UpdateParams", + ), + ); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -219,6 +281,14 @@ pub mod msg_server { tonic::Response, tonic::Status, >; + /// UpdateParams defines a rpc handler for MsgUpdateParams. + async fn update_params( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// Msg defines the 27-interchain-accounts/controller Msg service. #[derive(Debug)] @@ -388,6 +458,50 @@ pub mod msg_server { }; Box::pin(fut) } + "/ibc.applications.interchain_accounts.controller.v1.Msg/UpdateParams" => { + #[allow(non_camel_case_types)] + struct UpdateParamsSvc(pub Arc); + impl tonic::server::UnaryService + for UpdateParamsSvc { + type Response = super::MsgUpdateParamsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).update_params(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = UpdateParamsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( @@ -429,16 +543,6 @@ pub mod msg_server { const NAME: &'static str = "ibc.applications.interchain_accounts.controller.v1.Msg"; } } -/// Params defines the set of on-chain interchain accounts parameters. -/// The following parameters may be used to disable the controller submodule. -#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Params { - /// controller_enabled enables or disables the controller submodule. - #[prost(bool, tag = "1")] - pub controller_enabled: bool, -} /// QueryInterchainAccountRequest is the request type for the Query/InterchainAccount RPC method. #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/src/prost/ibc.applications.interchain_accounts.host.v1.rs b/src/prost/ibc.applications.interchain_accounts.host.v1.rs index f5f51ff1..4063fc88 100644 --- a/src/prost/ibc.applications.interchain_accounts.host.v1.rs +++ b/src/prost/ibc.applications.interchain_accounts.host.v1.rs @@ -11,6 +11,327 @@ pub struct Params { #[prost(string, repeated, tag = "2")] pub allow_messages: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } +/// MsgUpdateParams defines the payload for Msg/UpdateParams +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParams { + /// authority is the address that controls the module (defaults to x/gov unless overwritten). + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the 27-interchain-accounts/host parameters to update. + /// + /// NOTE: All parameters must be supplied. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +/// MsgUpdateParamsResponse defines the response for Msg/UpdateParams +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParamsResponse {} +/// Generated client implementations. +#[cfg(feature = "client")] +pub mod msg_client { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + /// Msg defines the 27-interchain-accounts/host Msg service. + #[derive(Debug, Clone)] + pub struct MsgClient { + inner: tonic::client::Grpc, + } + impl MsgClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl MsgClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> MsgClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + Send + Sync, + { + MsgClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /// UpdateParams defines a rpc handler for MsgUpdateParams. + pub async fn update_params( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/ibc.applications.interchain_accounts.host.v1.Msg/UpdateParams", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "ibc.applications.interchain_accounts.host.v1.Msg", + "UpdateParams", + ), + ); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +#[cfg(feature = "server")] +pub mod msg_server { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. + #[async_trait] + pub trait Msg: Send + Sync + 'static { + /// UpdateParams defines a rpc handler for MsgUpdateParams. + async fn update_params( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + /// Msg defines the 27-interchain-accounts/host Msg service. + #[derive(Debug)] + pub struct MsgServer { + inner: _Inner, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + struct _Inner(Arc); + impl MsgServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + let inner = _Inner(inner); + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for MsgServer + where + T: Msg, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + let inner = self.inner.clone(); + match req.uri().path() { + "/ibc.applications.interchain_accounts.host.v1.Msg/UpdateParams" => { + #[allow(non_camel_case_types)] + struct UpdateParamsSvc(pub Arc); + impl tonic::server::UnaryService + for UpdateParamsSvc { + type Response = super::MsgUpdateParamsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).update_params(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = UpdateParamsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + Ok( + http::Response::builder() + .status(200) + .header("grpc-status", "12") + .header("content-type", "application/grpc") + .body(empty_body()) + .unwrap(), + ) + }) + } + } + } + } + impl Clone for MsgServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + impl Clone for _Inner { + fn clone(&self) -> Self { + Self(Arc::clone(&self.0)) + } + } + impl std::fmt::Debug for _Inner { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:?}", self.0) + } + } + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = "ibc.applications.interchain_accounts.host.v1.Msg"; + } +} /// QueryParamsRequest is the request type for the Query/Params RPC method. #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/src/prost/ibc.applications.transfer.v1.rs b/src/prost/ibc.applications.transfer.v1.rs index f5cc7bd1..022cb7fb 100644 --- a/src/prost/ibc.applications.transfer.v1.rs +++ b/src/prost/ibc.applications.transfer.v1.rs @@ -1,3 +1,34 @@ +/// DenomTrace contains the base denomination for ICS20 fungible tokens and the +/// source tracing information path. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DenomTrace { + /// path defines the chain of port/channel identifiers used for tracing the + /// source of the fungible token. + #[prost(string, tag = "1")] + pub path: ::prost::alloc::string::String, + /// base denomination of the relayed fungible token. + #[prost(string, tag = "2")] + pub base_denom: ::prost::alloc::string::String, +} +/// 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. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Params { + /// send_enabled enables or disables all cross-chain token transfers from this + /// chain. + #[prost(bool, tag = "1")] + pub send_enabled: bool, + /// receive_enabled enables or disables all cross-chain token transfers to this + /// chain. + #[prost(bool, tag = "2")] + pub receive_enabled: bool, +} /// MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between /// ICS20 enabled chains. See ICS Spec here: /// @@ -46,6 +77,26 @@ pub struct MsgTransferResponse { #[prost(uint64, tag = "1")] pub sequence: u64, } +/// MsgUpdateParams is the Msg/UpdateParams request type. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParams { + /// authority is the address that controls the module (defaults to x/gov unless overwritten). + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the transfer parameters to update. + /// + /// NOTE: All parameters must be supplied. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +/// MsgUpdateParamsResponse defines the response structure for executing a +/// MsgUpdateParams message. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParamsResponse {} /// Generated client implementations. #[cfg(feature = "client")] pub mod msg_client { @@ -159,6 +210,34 @@ pub mod msg_client { .insert(GrpcMethod::new("ibc.applications.transfer.v1.Msg", "Transfer")); self.inner.unary(req, path, codec).await } + /// UpdateParams defines a rpc handler for MsgUpdateParams. + pub async fn update_params( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/ibc.applications.transfer.v1.Msg/UpdateParams", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("ibc.applications.transfer.v1.Msg", "UpdateParams"), + ); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -177,6 +256,14 @@ pub mod msg_server { tonic::Response, tonic::Status, >; + /// UpdateParams defines a rpc handler for MsgUpdateParams. + async fn update_params( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// Msg defines the ibc/transfer Msg service. #[derive(Debug)] @@ -300,6 +387,50 @@ pub mod msg_server { }; Box::pin(fut) } + "/ibc.applications.transfer.v1.Msg/UpdateParams" => { + #[allow(non_camel_case_types)] + struct UpdateParamsSvc(pub Arc); + impl tonic::server::UnaryService + for UpdateParamsSvc { + type Response = super::MsgUpdateParamsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).update_params(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = UpdateParamsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( @@ -341,37 +472,6 @@ pub mod msg_server { const NAME: &'static str = "ibc.applications.transfer.v1.Msg"; } } -/// DenomTrace contains the base denomination for ICS20 fungible tokens and the -/// source tracing information path. -#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct DenomTrace { - /// path defines the chain of port/channel identifiers used for tracing the - /// source of the fungible token. - #[prost(string, tag = "1")] - pub path: ::prost::alloc::string::String, - /// base denomination of the relayed fungible token. - #[prost(string, tag = "2")] - pub base_denom: ::prost::alloc::string::String, -} -/// 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. -#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Params { - /// send_enabled enables or disables all cross-chain token transfers from this - /// chain. - #[prost(bool, tag = "1")] - pub send_enabled: bool, - /// receive_enabled enables or disables all cross-chain token transfers to this - /// chain. - #[prost(bool, tag = "2")] - pub receive_enabled: bool, -} /// QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC /// method #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] @@ -474,6 +574,24 @@ pub struct QueryEscrowAddressResponse { #[prost(string, tag = "1")] pub escrow_address: ::prost::alloc::string::String, } +/// QueryTotalEscrowForDenomRequest is the request type for TotalEscrowForDenom RPC method. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryTotalEscrowForDenomRequest { + #[prost(string, tag = "1")] + pub denom: ::prost::alloc::string::String, +} +/// QueryTotalEscrowForDenomResponse is the response type for TotalEscrowForDenom RPC method. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryTotalEscrowForDenomResponse { + #[prost(message, optional, tag = "1")] + pub amount: ::core::option::Option< + super::super::super::super::cosmos::base::v1beta1::Coin, + >, +} /// Generated client implementations. #[cfg(feature = "client")] pub mod query_client { @@ -702,6 +820,37 @@ pub mod query_client { ); self.inner.unary(req, path, codec).await } + /// TotalEscrowForDenom returns the total amount of tokens in escrow based on the denom. + pub async fn total_escrow_for_denom( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/ibc.applications.transfer.v1.Query/TotalEscrowForDenom", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "ibc.applications.transfer.v1.Query", + "TotalEscrowForDenom", + ), + ); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -752,6 +901,14 @@ pub mod query_server { tonic::Response, tonic::Status, >; + /// TotalEscrowForDenom returns the total amount of tokens in escrow based on the denom. + async fn total_escrow_for_denom( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// Query provides defines the gRPC querier service. #[derive(Debug)] @@ -1055,6 +1212,54 @@ pub mod query_server { }; Box::pin(fut) } + "/ibc.applications.transfer.v1.Query/TotalEscrowForDenom" => { + #[allow(non_camel_case_types)] + struct TotalEscrowForDenomSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService + for TotalEscrowForDenomSvc { + type Response = super::QueryTotalEscrowForDenomResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::QueryTotalEscrowForDenomRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).total_escrow_for_denom(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = TotalEscrowForDenomSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( @@ -1137,4 +1342,10 @@ pub struct GenesisState { pub denom_traces: ::prost::alloc::vec::Vec, #[prost(message, optional, tag = "3")] pub params: ::core::option::Option, + /// total_escrowed contains the total amount of tokens escrowed + /// by the transfer module + #[prost(message, repeated, tag = "4")] + pub total_escrowed: ::prost::alloc::vec::Vec< + super::super::super::super::cosmos::base::v1beta1::Coin, + >, } diff --git a/src/prost/ibc.core.channel.v1.rs b/src/prost/ibc.core.channel.v1.rs index 1b33da16..0611a0ba 100644 --- a/src/prost/ibc.core.channel.v1.rs +++ b/src/prost/ibc.core.channel.v1.rs @@ -169,6 +169,20 @@ pub mod acknowledgement { Error(::prost::alloc::string::String), } } +/// Timeout defines an execution deadline structure for 04-channel handlers. +/// This includes packet lifecycle handlers as well as the upgrade handshake handlers. +/// A valid Timeout contains either one or both of a timestamp and block height (sequence). +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Timeout { + /// block height after which the packet or upgrade times out + #[prost(message, optional, tag = "1")] + pub height: ::core::option::Option, + /// block timestamp (in nanoseconds) after which the packet or upgrade times out + #[prost(uint64, tag = "2")] + pub timestamp: u64, +} /// State defines if a channel is in one of the following states: /// CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] @@ -340,6 +354,8 @@ pub struct MsgChannelOpenTry { pub struct MsgChannelOpenTryResponse { #[prost(string, tag = "1")] pub version: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub channel_id: ::prost::alloc::string::String, } /// MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge /// the change of channel state to TRYOPEN on Chain B. @@ -1986,6 +2002,35 @@ pub struct QueryNextSequenceReceiveResponse { #[prost(message, optional, tag = "3")] pub proof_height: ::core::option::Option, } +/// QueryNextSequenceSendRequest is the request type for the +/// Query/QueryNextSequenceSend RPC method +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryNextSequenceSendRequest { + /// port unique identifier + #[prost(string, tag = "1")] + pub port_id: ::prost::alloc::string::String, + /// channel unique identifier + #[prost(string, tag = "2")] + pub channel_id: ::prost::alloc::string::String, +} +/// QueryNextSequenceSendResponse is the request type for the +/// Query/QueryNextSequenceSend RPC method +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryNextSequenceSendResponse { + /// next sequence send number + #[prost(uint64, tag = "1")] + pub next_sequence_send: u64, + /// merkle proof of existence + #[prost(bytes = "vec", tag = "2")] + pub proof: ::prost::alloc::vec::Vec, + /// height at which the proof was retrieved + #[prost(message, optional, tag = "3")] + pub proof_height: ::core::option::Option, +} /// Generated client implementations. #[cfg(feature = "client")] pub mod query_client { @@ -2440,6 +2485,34 @@ pub mod query_client { ); self.inner.unary(req, path, codec).await } + /// NextSequenceSend returns the next send sequence for a given channel. + pub async fn next_sequence_send( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/ibc.core.channel.v1.Query/NextSequenceSend", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("ibc.core.channel.v1.Query", "NextSequenceSend"), + ); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -2562,6 +2635,14 @@ pub mod query_server { tonic::Response, tonic::Status, >; + /// NextSequenceSend returns the next send sequence for a given channel. + async fn next_sequence_send( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// Query provides defines the gRPC querier service #[derive(Debug)] @@ -3252,6 +3333,52 @@ pub mod query_server { }; Box::pin(fut) } + "/ibc.core.channel.v1.Query/NextSequenceSend" => { + #[allow(non_camel_case_types)] + struct NextSequenceSendSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService + for NextSequenceSendSvc { + type Response = super::QueryNextSequenceSendResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).next_sequence_send(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = NextSequenceSendSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( diff --git a/src/prost/ibc.core.client.v1.rs b/src/prost/ibc.core.client.v1.rs index d9da0517..9f76b0d8 100644 --- a/src/prost/ibc.core.client.v1.rs +++ b/src/prost/ibc.core.client.v1.rs @@ -121,7 +121,9 @@ pub struct Height { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { - /// allowed_clients defines the list of allowed client state types. + /// allowed_clients defines the list of allowed client state types which can be created + /// and interacted with. If a client type is removed from the allowed clients list, usage + /// of this client will be disabled until it is added again to the list. #[prost(string, repeated, tag = "1")] pub allowed_clients: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } @@ -141,7 +143,9 @@ pub struct GenesisState { pub clients_metadata: ::prost::alloc::vec::Vec, #[prost(message, optional, tag = "4")] pub params: ::core::option::Option, - /// create localhost on initialization + /// Deprecated: create_localhost has been deprecated. + /// The localhost client is automatically created at genesis. + #[deprecated] #[prost(bool, tag = "5")] pub create_localhost: bool, /// the sequence for the next generated client identifier @@ -198,7 +202,7 @@ pub struct MsgCreateClient { #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgCreateClientResponse {} /// MsgUpdateClient defines an sdk.Msg to update a IBC client state using -/// the given header. +/// the given client message. #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -206,9 +210,9 @@ pub struct MsgUpdateClient { /// client unique identifier #[prost(string, tag = "1")] pub client_id: ::prost::alloc::string::String, - /// header to update the light client + /// client message to update the light client #[prost(message, optional, tag = "2")] - pub header: ::core::option::Option< + pub client_message: ::core::option::Option< super::super::super::super::google::protobuf::Any, >, /// signer address @@ -257,6 +261,7 @@ pub struct MsgUpgradeClient { pub struct MsgUpgradeClientResponse {} /// MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for /// light client misbehaviour. +/// This message has been deprecated. Use MsgUpdateClient instead. #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -279,6 +284,25 @@ pub struct MsgSubmitMisbehaviour { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgSubmitMisbehaviourResponse {} +/// MsgUpdateParams defines the sdk.Msg type to update the client parameters. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParams { + /// authority is the address of the governance account. + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the client parameters to update. + /// + /// NOTE: All parameters must be supplied. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +/// MsgUpdateParamsResponse defines the MsgUpdateParams response type. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParamsResponse {} /// Generated client implementations. #[cfg(feature = "client")] pub mod msg_client { @@ -470,6 +494,32 @@ pub mod msg_client { .insert(GrpcMethod::new("ibc.core.client.v1.Msg", "SubmitMisbehaviour")); self.inner.unary(req, path, codec).await } + /// UpdateClientParams defines a rpc handler method for MsgUpdateParams. + pub async fn update_client_params( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/ibc.core.client.v1.Msg/UpdateClientParams", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("ibc.core.client.v1.Msg", "UpdateClientParams")); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -512,6 +562,14 @@ pub mod msg_server { tonic::Response, tonic::Status, >; + /// UpdateClientParams defines a rpc handler method for MsgUpdateParams. + async fn update_client_params( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// Msg defines the ibc/client Msg service. #[derive(Debug)] @@ -771,6 +829,50 @@ pub mod msg_server { }; Box::pin(fut) } + "/ibc.core.client.v1.Msg/UpdateClientParams" => { + #[allow(non_camel_case_types)] + struct UpdateClientParamsSvc(pub Arc); + impl tonic::server::UnaryService + for UpdateClientParamsSvc { + type Response = super::MsgUpdateParamsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).update_client_params(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = UpdateClientParamsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( diff --git a/src/prost/ibc.core.commitment.v1.rs b/src/prost/ibc.core.commitment.v1.rs index d4dfc369..0ad8d2bf 100644 --- a/src/prost/ibc.core.commitment.v1.rs +++ b/src/prost/ibc.core.commitment.v1.rs @@ -55,5 +55,7 @@ pub struct MerklePath { #[derive(Clone, PartialEq, ::prost::Message)] pub struct MerkleProof { #[prost(message, repeated, tag = "1")] - pub proofs: ::prost::alloc::vec::Vec<::ics23::CommitmentProof>, + pub proofs: ::prost::alloc::vec::Vec< + super::super::super::super::cosmos::ics23::v1::CommitmentProof, + >, } diff --git a/src/prost/ibc.core.connection.v1.rs b/src/prost/ibc.core.connection.v1.rs index 38df474d..9783545e 100644 --- a/src/prost/ibc.core.connection.v1.rs +++ b/src/prost/ibc.core.connection.v1.rs @@ -241,6 +241,9 @@ pub struct MsgConnectionOpenTry { pub consensus_height: ::core::option::Option, #[prost(string, tag = "12")] pub signer: ::prost::alloc::string::String, + /// optional proof data for host state machines that are unable to introspect their own consensus state + #[prost(bytes = "vec", tag = "13")] + pub host_consensus_state_proof: ::prost::alloc::vec::Vec, } /// MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] @@ -279,6 +282,9 @@ pub struct MsgConnectionOpenAck { pub consensus_height: ::core::option::Option, #[prost(string, tag = "10")] pub signer: ::prost::alloc::string::String, + /// optional proof data for host state machines that are unable to introspect their own consensus state + #[prost(bytes = "vec", tag = "11")] + pub host_consensus_state_proof: ::prost::alloc::vec::Vec, } /// MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. #[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] @@ -307,6 +313,25 @@ pub struct MsgConnectionOpenConfirm { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgConnectionOpenConfirmResponse {} +/// MsgUpdateParams defines the sdk.Msg type to update the connection parameters. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParams { + /// authority is the address that controls the module (defaults to x/gov unless overwritten). + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the connection parameters to update. + /// + /// NOTE: All parameters must be supplied. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +/// MsgUpdateParamsResponse defines the MsgUpdateParams response type. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MsgUpdateParamsResponse {} /// Generated client implementations. #[cfg(feature = "client")] pub mod msg_client { @@ -510,6 +535,38 @@ pub mod msg_client { ); self.inner.unary(req, path, codec).await } + /// UpdateConnectionParams defines a rpc handler method for + /// MsgUpdateParams. + pub async fn update_connection_params( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/ibc.core.connection.v1.Msg/UpdateConnectionParams", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "ibc.core.connection.v1.Msg", + "UpdateConnectionParams", + ), + ); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -553,6 +610,15 @@ pub mod msg_server { tonic::Response, tonic::Status, >; + /// UpdateConnectionParams defines a rpc handler method for + /// MsgUpdateParams. + async fn update_connection_params( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } /// Msg defines the ibc/connection Msg service. #[derive(Debug)] @@ -814,6 +880,50 @@ pub mod msg_server { }; Box::pin(fut) } + "/ibc.core.connection.v1.Msg/UpdateConnectionParams" => { + #[allow(non_camel_case_types)] + struct UpdateConnectionParamsSvc(pub Arc); + impl tonic::server::UnaryService + for UpdateConnectionParamsSvc { + type Response = super::MsgUpdateParamsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).update_connection_params(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = UpdateConnectionParamsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( diff --git a/src/prost/ibc.lightclients.localhost.v1.rs b/src/prost/ibc.lightclients.localhost.v1.rs deleted file mode 100644 index 980676d1..00000000 --- a/src/prost/ibc.lightclients.localhost.v1.rs +++ /dev/null @@ -1,12 +0,0 @@ -/// ClientState defines a loopback (localhost) client. It requires (read-only) -/// access to keys outside the client prefix. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ClientState { - /// self chain ID - #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - /// self latest block height - #[prost(message, optional, tag = "2")] - pub height: ::core::option::Option, -} diff --git a/src/prost/ibc.lightclients.localhost.v2.rs b/src/prost/ibc.lightclients.localhost.v2.rs new file mode 100644 index 00000000..7e7c61bc --- /dev/null +++ b/src/prost/ibc.lightclients.localhost.v2.rs @@ -0,0 +1,11 @@ +/// ClientState defines the 09-localhost client state +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ClientState { + /// the latest block height + #[prost(message, optional, tag = "1")] + pub latest_height: ::core::option::Option< + super::super::super::core::client::v1::Height, + >, +} diff --git a/src/prost/ibc.lightclients.solomachine.v1.rs b/src/prost/ibc.lightclients.solomachine.v1.rs deleted file mode 100644 index a1684b5f..00000000 --- a/src/prost/ibc.lightclients.solomachine.v1.rs +++ /dev/null @@ -1,268 +0,0 @@ -/// ClientState defines a solo machine client that tracks the current consensus -/// state and if the client is frozen. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ClientState { - /// latest sequence of the client state - #[prost(uint64, tag = "1")] - pub sequence: u64, - /// frozen sequence of the solo machine - #[prost(uint64, tag = "2")] - pub frozen_sequence: u64, - #[prost(message, optional, tag = "3")] - pub consensus_state: ::core::option::Option, - /// when set to true, will allow governance to update a solo machine client. - /// The client will be unfrozen if it is frozen. - #[prost(bool, tag = "4")] - pub allow_update_after_proposal: bool, -} -/// ConsensusState defines a solo machine consensus state. The sequence of a -/// consensus state is contained in the "height" key used in storing the -/// consensus state. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConsensusState { - /// public key of the solo machine - #[prost(message, optional, tag = "1")] - pub public_key: ::core::option::Option< - super::super::super::super::google::protobuf::Any, - >, - /// diversifier allows the same public key to be re-used across different solo - /// machine clients (potentially on different chains) without being considered - /// misbehaviour. - #[prost(string, tag = "2")] - pub diversifier: ::prost::alloc::string::String, - #[prost(uint64, tag = "3")] - pub timestamp: u64, -} -/// Header defines a solo machine consensus header -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Header { - /// sequence to update solo machine public key at - #[prost(uint64, tag = "1")] - pub sequence: u64, - #[prost(uint64, tag = "2")] - pub timestamp: u64, - #[prost(bytes = "vec", tag = "3")] - pub signature: ::prost::alloc::vec::Vec, - #[prost(message, optional, tag = "4")] - pub new_public_key: ::core::option::Option< - super::super::super::super::google::protobuf::Any, - >, - #[prost(string, tag = "5")] - pub new_diversifier: ::prost::alloc::string::String, -} -/// Misbehaviour defines misbehaviour for a solo machine which consists -/// of a sequence and two signatures over different messages at that sequence. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Misbehaviour { - #[prost(string, tag = "1")] - pub client_id: ::prost::alloc::string::String, - #[prost(uint64, tag = "2")] - pub sequence: u64, - #[prost(message, optional, tag = "3")] - pub signature_one: ::core::option::Option, - #[prost(message, optional, tag = "4")] - pub signature_two: ::core::option::Option, -} -/// SignatureAndData contains a signature and the data signed over to create that -/// signature. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SignatureAndData { - #[prost(bytes = "vec", tag = "1")] - pub signature: ::prost::alloc::vec::Vec, - #[prost(enumeration = "DataType", tag = "2")] - pub data_type: i32, - #[prost(bytes = "vec", tag = "3")] - pub data: ::prost::alloc::vec::Vec, - #[prost(uint64, tag = "4")] - pub timestamp: u64, -} -/// TimestampedSignatureData contains the signature data and the timestamp of the -/// signature. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct TimestampedSignatureData { - #[prost(bytes = "vec", tag = "1")] - pub signature_data: ::prost::alloc::vec::Vec, - #[prost(uint64, tag = "2")] - pub timestamp: u64, -} -/// SignBytes defines the signed bytes used for signature verification. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SignBytes { - #[prost(uint64, tag = "1")] - pub sequence: u64, - #[prost(uint64, tag = "2")] - pub timestamp: u64, - #[prost(string, tag = "3")] - pub diversifier: ::prost::alloc::string::String, - /// type of the data used - #[prost(enumeration = "DataType", tag = "4")] - pub data_type: i32, - /// marshaled data - #[prost(bytes = "vec", tag = "5")] - pub data: ::prost::alloc::vec::Vec, -} -/// HeaderData returns the SignBytes data for update verification. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct HeaderData { - /// header public key - #[prost(message, optional, tag = "1")] - pub new_pub_key: ::core::option::Option< - super::super::super::super::google::protobuf::Any, - >, - /// header diversifier - #[prost(string, tag = "2")] - pub new_diversifier: ::prost::alloc::string::String, -} -/// ClientStateData returns the SignBytes data for client state verification. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ClientStateData { - #[prost(bytes = "vec", tag = "1")] - pub path: ::prost::alloc::vec::Vec, - #[prost(message, optional, tag = "2")] - pub client_state: ::core::option::Option< - super::super::super::super::google::protobuf::Any, - >, -} -/// ConsensusStateData returns the SignBytes data for consensus state -/// verification. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConsensusStateData { - #[prost(bytes = "vec", tag = "1")] - pub path: ::prost::alloc::vec::Vec, - #[prost(message, optional, tag = "2")] - pub consensus_state: ::core::option::Option< - super::super::super::super::google::protobuf::Any, - >, -} -/// ConnectionStateData returns the SignBytes data for connection state -/// verification. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConnectionStateData { - #[prost(bytes = "vec", tag = "1")] - pub path: ::prost::alloc::vec::Vec, - #[prost(message, optional, tag = "2")] - pub connection: ::core::option::Option< - super::super::super::core::connection::v1::ConnectionEnd, - >, -} -/// ChannelStateData returns the SignBytes data for channel state -/// verification. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ChannelStateData { - #[prost(bytes = "vec", tag = "1")] - pub path: ::prost::alloc::vec::Vec, - #[prost(message, optional, tag = "2")] - pub channel: ::core::option::Option, -} -/// PacketCommitmentData returns the SignBytes data for packet commitment -/// verification. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PacketCommitmentData { - #[prost(bytes = "vec", tag = "1")] - pub path: ::prost::alloc::vec::Vec, - #[prost(bytes = "vec", tag = "2")] - pub commitment: ::prost::alloc::vec::Vec, -} -/// PacketAcknowledgementData returns the SignBytes data for acknowledgement -/// verification. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PacketAcknowledgementData { - #[prost(bytes = "vec", tag = "1")] - pub path: ::prost::alloc::vec::Vec, - #[prost(bytes = "vec", tag = "2")] - pub acknowledgement: ::prost::alloc::vec::Vec, -} -/// PacketReceiptAbsenceData returns the SignBytes data for -/// packet receipt absence verification. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PacketReceiptAbsenceData { - #[prost(bytes = "vec", tag = "1")] - pub path: ::prost::alloc::vec::Vec, -} -/// NextSequenceRecvData returns the SignBytes data for verification of the next -/// sequence to be received. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct NextSequenceRecvData { - #[prost(bytes = "vec", tag = "1")] - pub path: ::prost::alloc::vec::Vec, - #[prost(uint64, tag = "2")] - pub next_seq_recv: u64, -} -/// DataType defines the type of solo machine proof being created. This is done -/// to preserve uniqueness of different data sign byte encodings. -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] -#[repr(i32)] -pub enum DataType { - /// Default State - UninitializedUnspecified = 0, - /// Data type for client state verification - ClientState = 1, - /// Data type for consensus state verification - ConsensusState = 2, - /// Data type for connection state verification - ConnectionState = 3, - /// Data type for channel state verification - ChannelState = 4, - /// Data type for packet commitment verification - PacketCommitment = 5, - /// Data type for packet acknowledgement verification - PacketAcknowledgement = 6, - /// Data type for packet receipt absence verification - PacketReceiptAbsence = 7, - /// Data type for next sequence recv verification - NextSequenceRecv = 8, - /// Data type for header verification - Header = 9, -} -impl DataType { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - DataType::UninitializedUnspecified => "DATA_TYPE_UNINITIALIZED_UNSPECIFIED", - DataType::ClientState => "DATA_TYPE_CLIENT_STATE", - DataType::ConsensusState => "DATA_TYPE_CONSENSUS_STATE", - DataType::ConnectionState => "DATA_TYPE_CONNECTION_STATE", - DataType::ChannelState => "DATA_TYPE_CHANNEL_STATE", - DataType::PacketCommitment => "DATA_TYPE_PACKET_COMMITMENT", - DataType::PacketAcknowledgement => "DATA_TYPE_PACKET_ACKNOWLEDGEMENT", - DataType::PacketReceiptAbsence => "DATA_TYPE_PACKET_RECEIPT_ABSENCE", - DataType::NextSequenceRecv => "DATA_TYPE_NEXT_SEQUENCE_RECV", - DataType::Header => "DATA_TYPE_HEADER", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "DATA_TYPE_UNINITIALIZED_UNSPECIFIED" => Some(Self::UninitializedUnspecified), - "DATA_TYPE_CLIENT_STATE" => Some(Self::ClientState), - "DATA_TYPE_CONSENSUS_STATE" => Some(Self::ConsensusState), - "DATA_TYPE_CONNECTION_STATE" => Some(Self::ConnectionState), - "DATA_TYPE_CHANNEL_STATE" => Some(Self::ChannelState), - "DATA_TYPE_PACKET_COMMITMENT" => Some(Self::PacketCommitment), - "DATA_TYPE_PACKET_ACKNOWLEDGEMENT" => Some(Self::PacketAcknowledgement), - "DATA_TYPE_PACKET_RECEIPT_ABSENCE" => Some(Self::PacketReceiptAbsence), - "DATA_TYPE_NEXT_SEQUENCE_RECV" => Some(Self::NextSequenceRecv), - "DATA_TYPE_HEADER" => Some(Self::Header), - _ => None, - } - } -} diff --git a/src/prost/ibc.lightclients.solomachine.v3.rs b/src/prost/ibc.lightclients.solomachine.v3.rs new file mode 100644 index 00000000..144a4a56 --- /dev/null +++ b/src/prost/ibc.lightclients.solomachine.v3.rs @@ -0,0 +1,125 @@ +/// ClientState defines a solo machine client that tracks the current consensus +/// state and if the client is frozen. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ClientState { + /// latest sequence of the client state + #[prost(uint64, tag = "1")] + pub sequence: u64, + /// frozen sequence of the solo machine + #[prost(bool, tag = "2")] + pub is_frozen: bool, + #[prost(message, optional, tag = "3")] + pub consensus_state: ::core::option::Option, +} +/// ConsensusState defines a solo machine consensus state. The sequence of a +/// consensus state is contained in the "height" key used in storing the +/// consensus state. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsensusState { + /// public key of the solo machine + #[prost(message, optional, tag = "1")] + pub public_key: ::core::option::Option< + super::super::super::super::google::protobuf::Any, + >, + /// diversifier allows the same public key to be re-used across different solo + /// machine clients (potentially on different chains) without being considered + /// misbehaviour. + #[prost(string, tag = "2")] + pub diversifier: ::prost::alloc::string::String, + #[prost(uint64, tag = "3")] + pub timestamp: u64, +} +/// Header defines a solo machine consensus header +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Header { + #[prost(uint64, tag = "1")] + pub timestamp: u64, + #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub new_public_key: ::core::option::Option< + super::super::super::super::google::protobuf::Any, + >, + #[prost(string, tag = "4")] + pub new_diversifier: ::prost::alloc::string::String, +} +/// Misbehaviour defines misbehaviour for a solo machine which consists +/// of a sequence and two signatures over different messages at that sequence. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Misbehaviour { + #[prost(uint64, tag = "1")] + pub sequence: u64, + #[prost(message, optional, tag = "2")] + pub signature_one: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub signature_two: ::core::option::Option, +} +/// SignatureAndData contains a signature and the data signed over to create that +/// signature. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SignatureAndData { + #[prost(bytes = "vec", tag = "1")] + pub signature: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "2")] + pub path: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "3")] + pub data: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "4")] + pub timestamp: u64, +} +/// TimestampedSignatureData contains the signature data and the timestamp of the +/// signature. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TimestampedSignatureData { + #[prost(bytes = "vec", tag = "1")] + pub signature_data: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "2")] + pub timestamp: u64, +} +/// SignBytes defines the signed bytes used for signature verification. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SignBytes { + /// the sequence number + #[prost(uint64, tag = "1")] + pub sequence: u64, + /// the proof timestamp + #[prost(uint64, tag = "2")] + pub timestamp: u64, + /// the public key diversifier + #[prost(string, tag = "3")] + pub diversifier: ::prost::alloc::string::String, + /// the standardised path bytes + #[prost(bytes = "vec", tag = "4")] + pub path: ::prost::alloc::vec::Vec, + /// the marshaled data bytes + #[prost(bytes = "vec", tag = "5")] + pub data: ::prost::alloc::vec::Vec, +} +/// HeaderData returns the SignBytes data for update verification. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HeaderData { + /// header public key + #[prost(message, optional, tag = "1")] + pub new_pub_key: ::core::option::Option< + super::super::super::super::google::protobuf::Any, + >, + /// header diversifier + #[prost(string, tag = "2")] + pub new_diversifier: ::prost::alloc::string::String, +} diff --git a/src/prost/ibc.lightclients.tendermint.v1.rs b/src/prost/ibc.lightclients.tendermint.v1.rs index 0a2b7a04..f9a457ee 100644 --- a/src/prost/ibc.lightclients.tendermint.v1.rs +++ b/src/prost/ibc.lightclients.tendermint.v1.rs @@ -1,5 +1,6 @@ /// ClientState from Tendermint tracks the current validator set, latest height, /// and a possible frozen height. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientState { @@ -35,7 +36,9 @@ pub struct ClientState { >, /// Proof specifications used in verifying counterparty state #[prost(message, repeated, tag = "8")] - pub proof_specs: ::prost::alloc::vec::Vec<::ics23::ProofSpec>, + pub proof_specs: ::prost::alloc::vec::Vec< + super::super::super::super::cosmos::ics23::v1::ProofSpec, + >, /// Path at which next upgraded client will be committed. /// Each element corresponds to the key for a single CommitmentProof in the /// chained proof. NOTE: ClientState must stored under @@ -55,6 +58,7 @@ pub struct ClientState { pub allow_update_after_misbehaviour: bool, } /// ConsensusState defines the consensus state from Tendermint. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsensusState { @@ -74,9 +78,12 @@ pub struct ConsensusState { } /// Misbehaviour is a wrapper over two conflicting Headers /// that implements Misbehaviour interface expected by ICS-02 +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Misbehaviour { + /// ClientID is deprecated + #[deprecated] #[prost(string, tag = "1")] pub client_id: ::prost::alloc::string::String, #[prost(message, optional, tag = "2")] @@ -96,6 +103,7 @@ pub struct Misbehaviour { /// current time in order to correctly verify, and the TrustedValidators must /// hash to TrustedConsensusState.NextValidatorsHash since that is the last /// trusted validator set at the TrustedHeight. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Header { @@ -114,6 +122,7 @@ pub struct Header { } /// Fraction defines the protobuf message type for tmmath.Fraction that only /// supports positive values. +#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Fraction { diff --git a/src/prost/interchain_security.ccv.consumer.v1.rs b/src/prost/interchain_security.ccv.consumer.v1.rs index 1712e414..2783c2b9 100644 --- a/src/prost/interchain_security.ccv.consumer.v1.rs +++ b/src/prost/interchain_security.ccv.consumer.v1.rs @@ -2,7 +2,7 @@ #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { - /// TODO: Remove enabled flag and find a better way to setup e2e tests + /// TODO: Remove enabled flag and find a better way to setup integration tests /// See: #[prost(bool, tag = "1")] pub enabled: bool, @@ -47,6 +47,20 @@ pub struct Params { pub unbonding_period: ::core::option::Option< super::super::super::super::google::protobuf::Duration, >, + /// The threshold for the percentage of validators at the bottom of the set who + /// can opt out of running the consumer chain without being punished. For + /// example, a value of 0.05 means that the validators in the bottom 5% of the + /// set can opt out + #[prost(string, tag = "10")] + pub soft_opt_out_threshold: ::prost::alloc::string::String, + /// Reward denoms. These are the denominations which are allowed to be sent to + /// the provider as rewards. + #[prost(string, repeated, tag = "11")] + pub reward_denoms: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Provider-originated reward denoms. These are denoms coming from the + /// provider which are allowed to be used as rewards. e.g. "uatom" + #[prost(string, repeated, tag = "12")] + pub provider_reward_denoms: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } /// LastTransmissionBlockHeight is the last time validator holding /// pools were transmitted to the provider chain @@ -81,6 +95,18 @@ pub struct MaturingVscPacket { super::super::super::super::google::protobuf::Timestamp, >, } +/// A record storing the state of a slash packet sent to the provider chain +/// which may bounce back and forth until handled by the provider. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SlashRecord { + #[prost(bool, tag = "1")] + pub waiting_on_reply: bool, + #[prost(message, optional, tag = "2")] + pub send_time: ::core::option::Option< + super::super::super::super::google::protobuf::Timestamp, + >, +} /// GenesisState defines the CCV consumer chain genesis state #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -130,6 +156,9 @@ pub struct GenesisState { pub last_transmission_block_height: ::core::option::Option< LastTransmissionBlockHeight, >, + /// flag indicating whether the consumer CCV module starts in + #[prost(bool, tag = "13")] + pub pre_ccv: bool, } /// HeightValsetUpdateID defines the genesis information for the mapping /// of each block height to a valset update id @@ -195,6 +224,29 @@ pub struct QueryParamsResponse { #[prost(message, optional, tag = "1")] pub params: ::core::option::Option, } +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryProviderInfoRequest {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryProviderInfoResponse { + #[prost(message, optional, tag = "1")] + pub consumer: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub provider: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChainInfo { + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub client_id: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub connection_id: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub channel_id: ::prost::alloc::string::String, +} /// Generated client implementations. #[cfg(feature = "client")] pub mod query_client { @@ -346,6 +398,36 @@ pub mod query_client { ); self.inner.unary(req, path, codec).await } + pub async fn query_provider_info( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.consumer.v1.Query/QueryProviderInfo", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.consumer.v1.Query", + "QueryProviderInfo", + ), + ); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -373,6 +455,13 @@ pub mod query_server { tonic::Response, tonic::Status, >; + async fn query_provider_info( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } #[derive(Debug)] pub struct QueryServer { @@ -546,6 +635,52 @@ pub mod query_server { }; Box::pin(fut) } + "/interchain_security.ccv.consumer.v1.Query/QueryProviderInfo" => { + #[allow(non_camel_case_types)] + struct QueryProviderInfoSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService + for QueryProviderInfoSvc { + type Response = super::QueryProviderInfoResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).query_provider_info(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = QueryProviderInfoSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( diff --git a/src/prost/interchain_security.ccv.provider.v1.rs b/src/prost/interchain_security.ccv.provider.v1.rs index a63d0017..0771db2a 100644 --- a/src/prost/interchain_security.ccv.provider.v1.rs +++ b/src/prost/interchain_security.ccv.provider.v1.rs @@ -7,32 +7,31 @@ pub struct MsgAssignConsumerKey { /// The validator address on the provider #[prost(string, tag = "2")] pub provider_addr: ::prost::alloc::string::String, - /// The consensus public key to use on the consumer - #[prost(message, optional, tag = "3")] - pub consumer_key: ::core::option::Option< - super::super::super::super::google::protobuf::Any, - >, + /// The consensus public key to use on the consumer. + /// in json string format corresponding to proto-any, ex: + /// `{"@type":"/cosmos.crypto.ed25519.PubKey","key":"Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is="}` + #[prost(string, tag = "3")] + pub consumer_key: ::prost::alloc::string::String, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgAssignConsumerKeyResponse {} -/// MsgSubmitConsumerMisbehaviour defines a message that reports a misbehaviour -/// observed on a consumer chain +/// MsgRegisterConsumerRewardDenom allows an account to register +/// a consumer reward denom, i.e., add it to the list of denoms +/// accepted by the provider as rewards. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct MsgSubmitConsumerMisbehaviour { +pub struct MsgRegisterConsumerRewardDenom { #[prost(string, tag = "1")] - pub submitter: ::prost::alloc::string::String, - /// The Misbehaviour of the consumer chain wrapping - /// two conflicting IBC headers - #[prost(message, optional, tag = "2")] - pub misbehaviour: ::core::option::Option< - super::super::super::super::ibc::lightclients::tendermint::v1::Misbehaviour, - >, + pub denom: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub depositor: ::prost::alloc::string::String, } +/// MsgRegisterConsumerRewardDenomResponse defines the +/// Msg/RegisterConsumerRewardDenom response type. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct MsgSubmitConsumerMisbehaviourResponse {} +pub struct MsgRegisterConsumerRewardDenomResponse {} /// Generated client implementations. #[cfg(feature = "client")] pub mod msg_client { @@ -150,11 +149,11 @@ pub mod msg_client { ); self.inner.unary(req, path, codec).await } - pub async fn submit_consumer_misbehaviour( + pub async fn register_consumer_reward_denom( &mut self, - request: impl tonic::IntoRequest, + request: impl tonic::IntoRequest, ) -> std::result::Result< - tonic::Response, + tonic::Response, tonic::Status, > { self.inner @@ -168,14 +167,14 @@ pub mod msg_client { })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( - "/interchain_security.ccv.provider.v1.Msg/SubmitConsumerMisbehaviour", + "/interchain_security.ccv.provider.v1.Msg/RegisterConsumerRewardDenom", ); let mut req = request.into_request(); req.extensions_mut() .insert( GrpcMethod::new( "interchain_security.ccv.provider.v1.Msg", - "SubmitConsumerMisbehaviour", + "RegisterConsumerRewardDenom", ), ); self.inner.unary(req, path, codec).await @@ -197,11 +196,11 @@ pub mod msg_server { tonic::Response, tonic::Status, >; - async fn submit_consumer_misbehaviour( + async fn register_consumer_reward_denom( &self, - request: tonic::Request, + request: tonic::Request, ) -> std::result::Result< - tonic::Response, + tonic::Response, tonic::Status, >; } @@ -329,25 +328,27 @@ pub mod msg_server { }; Box::pin(fut) } - "/interchain_security.ccv.provider.v1.Msg/SubmitConsumerMisbehaviour" => { + "/interchain_security.ccv.provider.v1.Msg/RegisterConsumerRewardDenom" => { #[allow(non_camel_case_types)] - struct SubmitConsumerMisbehaviourSvc(pub Arc); + struct RegisterConsumerRewardDenomSvc(pub Arc); impl< T: Msg, - > tonic::server::UnaryService - for SubmitConsumerMisbehaviourSvc { - type Response = super::MsgSubmitConsumerMisbehaviourResponse; + > tonic::server::UnaryService + for RegisterConsumerRewardDenomSvc { + type Response = super::MsgRegisterConsumerRewardDenomResponse; type Future = BoxFuture< tonic::Response, tonic::Status, >; fn call( &mut self, - request: tonic::Request, + request: tonic::Request< + super::MsgRegisterConsumerRewardDenom, + >, ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - (*inner).submit_consumer_misbehaviour(request).await + (*inner).register_consumer_reward_denom(request).await }; Box::pin(fut) } @@ -359,7 +360,7 @@ pub mod msg_server { let inner = self.inner.clone(); let fut = async move { let inner = inner.0; - let method = SubmitConsumerMisbehaviourSvc(inner); + let method = RegisterConsumerRewardDenomSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( @@ -416,9 +417,11 @@ pub mod msg_server { const NAME: &'static str = "interchain_security.ccv.provider.v1.Msg"; } } -/// ConsumerAdditionProposal is a governance proposal on the provider chain to spawn a new consumer chain. -/// If it passes, then all validators on the provider chain are expected to validate the consumer chain at spawn time -/// or get slashed. It is recommended that spawn time occurs after the proposal end time. +/// ConsumerAdditionProposal is a governance proposal on the provider chain to +/// spawn a new consumer chain. If it passes, then all validators on the provider +/// chain are expected to validate the consumer chain at spawn time or get +/// slashed. It is recommended that spawn time occurs after the proposal end +/// time. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsumerAdditionProposal { @@ -428,26 +431,30 @@ pub struct ConsumerAdditionProposal { /// the description of the proposal #[prost(string, tag = "2")] pub description: ::prost::alloc::string::String, - /// the proposed chain-id of the new consumer chain, must be different from all other consumer chain ids of the executing - /// provider chain. + /// the proposed chain-id of the new consumer chain, must be different from all + /// other consumer chain ids of the executing provider chain. #[prost(string, tag = "3")] pub chain_id: ::prost::alloc::string::String, /// the proposed initial height of new consumer chain. - /// For a completely new chain, this will be {0,1}. However, it may be different if this is a chain that is converting to a consumer chain. + /// For a completely new chain, this will be {0,1}. However, it may be + /// different if this is a chain that is converting to a consumer chain. #[prost(message, optional, tag = "4")] pub initial_height: ::core::option::Option< super::super::super::super::ibc::core::client::v1::Height, >, - /// The hash of the consumer chain genesis state without the consumer CCV module genesis params. - /// It is used for off-chain confirmation of genesis.json validity by validators and other parties. + /// The hash of the consumer chain genesis state without the consumer CCV + /// module genesis params. It is used for off-chain confirmation of + /// genesis.json validity by validators and other parties. #[prost(bytes = "vec", tag = "5")] pub genesis_hash: ::prost::alloc::vec::Vec, - /// The hash of the consumer chain binary that should be run by validators on chain initialization. - /// It is used for off-chain confirmation of binary validity by validators and other parties. + /// The hash of the consumer chain binary that should be run by validators on + /// chain initialization. It is used for off-chain confirmation of binary + /// validity by validators and other parties. #[prost(bytes = "vec", tag = "6")] pub binary_hash: ::prost::alloc::vec::Vec, - /// spawn time is the time on the provider chain at which the consumer chain genesis is finalized and all validators - /// will be responsible for starting their consumer chain validator node. + /// spawn time is the time on the provider chain at which the consumer chain + /// genesis is finalized and all validators will be responsible for starting + /// their consumer chain validator node. #[prost(message, optional, tag = "7")] pub spawn_time: ::core::option::Option< super::super::super::super::google::protobuf::Timestamp, @@ -473,8 +480,10 @@ pub struct ConsumerAdditionProposal { /// decimal number. For example "0.75" would represent 75%. #[prost(string, tag = "11")] pub consumer_redistribution_fraction: ::prost::alloc::string::String, - /// BlocksPerDistributionTransmission is the number of blocks between ibc-token-transfers from the consumer chain to the provider chain. - /// On sending transmission event, `consumer_redistribution_fraction` of the accumulated tokens are sent to the consumer redistribution address. + /// BlocksPerDistributionTransmission is the number of blocks between + /// ibc-token-transfers from the consumer chain to the provider chain. On + /// sending transmission event, `consumer_redistribution_fraction` of the + /// accumulated tokens are sent to the consumer redistribution address. #[prost(int64, tag = "12")] pub blocks_per_distribution_transmission: i64, /// The number of historical info entries to persist in store. @@ -482,10 +491,19 @@ pub struct ConsumerAdditionProposal { /// a ccv enabled consumer chain, the ccv module acts as the staking module. #[prost(int64, tag = "13")] pub historical_entries: i64, + /// The ID of a token transfer channel used for the Reward Distribution + /// sub-protocol. If DistributionTransmissionChannel == "", a new transfer + /// channel is created on top of the same connection as the CCV channel. + /// Note that transfer_channel_id is the ID of the channel end on the consumer + /// chain. it is most relevant for chains performing a sovereign to consumer + /// changeover in order to maintan the existing ibc transfer channel + #[prost(string, tag = "14")] + pub distribution_transmission_channel: ::prost::alloc::string::String, } -/// ConsumerRemovalProposal is a governance proposal on the provider chain to remove (and stop) a consumer chain. -/// If it passes, all the consumer chain's state is removed from the provider chain. The outstanding unbonding -/// operation funds are released. +/// ConsumerRemovalProposal is a governance proposal on the provider chain to +/// remove (and stop) a consumer chain. If it passes, all the consumer chain's +/// state is removed from the provider chain. The outstanding unbonding operation +/// funds are released. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsumerRemovalProposal { @@ -498,7 +516,8 @@ pub struct ConsumerRemovalProposal { /// the chain-id of the consumer chain to be stopped #[prost(string, tag = "3")] pub chain_id: ::prost::alloc::string::String, - /// the time on the provider chain at which all validators are responsible to stop their consumer chain validator node + /// the time on the provider chain at which all validators are responsible to + /// stop their consumer chain validator node #[prost(message, optional, tag = "4")] pub stop_time: ::core::option::Option< super::super::super::super::google::protobuf::Timestamp, @@ -519,8 +538,9 @@ pub struct EquivocationProposal { super::super::super::super::cosmos::evidence::v1beta1::Equivocation, >, } -/// A persisted queue entry indicating that a slash packet data instance needs to be handled. -/// This type belongs in the "global" queue, to coordinate slash packet handling times between consumers. +/// A persisted queue entry indicating that a slash packet data instance needs to +/// be handled. This type belongs in the "global" queue, to coordinate slash +/// packet handling times between consumers. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GlobalSlashEntry { @@ -540,7 +560,8 @@ pub struct GlobalSlashEntry { /// The provider's consensus address of the validator being slashed. /// This field is used to obtain validator power in HandleThrottleQueues. /// - /// This field is not used in the store key, but is persisted in value bytes, see QueueGlobalSlashEntry. + /// This field is not used in the store key, but is persisted in value bytes, + /// see QueueGlobalSlashEntry. #[prost(bytes = "vec", tag = "4")] pub provider_val_cons_addr: ::prost::alloc::vec::Vec, } @@ -552,7 +573,8 @@ pub struct Params { pub template_client: ::core::option::Option< super::super::super::super::ibc::lightclients::tendermint::v1::ClientState, >, - /// TrustingPeriodFraction is used to compute the consumer and provider IBC client's TrustingPeriod from the chain defined UnbondingPeriod + /// TrustingPeriodFraction is used to compute the consumer and provider IBC + /// client's TrustingPeriod from the chain defined UnbondingPeriod #[prost(string, tag = "2")] pub trusting_period_fraction: ::prost::alloc::string::String, /// Sent IBC packets will timeout after this duration @@ -560,7 +582,8 @@ pub struct Params { pub ccv_timeout_period: ::core::option::Option< super::super::super::super::google::protobuf::Duration, >, - /// The channel initialization (IBC channel opening handshake) will timeout after this duration + /// The channel initialization (IBC channel opening handshake) will timeout + /// after this duration #[prost(message, optional, tag = "4")] pub init_timeout_period: ::core::option::Option< super::super::super::super::google::protobuf::Duration, @@ -578,14 +601,20 @@ pub struct Params { pub slash_meter_replenish_period: ::core::option::Option< super::super::super::super::google::protobuf::Duration, >, - /// The fraction of total voting power that is replenished to the slash meter every replenish period. - /// This param also serves as a maximum fraction of total voting power that the slash meter can hold. + /// The fraction of total voting power that is replenished to the slash meter + /// every replenish period. This param also serves as a maximum fraction of + /// total voting power that the slash meter can hold. #[prost(string, tag = "7")] pub slash_meter_replenish_fraction: ::prost::alloc::string::String, /// The maximum amount of throttled slash or vsc matured packets /// that can be queued for a single consumer before the provider chain halts. #[prost(int64, tag = "8")] pub max_throttled_packets: i64, + /// The fee required to be paid to add a reward denom + #[prost(message, optional, tag = "9")] + pub consumer_reward_denom_registration_fee: ::core::option::Option< + super::super::super::super::cosmos::base::v1beta1::Coin, + >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -595,7 +624,7 @@ pub struct HandshakeMetadata { #[prost(string, tag = "2")] pub version: ::prost::alloc::string::String, } -/// SlashAcks contains addesses of consumer chain validators +/// SlashAcks contains cons addresses of consumer chain validators /// successfully slashed on the provider chain #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -603,7 +632,8 @@ pub struct SlashAcks { #[prost(string, repeated, tag = "1")] pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } -/// ConsumerAdditionProposals holds pending governance proposals on the provider chain to spawn a new chain. +/// ConsumerAdditionProposals holds pending governance proposals on the provider +/// chain to spawn a new chain. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsumerAdditionProposals { @@ -611,7 +641,8 @@ pub struct ConsumerAdditionProposals { #[prost(message, repeated, tag = "1")] pub pending: ::prost::alloc::vec::Vec, } -/// ConsumerRemovalProposals holds pending governance proposals on the provider chain to remove (and stop) a consumer chain. +/// ConsumerRemovalProposals holds pending governance proposals on the provider +/// chain to remove (and stop) a consumer chain. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsumerRemovalProposals { @@ -675,6 +706,15 @@ pub struct VscSendTimestamp { super::super::super::super::google::protobuf::Timestamp, >, } +/// ExportedVscSendTimestamps is VscSendTimestamp with chainID info for exporting to genesis +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExportedVscSendTimestamp { + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + #[prost(message, repeated, tag = "2")] + pub vsc_send_timestamps: ::prost::alloc::vec::Vec, +} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct KeyAssignmentReplacement { @@ -685,6 +725,44 @@ pub struct KeyAssignmentReplacement { #[prost(int64, tag = "3")] pub power: i64, } +/// Used to serialize the ValidatorConsumerPubKey index from key assignment +/// ValidatorConsumerPubKey: (chainID, providerAddr consAddr) -> consumerKey +/// tmprotocrypto.PublicKey +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ValidatorConsumerPubKey { + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + #[prost(bytes = "vec", tag = "2")] + pub provider_addr: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub consumer_key: ::core::option::Option<::tendermint_proto::crypto::PublicKey>, +} +/// Used to serialize the ValidatorConsumerAddr index from key assignment +/// ValidatorByConsumerAddr: (chainID, consumerAddr consAddr) -> providerAddr +/// consAddr +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ValidatorByConsumerAddr { + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + #[prost(bytes = "vec", tag = "2")] + pub consumer_addr: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "3")] + pub provider_addr: ::prost::alloc::vec::Vec, +} +/// Used to serialize the ConsumerAddrsToPrune index from key assignment +/// ConsumerAddrsToPrune: (chainID, vscID uint64) -> consumerAddrs AddressList +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsumerAddrsToPrune { + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + #[prost(uint64, tag = "2")] + pub vsc_id: u64, + #[prost(message, optional, tag = "3")] + pub consumer_addrs: ::core::option::Option, +} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryConsumerGenesisRequest { @@ -775,11 +853,12 @@ pub struct QueryThrottleStateResponse { /// current slash_meter state #[prost(int64, tag = "1")] pub slash_meter: i64, - /// allowance of voting power units (int) that the slash meter is given per replenish period - /// this also serves as the max value for the meter. + /// allowance of voting power units (int) that the slash meter is given per + /// replenish period this also serves as the max value for the meter. #[prost(int64, tag = "2")] pub slash_meter_allowance: i64, - /// next time the slash meter could potentially be replenished, iff it's not full + /// next time the slash meter could potentially be replenished, iff it's not + /// full #[prost(message, optional, tag = "3")] pub next_replenish_candidate: ::core::option::Option< super::super::super::super::google::protobuf::Timestamp, @@ -804,7 +883,8 @@ pub struct QueryThrottledConsumerPacketDataResponse { #[prost(message, repeated, tag = "3")] pub packet_data_instances: ::prost::alloc::vec::Vec, } -/// A query wrapper type for the global entry and data relevant to a throttled slash packet. +/// A query wrapper type for the global entry and data relevant to a throttled +/// slash packet. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ThrottledSlashPacket { @@ -813,7 +893,8 @@ pub struct ThrottledSlashPacket { #[prost(message, optional, tag = "2")] pub data: ::core::option::Option, } -/// ThrottledPacketDataWrapper contains either SlashPacketData or VSCMaturedPacketData +/// ThrottledPacketDataWrapper contains either SlashPacketData or +/// VSCMaturedPacketData #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ThrottledPacketDataWrapper { @@ -831,6 +912,15 @@ pub mod throttled_packet_data_wrapper { VscMaturedPacket(super::super::super::v1::VscMaturedPacketData), } } +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryRegisteredConsumerRewardDenomsRequest {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryRegisteredConsumerRewardDenomsResponse { + #[prost(string, repeated, tag = "1")] + pub denoms: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} /// Generated client implementations. #[cfg(feature = "client")] pub mod query_client { @@ -1111,7 +1201,8 @@ pub mod query_client { ); self.inner.unary(req, path, codec).await } - /// QueryThrottleState returns the main on-chain state relevant to currently throttled slash packets + /// QueryThrottleState returns the main on-chain state relevant to currently + /// throttled slash packets pub async fn query_throttle_state( &mut self, request: impl tonic::IntoRequest, @@ -1142,8 +1233,8 @@ pub mod query_client { ); self.inner.unary(req, path, codec).await } - /// QueryThrottledConsumerPacketData returns a list of pending packet data instances - /// (slash packet and vsc matured) for a single consumer chain + /// QueryThrottledConsumerPacketData returns a list of pending packet data + /// instances (slash packet and vsc matured) for a single consumer chain pub async fn query_throttled_consumer_packet_data( &mut self, request: impl tonic::IntoRequest< @@ -1176,6 +1267,40 @@ pub mod query_client { ); self.inner.unary(req, path, codec).await } + /// QueryRegisteredConsumerRewardDenoms returns a list of consumer reward + /// denoms that are registered + pub async fn query_registered_consumer_reward_denoms( + &mut self, + request: impl tonic::IntoRequest< + super::QueryRegisteredConsumerRewardDenomsRequest, + >, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/interchain_security.ccv.provider.v1.Query/QueryRegisteredConsumerRewardDenoms", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "interchain_security.ccv.provider.v1.Query", + "QueryRegisteredConsumerRewardDenoms", + ), + ); + self.inner.unary(req, path, codec).await + } } } /// Generated server implementations. @@ -1238,7 +1363,8 @@ pub mod query_server { tonic::Response, tonic::Status, >; - /// QueryThrottleState returns the main on-chain state relevant to currently throttled slash packets + /// QueryThrottleState returns the main on-chain state relevant to currently + /// throttled slash packets async fn query_throttle_state( &self, request: tonic::Request, @@ -1246,8 +1372,8 @@ pub mod query_server { tonic::Response, tonic::Status, >; - /// QueryThrottledConsumerPacketData returns a list of pending packet data instances - /// (slash packet and vsc matured) for a single consumer chain + /// QueryThrottledConsumerPacketData returns a list of pending packet data + /// instances (slash packet and vsc matured) for a single consumer chain async fn query_throttled_consumer_packet_data( &self, request: tonic::Request, @@ -1255,6 +1381,15 @@ pub mod query_server { tonic::Response, tonic::Status, >; + /// QueryRegisteredConsumerRewardDenoms returns a list of consumer reward + /// denoms that are registered + async fn query_registered_consumer_reward_denoms( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; } #[derive(Debug)] pub struct QueryServer { @@ -1718,6 +1853,57 @@ pub mod query_server { }; Box::pin(fut) } + "/interchain_security.ccv.provider.v1.Query/QueryRegisteredConsumerRewardDenoms" => { + #[allow(non_camel_case_types)] + struct QueryRegisteredConsumerRewardDenomsSvc(pub Arc); + impl< + T: Query, + > tonic::server::UnaryService< + super::QueryRegisteredConsumerRewardDenomsRequest, + > for QueryRegisteredConsumerRewardDenomsSvc { + type Response = super::QueryRegisteredConsumerRewardDenomsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::QueryRegisteredConsumerRewardDenomsRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner) + .query_registered_consumer_reward_denoms(request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = QueryRegisteredConsumerRewardDenomsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } _ => { Box::pin(async move { Ok( @@ -1797,6 +1983,10 @@ pub struct GenesisState { /// empty for a new chain #[prost(message, repeated, tag = "11")] pub consumer_addrs_to_prune: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub init_timeout_timestamps: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub exported_vsc_send_timestamps: ::prost::alloc::vec::Vec, } /// consumer chain #[allow(clippy::derive_partial_eq_without_eq)] @@ -1819,14 +2009,16 @@ pub struct ConsumerState { pub consumer_genesis: ::core::option::Option< super::super::consumer::v1::GenesisState, >, - /// PendingValsetChanges defines the pending validator set changes for the consumer chain + /// PendingValsetChanges defines the pending validator set changes for the + /// consumer chain #[prost(message, repeated, tag = "6")] pub pending_valset_changes: ::prost::alloc::vec::Vec< super::super::v1::ValidatorSetChangePacketData, >, #[prost(string, repeated, tag = "7")] pub slash_downtime_ack: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, - /// UnbondingOpsIndex defines the unbonding operations waiting on this consumer chain + /// UnbondingOpsIndex defines the unbonding operations waiting on this consumer + /// chain #[prost(message, repeated, tag = "8")] pub unbonding_ops_index: ::prost::alloc::vec::Vec, } @@ -1840,39 +2032,3 @@ pub struct ValsetUpdateIdToHeight { #[prost(uint64, tag = "2")] pub height: u64, } -/// Used to serialize the ValidatorConsumerPubKey index from key assignment -/// ValidatorConsumerPubKey: (chainID, providerAddr consAddr) -> consumerKey tmprotocrypto.PublicKey -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ValidatorConsumerPubKey { - #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - #[prost(bytes = "vec", tag = "2")] - pub provider_addr: ::prost::alloc::vec::Vec, - #[prost(message, optional, tag = "3")] - pub consumer_key: ::core::option::Option<::tendermint_proto::crypto::PublicKey>, -} -/// Used to serialize the ValidatorConsumerAddr index from key assignment -/// ValidatorByConsumerAddr: (chainID, consumerAddr consAddr) -> providerAddr consAddr -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ValidatorByConsumerAddr { - #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - #[prost(bytes = "vec", tag = "2")] - pub consumer_addr: ::prost::alloc::vec::Vec, - #[prost(bytes = "vec", tag = "3")] - pub provider_addr: ::prost::alloc::vec::Vec, -} -/// Used to serialize the ConsumerAddrsToPrune index from key assignment -/// ConsumerAddrsToPrune: (chainID, vscID uint64) -> consumerAddrs AddressList -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConsumerAddrsToPrune { - #[prost(string, tag = "1")] - pub chain_id: ::prost::alloc::string::String, - #[prost(uint64, tag = "2")] - pub vsc_id: u64, - #[prost(message, optional, tag = "3")] - pub consumer_addrs: ::core::option::Option, -} diff --git a/src/prost/interchain_security.ccv.v1.rs b/src/prost/interchain_security.ccv.v1.rs index 7db20bc2..613c3ce0 100644 --- a/src/prost/interchain_security.ccv.v1.rs +++ b/src/prost/interchain_security.ccv.v1.rs @@ -1,439 +1,3 @@ -/// Generated client implementations. -#[cfg(feature = "client")] -pub mod msg_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - /// Msg defines the Msg service. - #[derive(Debug, Clone)] - pub struct MsgClient { - inner: tonic::client::Grpc, - } - impl MsgClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl MsgClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> MsgClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + Send + Sync, - { - MsgClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - } -} -/// Generated server implementations. -#[cfg(feature = "server")] -pub mod msg_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with MsgServer. - #[async_trait] - pub trait Msg: Send + Sync + 'static {} - /// Msg defines the Msg service. - #[derive(Debug)] - pub struct MsgServer { - inner: _Inner, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - struct _Inner(Arc); - impl MsgServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - let inner = _Inner(inner); - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> for MsgServer - where - T: Msg, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); - match req.uri().path() { - _ => { - Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) - }) - } - } - } - } - impl Clone for MsgServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - impl Clone for _Inner { - fn clone(&self) -> Self { - Self(Arc::clone(&self.0)) - } - } - impl std::fmt::Debug for _Inner { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{:?}", self.0) - } - } - impl tonic::server::NamedService for MsgServer { - const NAME: &'static str = "interchain_security.ccv.v1.Msg"; - } -} -/// Generated client implementations. -#[cfg(feature = "client")] -pub mod query_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - /// Query defines the gRPC querier service. - #[derive(Debug, Clone)] - pub struct QueryClient { - inner: tonic::client::Grpc, - } - impl QueryClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl QueryClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> QueryClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + Send + Sync, - { - QueryClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - } -} -/// Generated server implementations. -#[cfg(feature = "server")] -pub mod query_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with QueryServer. - #[async_trait] - pub trait Query: Send + Sync + 'static {} - /// Query defines the gRPC querier service. - #[derive(Debug)] - pub struct QueryServer { - inner: _Inner, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - struct _Inner(Arc); - impl QueryServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - let inner = _Inner(inner); - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> for QueryServer - where - T: Query, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); - match req.uri().path() { - _ => { - Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) - }) - } - } - } - } - impl Clone for QueryServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - impl Clone for _Inner { - fn clone(&self) -> Self { - Self(Arc::clone(&self.0)) - } - } - impl std::fmt::Debug for _Inner { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{:?}", self.0) - } - } - impl tonic::server::NamedService for QueryServer { - const NAME: &'static str = "interchain_security.ccv.v1.Query"; - } -} /// This packet is sent from provider chain to consumer chain if the validator /// set for consumer chain changes (due to new bonding/unbonding messages or /// slashing events) A VSCMatured packet from consumer chain will be sent @@ -482,19 +46,20 @@ pub struct SlashPacketData { pub valset_update_id: u64, /// tell if the slashing is for a downtime or a double-signing infraction #[prost( - enumeration = "super::super::super::cosmos::staking::v1beta1::InfractionType", + enumeration = "super::super::super::cosmos::staking::v1beta1::Infraction", tag = "3" )] pub infraction: i32, } -/// MaturedUnbondingOps defines a list of ids corresponding to ids of matured unbonding operations. +/// MaturedUnbondingOps defines a list of ids corresponding to ids of matured +/// unbonding operations. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MaturedUnbondingOps { #[prost(uint64, repeated, tag = "1")] pub ids: ::prost::alloc::vec::Vec, } -/// ConsumerPacketData contains a consumer packet data and a type tag +/// ConsumerPacketData contains a consumer packet data, type tag, and index for storage. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsumerPacketData { @@ -515,12 +80,48 @@ pub mod consumer_packet_data { } } /// ConsumerPacketDataList is a list of consumer packet data packets. +/// NOTE: It is only used for exporting / importing state in InitGenesis and ExportGenesis. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsumerPacketDataList { #[prost(message, repeated, tag = "1")] pub list: ::prost::alloc::vec::Vec, } +/// ConsumerPacketData contains a consumer packet data and a type tag +/// that is compatible with ICS v1 and v2 over the wire. It is not used for internal storage. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsumerPacketDataV1 { + #[prost(enumeration = "ConsumerPacketDataType", tag = "1")] + pub r#type: i32, + #[prost(oneof = "consumer_packet_data_v1::Data", tags = "2, 3")] + pub data: ::core::option::Option, +} +/// Nested message and enum types in `ConsumerPacketDataV1`. +pub mod consumer_packet_data_v1 { + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Data { + #[prost(message, tag = "2")] + SlashPacketData(super::SlashPacketDataV1), + #[prost(message, tag = "3")] + VscMaturedPacketData(super::VscMaturedPacketData), + } +} +/// This packet is sent from the consumer chain to the provider chain +/// It is backward compatible with the ICS v1 and v2 version of the packet. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SlashPacketDataV1 { + #[prost(message, optional, tag = "1")] + pub validator: ::core::option::Option<::tendermint_proto::abci::Validator>, + /// map to the infraction block height on the provider + #[prost(uint64, tag = "2")] + pub valset_update_id: u64, + /// tell if the slashing is for a downtime or a double-signing infraction + #[prost(enumeration = "InfractionType", tag = "3")] + pub infraction: i32, +} /// ConsumerPacketType indicates interchain security specific packet types. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] @@ -560,3 +161,38 @@ impl ConsumerPacketDataType { } } } +/// InfractionType indicates the infraction type a validator commited. +/// NOTE: ccv.InfractionType to maintain compatibility between ICS versions +/// using different versions of the cosmos-sdk and ibc-go modules. +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum InfractionType { + /// UNSPECIFIED defines an empty infraction type. + Unspecified = 0, + /// DOUBLE_SIGN defines a validator that double-signs a block. + DoubleSign = 1, + /// DOWNTIME defines a validator that missed signing too many blocks. + Downtime = 2, +} +impl InfractionType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + InfractionType::Unspecified => "INFRACTION_TYPE_UNSPECIFIED", + InfractionType::DoubleSign => "INFRACTION_TYPE_DOUBLE_SIGN", + InfractionType::Downtime => "INFRACTION_TYPE_DOWNTIME", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "INFRACTION_TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "INFRACTION_TYPE_DOUBLE_SIGN" => Some(Self::DoubleSign), + "INFRACTION_TYPE_DOWNTIME" => Some(Self::Downtime), + _ => None, + } + } +} diff --git a/src/prost/proto_descriptor.bin b/src/prost/proto_descriptor.bin index f15a7f83cd8645ed47c85a0929b6b8dfbd957050..08dfc12e94ac17d36afc80a6991cf1ddc730c50f 100644 GIT binary patch literal 704088 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