From 4bfcde23d3873e0eda14de982b46d2452b552e2e Mon Sep 17 00:00:00 2001 From: Richard Janis Goldschmidt Date: Fri, 13 Dec 2024 15:54:19 +0100 Subject: [PATCH 1/3] upate tendermint to 0.40.0 --- Cargo.lock | 1821 ++++++++++------- Cargo.toml | 80 +- crates/bench/Cargo.toml | 2 +- crates/bin/pclientd/src/lib.rs | 2 +- crates/bin/pclientd/src/proxy.rs | 66 +- crates/bin/pd/Cargo.toml | 12 +- crates/bin/pd/src/main.rs | 8 +- .../src/gen/penumbra.cnidarium.v1.rs | 182 +- .../src/gen/penumbra.cnidarium.v1.serde.rs | 8 + .../src/gen/proto_descriptor.bin.no_lfs | Bin 82425 -> 102002 bytes crates/core/app/Cargo.toml | 2 +- crates/core/app/src/rpc.rs | 65 +- crates/core/app/src/server/consensus.rs | 5 +- crates/core/app/src/server/events.rs | 27 +- crates/core/app/src/server/info.rs | 2 + ...p_can_sweep_a_collection_of_small_notes.rs | 4 +- .../core/app/tests/common/ibc_tests/node.rs | 5 +- .../app/tests/common/ibc_tests/relayer.rs | 42 +- .../app/tests/mock_consensus_block_proving.rs | 4 +- .../view_server_can_be_served_on_localhost.rs | 4 +- crates/core/component/auction/Cargo.toml | 2 +- .../msg_handler/channel_close_confirm.rs | 1 + .../component/msg_handler/channel_open_ack.rs | 1 + .../msg_handler/channel_open_confirm.rs | 1 + .../msg_handler/channel_open_init.rs | 1 + .../component/msg_handler/channel_open_try.rs | 2 + .../core/component/ibc/src/component/rpc.rs | 2 +- .../ibc/src/component/rpc/consensus_query.rs | 30 +- .../core/component/shielded-pool/Cargo.toml | 2 +- .../src/component/rpc/bank_query.rs | 22 +- crates/core/keys/src/symmetric.rs | 1 - crates/crypto/proof-params/Cargo.toml | 2 +- crates/misc/tct-visualize/Cargo.toml | 4 +- .../tct-visualize/src/bin/tct-live-edit.rs | 7 +- crates/misc/tct-visualize/src/live/view.rs | 19 +- crates/proto/Cargo.toml | 3 +- crates/proto/src/box_grpc_svc.rs | 11 +- crates/proto/src/event.rs | 25 +- crates/proto/src/gen/cosmos.app.v1alpha1.rs | 19 +- crates/proto/src/gen/cosmos.auth.v1beta1.rs | 27 +- crates/proto/src/gen/cosmos.bank.v1beta1.rs | 303 +-- .../proto/src/gen/cosmos.base.abci.v1beta1.rs | 69 +- .../src/gen/cosmos.base.query.v1beta1.rs | 13 +- crates/proto/src/gen/cosmos.base.v1beta1.rs | 13 +- .../src/gen/cosmos.crypto.multisig.v1beta1.rs | 13 +- crates/proto/src/gen/cosmos.tx.config.v1.rs | 9 +- .../src/gen/cosmos.tx.signing.v1beta1.rs | 50 +- crates/proto/src/gen/cosmos.tx.v1beta1.rs | 316 +-- crates/proto/src/gen/cosmos_proto.rs | 19 +- crates/proto/src/gen/google.api.rs | 20 +- .../src/gen/ibc.applications.transfer.v1.rs | 101 +- crates/proto/src/gen/ibc.core.channel.v1.rs | 133 +- crates/proto/src/gen/ibc.core.client.v1.rs | 113 +- .../proto/src/gen/ibc.core.connection.v1.rs | 101 +- crates/proto/src/gen/noble.forwarding.v1.rs | 281 +-- crates/proto/src/gen/penumbra.cnidarium.v1.rs | 182 +- .../src/gen/penumbra.cnidarium.v1.serde.rs | 8 + crates/proto/src/gen/penumbra.core.app.v1.rs | 132 +- .../src/gen/penumbra.core.app.v1.serde.rs | 3 + .../proto/src/gen/penumbra.core.asset.v1.rs | 80 +- .../src/gen/penumbra.core.asset.v1.serde.rs | 5 + .../gen/penumbra.core.component.auction.v1.rs | 237 ++- ...enumbra.core.component.auction.v1.serde.rs | 10 + ...numbra.core.component.community_pool.v1.rs | 121 +- ...enumbra.core.component.compact_block.v1.rs | 164 +- ...a.core.component.compact_block.v1.serde.rs | 5 + .../src/gen/penumbra.core.component.dex.v1.rs | 747 ++++--- .../penumbra.core.component.dex.v1.serde.rs | 36 + ...enumbra.core.component.distributions.v1.rs | 21 +- ...a.core.component.distributions.v1.serde.rs | 1 + .../src/gen/penumbra.core.component.fee.v1.rs | 155 +- .../penumbra.core.component.fee.v1.serde.rs | 8 + .../gen/penumbra.core.component.funding.v1.rs | 23 +- ...enumbra.core.component.funding.v1.serde.rs | 1 + .../penumbra.core.component.governance.v1.rs | 614 +++--- ...mbra.core.component.governance.v1.serde.rs | 39 + .../src/gen/penumbra.core.component.ibc.v1.rs | 75 +- .../penumbra.core.component.ibc.v1.serde.rs | 4 + .../src/gen/penumbra.core.component.sct.v1.rs | 248 ++- .../penumbra.core.component.sct.v1.serde.rs | 16 + ...enumbra.core.component.shielded_pool.v1.rs | 445 ++-- ...a.core.component.shielded_pool.v1.serde.rs | 21 + .../gen/penumbra.core.component.stake.v1.rs | 418 ++-- .../penumbra.core.component.stake.v1.serde.rs | 35 + crates/proto/src/gen/penumbra.core.keys.v1.rs | 80 +- .../src/gen/penumbra.core.keys.v1.serde.rs | 10 + crates/proto/src/gen/penumbra.core.num.v1.rs | 9 +- .../src/gen/penumbra.core.num.v1.serde.rs | 2 + .../src/gen/penumbra.core.transaction.v1.rs | 183 +- .../gen/penumbra.core.transaction.v1.serde.rs | 5 + .../proto/src/gen/penumbra.core.txhash.v1.rs | 13 +- .../src/gen/penumbra.core.txhash.v1.serde.rs | 2 + .../gen/penumbra.crypto.decaf377_fmd.v1.rs | 7 +- .../penumbra.crypto.decaf377_fmd.v1.serde.rs | 1 + .../gen/penumbra.crypto.decaf377_frost.v1.rs | 43 +- ...penumbra.crypto.decaf377_frost.v1.serde.rs | 4 + .../gen/penumbra.crypto.decaf377_rdsa.v1.rs | 19 +- .../penumbra.crypto.decaf377_rdsa.v1.serde.rs | 3 + .../proto/src/gen/penumbra.crypto.tct.v1.rs | 25 +- .../src/gen/penumbra.crypto.tct.v1.serde.rs | 6 + .../src/gen/penumbra.custody.threshold.v1.rs | 102 +- .../penumbra.custody.threshold.v1.serde.rs | 11 + crates/proto/src/gen/penumbra.custody.v1.rs | 174 +- .../src/gen/penumbra.custody.v1.serde.rs | 2 + .../src/gen/penumbra.tools.summoning.v1.rs | 160 +- .../gen/penumbra.tools.summoning.v1.serde.rs | 22 + .../gen/penumbra.util.tendermint_proxy.v1.rs | 196 +- ...penumbra.util.tendermint_proxy.v1.serde.rs | 25 + crates/proto/src/gen/penumbra.view.v1.rs | 795 +++---- .../proto/src/gen/penumbra.view.v1.serde.rs | 24 + .../proto/src/gen/proto_descriptor.bin.no_lfs | Bin 627367 -> 646939 bytes crates/proto/src/gen/tendermint.abci.rs | 475 +++-- crates/proto/src/gen/tendermint.crypto.rs | 38 +- crates/proto/src/gen/tendermint.p2p.rs | 27 +- crates/proto/src/gen/tendermint.types.rs | 188 +- crates/proto/src/gen/tendermint.version.rs | 15 +- .../proto/src/protobuf/tendermint_compat.rs | 33 +- crates/test/mock-consensus/src/block.rs | 2 +- crates/util/auto-https/Cargo.toml | 4 +- crates/util/auto-https/src/lib.rs | 1 - tools/proto-compiler/Cargo.lock | 461 +++-- tools/proto-compiler/Cargo.toml | 16 +- tools/proto-compiler/src/main.rs | 4 +- tools/summonerd/src/main.rs | 17 +- tools/summonerd/src/web.rs | 6 +- 125 files changed, 6534 insertions(+), 4607 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a7debaa761..7e95ccb232 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -220,7 +220,7 @@ checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ "num-bigint", "num-traits", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", ] @@ -302,7 +302,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", ] @@ -366,7 +366,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87bf87e6e8b47264efa9bde63d6225c6276a52e05e91bf37eaa8afd0032d6b71" dependencies = [ "askama_shared", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "syn 1.0.109", ] @@ -389,7 +389,7 @@ dependencies = [ "nom", "num-traits", "percent-encoding", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "serde", "syn 1.0.109", @@ -398,9 +398,9 @@ dependencies = [ [[package]] name = "asn1-rs" -version = "0.3.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ff05a702273012438132f449575dbc804e27b2f3cbe3069aa237d26c98fa33" +checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" dependencies = [ "asn1-rs-derive", "asn1-rs-impl", @@ -408,31 +408,31 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror", + "thiserror 1.0.61", "time", ] [[package]] name = "asn1-rs-derive" -version = "0.1.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf" +checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 1.0.109", + "syn 2.0.90", "synstructure", ] [[package]] name = "asn1-rs-impl" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 1.0.109", + "syn 2.0.90", ] [[package]] @@ -464,55 +464,56 @@ dependencies = [ [[package]] name = "async-http-codec" -version = "0.5.8" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc4f0600c43df768851edad95ad43119ebde70e2feec8e39b91f97c9b62029e" +checksum = "096146020b08dbc4587685b0730a7ba905625af13c65f8028035cdfd69573c91" dependencies = [ "anyhow", "futures", - "http", + "http 1.2.0", "httparse", "log", ] [[package]] name = "async-io" -version = "1.13.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ "async-lock", - "autocfg", "cfg-if", "concurrent-queue", - "futures-lite 1.13.0", - "log", + "futures-io", + "futures-lite", "parking", "polling", - "rustix 0.37.27", + "rustix", "slab", - "socket2 0.4.10", - "waker-fn", + "tracing", + "windows-sys 0.59.0", ] [[package]] name = "async-lock" -version = "2.8.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 2.5.3", + "event-listener", + "event-listener-strategy", + "pin-project-lite", ] [[package]] name = "async-net" -version = "1.8.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f" +checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" dependencies = [ "async-io", "blocking", - "futures-lite 1.13.0", + "futures-lite", ] [[package]] @@ -532,9 +533,9 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -549,53 +550,27 @@ version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] name = "async-web-client" -version = "0.2.7" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3838368c36426d00ad882467ea2308b17eceee33a10d840c2c90fd0923ee3b7e" +checksum = "37381fb4fad3cd9b579628c21a58f528ef029d1f072d10f16cb9431aa2236d29" dependencies = [ "async-http-codec", "async-net", - "async-ws", "futures", "futures-rustls", - "gloo-net", - "http", - "js-sys", + "http 1.2.0", "lazy_static", "log", - "rustls 0.21.12", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.25.4", -] - -[[package]] -name = "async-ws" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b9363f44ce91e6425b719432e3ff359a803434af3e577754a07e5d9ddbeda4" -dependencies = [ - "async-io", - "base64 0.13.1", - "futures", - "futures-lite 1.13.0", - "generic_static", - "http", - "log", - "rand", - "ring 0.16.20", - "strum 0.24.1", - "thiserror", - "utf-8", + "rustls-pki-types", + "thiserror 1.0.61", + "webpki-roots", ] [[package]] @@ -639,21 +614,49 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +[[package]] +name = "aws-lc-rs" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdd82dba44d209fddb11c190e0a94b78651f95299598e472215667417a03ff1d" +dependencies = [ + "aws-lc-sys", + "mirai-annotations", + "paste", + "untrusted 0.7.1", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df7a4168111d7eb622a31b214057b8509c0a7e1794f44c546d742330dc793972" +dependencies = [ + "bindgen 0.69.4", + "cc", + "cmake", + "dunce", + "fs_extra", + "libc", + "paste", +] + [[package]] name = "axum" -version = "0.6.20" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", - "bitflags 1.3.2", "bytes", "futures-util", - "headers", - "http", - "http-body", - "hyper", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.1", + "hyper-util", "itoa", "matchit", "memchr", @@ -665,47 +668,80 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.2", "tokio", - "tower", + "tower 0.5.2", "tower-layer", "tower-service", + "tracing", ] [[package]] name = "axum-core" -version = "0.3.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", "bytes", "futures-util", - "http", - "http-body", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", "mime", + "pin-project-lite", "rustversion", + "sync_wrapper 1.0.2", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-extra" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c794b30c904f0a1c2fb7740f7df7f7972dfaa14ef6f57cb6178dc63e5dca2f04" +dependencies = [ + "axum", + "axum-core", + "bytes", + "fastrand", + "futures-util", + "headers", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "mime", + "multer", + "pin-project-lite", + "serde", + "tower 0.5.2", "tower-layer", "tower-service", ] [[package]] name = "axum-server" -version = "0.5.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447f28c85900215cc1bea282f32d4a2f22d55c5a300afdfbc661c8d6a632e063" +checksum = "56bac90848f6a9393ac03c63c640925c4b7c8ca21654de40d53f55964667c7d8" dependencies = [ "arc-swap", "bytes", "futures-util", - "http", - "http-body", - "hyper", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.1", + "hyper-util", "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", + "rustls 0.23.20", + "rustls-pemfile 2.2.0", + "rustls-pki-types", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.1", + "tower 0.4.13", "tower-service", ] @@ -730,12 +766,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -795,12 +825,12 @@ dependencies = [ "lazycell", "peeking_take_while", "prettyplease", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "regex", "rustc-hash", "shlex", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -815,12 +845,15 @@ dependencies = [ "itertools 0.12.1", "lazy_static", "lazycell", - "proc-macro2 1.0.86", + "log", + "prettyplease", + "proc-macro2 1.0.92", "quote 1.0.36", "regex", "rustc-hash", "shlex", - "syn 2.0.68", + "syn 2.0.90", + "which", ] [[package]] @@ -963,7 +996,7 @@ dependencies = [ "async-channel", "async-task", "futures-io", - "futures-lite 2.3.0", + "futures-lite", "piper", ] @@ -985,9 +1018,9 @@ checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" dependencies = [ "once_cell", "proc-macro-crate", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", "syn_derive", ] @@ -1031,9 +1064,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" dependencies = [ "serde", ] @@ -1144,7 +1177,7 @@ dependencies = [ "iana-time-zone", "num-traits", "serde", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -1229,7 +1262,7 @@ checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" dependencies = [ "heck 0.4.1", "proc-macro-error 1.0.4", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", ] @@ -1243,6 +1276,15 @@ dependencies = [ "os_str_bytes", ] +[[package]] +name = "cmake" +version = "0.1.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c682c223677e0e5b6b7f63a64b9351844c3f1b1678a68b7ee617e30fb082620e" +dependencies = [ + "cc", +] + [[package]] name = "cnidarium" version = "0.80.10" @@ -1257,7 +1299,7 @@ dependencies = [ "ibc-types", "ics23", "jmt", - "metrics 0.22.3", + "metrics 0.24.1", "once_cell", "parking_lot", "pbjson", @@ -1279,13 +1321,48 @@ dependencies = [ "tracing-subscriber 0.3.18", ] +[[package]] +name = "cnidarium" +version = "0.81.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f77ae2f37b1ca16db2524f7d1f1a14416372dc2594635d18a6357b609c4164c8" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.21.7", + "borsh", + "futures", + "hex", + "ibc-proto", + "ibc-types", + "ics23", + "jmt", + "metrics 0.22.3", + "once_cell", + "parking_lot", + "pbjson", + "pin-project", + "prost", + "regex", + "rocksdb", + "serde", + "sha2 0.10.8", + "smallvec", + "tempfile", + "tendermint", + "tokio", + "tokio-stream", + "tonic", + "tracing", +] + [[package]] name = "cnidarium-component" version = "0.80.10" dependencies = [ "anyhow", "async-trait", - "cnidarium", + "cnidarium 0.81.0", "hex", "tendermint", ] @@ -1342,8 +1419,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b103d85ca6e209388771bfb7aa6b68a7aeec4afbf6f0a0264bfbf50360e5212e" dependencies = [ "crossterm", - "strum 0.23.0", - "strum_macros 0.23.1", + "strum", + "strum_macros", "unicode-width", ] @@ -1409,6 +1486,19 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +[[package]] +name = "cosmos-sdk-proto" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462e1f6a8e005acc8835d32d60cbd7973ed65ea2a8d8473830e675f050956427" +dependencies = [ + "informalsystems-pbjson", + "prost", + "serde", + "tendermint-proto", + "tonic", +] + [[package]] name = "cpufeatures" version = "0.2.12" @@ -1527,7 +1617,7 @@ dependencies = [ "bitflags 1.3.2", "crossterm_winapi", "libc", - "mio", + "mio 0.8.11", "parking_lot", "signal-hook", "signal-hook-mio", @@ -1623,10 +1713,10 @@ checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "strsim 0.11.1", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -1637,7 +1727,7 @@ checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" dependencies = [ "darling_core", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -1690,7 +1780,7 @@ dependencies = [ "decaf377", "proptest", "rand_core", - "thiserror", + "thiserror 1.0.61", ] [[package]] @@ -1717,7 +1807,7 @@ dependencies = [ "hex", "proptest", "rand_core", - "thiserror", + "thiserror 1.0.61", "zeroize", "zeroize_derive", ] @@ -1736,7 +1826,7 @@ dependencies = [ "hex", "rand_core", "serde", - "thiserror", + "thiserror 1.0.61", "zeroize", ] @@ -1753,9 +1843,9 @@ dependencies = [ [[package]] name = "der-parser" -version = "7.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82" +checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" dependencies = [ "asn1-rs", "displaydoc", @@ -1781,7 +1871,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", ] @@ -1792,7 +1882,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2c35ab6e03642397cdda1dd58abbc05d418aef8e36297f336d5aba060fe8df" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", ] @@ -1803,9 +1893,9 @@ version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -1873,9 +1963,9 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -1899,6 +1989,12 @@ version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "dyn-clone" version = "1.0.17" @@ -1939,7 +2035,7 @@ dependencies = [ "rand_core", "serde", "sha2 0.9.9", - "thiserror", + "thiserror 1.0.61", "zeroize", ] @@ -2039,12 +2135,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - [[package]] name = "event-listener" version = "5.3.1" @@ -2062,7 +2152,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 5.3.1", + "event-listener", "pin-project-lite", ] @@ -2097,15 +2187,6 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - [[package]] name = "fastrand" version = "2.1.0" @@ -2189,7 +2270,7 @@ checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" dependencies = [ "futures-core", "futures-sink", - "spin 0.9.8", + "spin", ] [[package]] @@ -2198,6 +2279,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + [[package]] name = "foreign-types" version = "0.3.2" @@ -2239,7 +2326,7 @@ dependencies = [ "rand_core", "serde", "serdect", - "thiserror", + "thiserror 1.0.61", "visibility", "zeroize", ] @@ -2327,28 +2414,16 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - [[package]] name = "futures-lite" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ + "fastrand", "futures-core", + "futures-io", + "parking", "pin-project-lite", ] @@ -2358,19 +2433,20 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] name = "futures-rustls" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd3cf68c183738046838e300353e4716c674dc5e56890de4826801a6622a28" +checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.21.12", + "rustls 0.23.20", + "rustls-pki-types", ] [[package]] @@ -2428,7 +2504,7 @@ checksum = "784f84eebc366e15251c4a8c3acee82a6a6f427949776ecb88377362a9621738" dependencies = [ "proc-macro-error 0.4.12", "proc-macro-hack", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", ] @@ -2444,15 +2520,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "generic_static" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28ccff179d8070317671db09aee6d20affc26e88c5394714553b04f509b43a60" -dependencies = [ - "once_cell", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -2478,31 +2545,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "gloo-net" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9902a044653b26b99f7e3693a42f171312d9be8b26b5697bd1e43ad1f8a35e10" -dependencies = [ - "gloo-utils", - "js-sys", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "gloo-utils" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e" -dependencies = [ - "js-sys", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "group" version = "0.13.0" @@ -2525,8 +2567,27 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", - "indexmap 2.2.6", + "http 0.2.12", + "indexmap 2.7.0", + "slab", + "tokio", + "tokio-util 0.7.11", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.2.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util 0.7.11", @@ -2583,6 +2644,15 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash", +] + [[package]] name = "hashlink" version = "0.9.1" @@ -2604,14 +2674,14 @@ dependencies = [ [[package]] name = "headers" -version = "0.3.9" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9" dependencies = [ "base64 0.21.7", "bytes", "headers-core", - "http", + "http 1.2.0", "httpdate", "mime", "sha1", @@ -2619,11 +2689,11 @@ dependencies = [ [[package]] name = "headers-core" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" dependencies = [ - "http", + "http 1.2.0", ] [[package]] @@ -2636,7 +2706,7 @@ dependencies = [ "hash32", "rustc_version", "serde", - "spin 0.9.8", + "spin", "stable_deref_trait", ] @@ -2672,9 +2742,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.9" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] name = "hex" @@ -2720,6 +2790,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.6" @@ -2727,15 +2808,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http", + "http 0.2.12", "pin-project-lite", ] [[package]] -name = "http-range-header" -version = "0.3.1" +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.2.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.2.0", + "http-body 1.0.1", + "pin-project-lite", +] [[package]] name = "httparse" @@ -2763,28 +2861,49 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.29" +version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ "bytes", "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.7", + "socket2", "tokio", "tower-service", "tracing", "want", ] +[[package]] +name = "hyper" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.7", + "http 1.2.0", + "http-body 1.0.1", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + [[package]] name = "hyper-rustls" version = "0.24.2" @@ -2792,36 +2911,77 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http", - "hyper", + "http 0.2.12", + "hyper 0.14.31", "rustls 0.21.12", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +dependencies = [ + "futures-util", + "http 1.2.0", + "hyper 1.5.1", + "hyper-util", + "rustls 0.23.20", + "rustls-native-certs 0.8.0", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.26.1", + "tower-service", ] [[package]] name = "hyper-timeout" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper", + "hyper 1.5.1", + "hyper-util", "pin-project-lite", "tokio", - "tokio-io-timeout", + "tower-service", ] [[package]] name = "hyper-tls" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", - "hyper", + "http-body-util", + "hyper 1.5.1", + "hyper-util", "native-tls", "tokio", "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.2.0", + "http-body 1.0.1", + "hyper 1.5.1", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", ] [[package]] @@ -2849,12 +3009,13 @@ dependencies = [ [[package]] name = "ibc-proto" -version = "0.41.0" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4ee32b22d3b06f31529b956f4928e5c9a068d71e46cf6abfa19c31ca550553" +checksum = "9b70f517162e74e2d35875b8b94bf4d1e45f2c69ef3de452dc855944455d33ca" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bytes", + "cosmos-sdk-proto", "flex-error", "ics23", "informalsystems-pbjson", @@ -2867,9 +3028,9 @@ dependencies = [ [[package]] name = "ibc-types" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba606d86e2015991f86a129935dbaeacd94beab72fb90a733c1b1ea76be708a2" +checksum = "fd68e32f5bd94849131670d34e21b0fb66057e91bee8e451e7f4e216e71616d2" dependencies = [ "ibc-types-core-channel", "ibc-types-core-client", @@ -2885,9 +3046,9 @@ dependencies = [ [[package]] name = "ibc-types-core-channel" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fb64ef52086b727e5ae01da0e773f8ca9172ec1fd9d0aa1a79c0c2c610b17a" +checksum = "c57da64f7e945e7443035275cc279e0176c988ea625968c2526706aafcff1766" dependencies = [ "anyhow", "bytes", @@ -2918,9 +3079,9 @@ dependencies = [ [[package]] name = "ibc-types-core-client" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4db9d4b136b9e84ccf581fec02bb9ebc4478ac0f145c526760ed4310b98741e7" +checksum = "108a89f64ffa39e04a7e29de9d9824523c3164f8518927716be870ad8a7aedf9" dependencies = [ "anyhow", "bytes", @@ -2945,9 +3106,9 @@ dependencies = [ [[package]] name = "ibc-types-core-commitment" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e2c527e14707dd0b2c7e6e2f6f62b0655c83154ae3eb1504e441d9d8f454ac6" +checksum = "8949e33fbb9c3f1ae49588f4829977e80439f3dfc1491b5a69492f5e4a036949" dependencies = [ "anyhow", "bytes", @@ -2980,9 +3141,9 @@ dependencies = [ [[package]] name = "ibc-types-core-connection" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8a326c00e9ba48059407478c826237fe39cc90dd2b47182484192926904fe7" +checksum = "f63035288d11e5830daf20fd99507a671ab1cc03fa04752d75ef1c75e2786543" dependencies = [ "anyhow", "bytes", @@ -3010,9 +3171,9 @@ dependencies = [ [[package]] name = "ibc-types-domain-type" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3abc9619b9dd7201804f45fc7f335dda72d2e4d6f82d96e8fe3abf4585e6101b" +checksum = "c2c543a23a77a5d814e0aeffd5a918964468a8b213f664897bc3f8c50cc7d5c1" dependencies = [ "anyhow", "bytes", @@ -3021,9 +3182,9 @@ dependencies = [ [[package]] name = "ibc-types-identifier" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "405880cf06fef65f51c5c91b7efbdcbc8d7eba0ac16b43538b36ebd17f21edea" +checksum = "b2ed2d7f06055bb2548564bf02c8c4b47561134f282adae61dc5c6ed722e1cde" dependencies = [ "displaydoc", "serde", @@ -3032,9 +3193,9 @@ dependencies = [ [[package]] name = "ibc-types-lightclients-tendermint" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab22446058bd5afa50d64f8519a9107bbc5101ee65373df896314f52afa0fc6" +checksum = "00fd846b7eedca1dfbb7babeb55e0d74fb0d09a7db63da93737d54a581a96371" dependencies = [ "anyhow", "bytes", @@ -3069,9 +3230,9 @@ dependencies = [ [[package]] name = "ibc-types-path" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a29e6fd8871fdced76402a3008219abf8773e527a46f120e0d76d6a3bb9706c1" +checksum = "0f4da80e010427aff50f227920cdc8f7879469ce2db181cbcf92dc228172a334" dependencies = [ "bytes", "derive_more", @@ -3092,9 +3253,9 @@ dependencies = [ [[package]] name = "ibc-types-timestamp" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d2e763838dbef62ca8a1344b4dd5b3919d685b4c61874183724644c912237a" +checksum = "748b2fbebe30ca799d31f6fc220d705b5180a608db842e29a3722671411d81a6" dependencies = [ "bytes", "displaydoc", @@ -3111,9 +3272,9 @@ dependencies = [ [[package]] name = "ibc-types-transfer" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad973ca1fbad8d0d1632ec0a329aecff8731bbb96395b7553d6b9fd749356d34" +checksum = "8fcb46fe34a87db49bc9bb20918d7f882871a20d741d866d217c52a5dbe16a72" dependencies = [ "displaydoc", "serde", @@ -3134,9 +3295,9 @@ dependencies = [ [[package]] name = "ics23" -version = "0.11.3" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18798160736c1e368938ba6967dbcb3c7afb3256b442a5506ba5222eebb68a5a" +checksum = "73b17f1a5bd7d12ad30a21445cfa5f52fd7651cb3243ba866f9916b1ec112f12" dependencies = [ "anyhow", "blake2", @@ -3206,7 +3367,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", ] @@ -3230,7 +3391,7 @@ checksum = "3a7d6e1419fa3129eb0802b4c99603c0d425c79fb5d76191d5a20d0ab0d664e8" dependencies = [ "libflate", "proc-macro-hack", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", ] @@ -3264,12 +3425,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "serde", ] @@ -3304,26 +3465,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.9", - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "ipnet" version = "2.9.0" @@ -3357,6 +3498,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -3365,9 +3515,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jmt" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a3bf1a303934c6f75533bd3a563730a0730f9361023c49ed6aee9fcb5b98f8" +checksum = "bf2a10370b45cd850e64993ccd81d25ea2d4b5b0d0312546e7489fed82064f2e" dependencies = [ "anyhow", "borsh", @@ -3381,7 +3531,7 @@ dependencies = [ "num-traits", "serde", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.61", "tracing", ] @@ -3430,7 +3580,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin 0.9.8", + "spin", ] [[package]] @@ -3441,9 +3591,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.168" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" [[package]] name = "libflate" @@ -3472,7 +3622,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e310b3a6b5907f99202fcdb4960ff45b93735d7c7d96b760fcff8db2dc0e103d" dependencies = [ "cfg-if", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -3551,12 +3701,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -3683,21 +3827,33 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "metrics" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a7deb012b3b2767169ff203fadb4c6b0b82b947512e5eb9e0b78c2e186ad9e3" +dependencies = [ + "ahash", + "portable-atomic", +] + [[package]] name = "metrics-exporter-prometheus" -version = "0.13.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bf4e7146e30ad172c42c39b3246864bd2d3c6396780711a1baf749cfe423e21" +checksum = "85b6f8152da6d7892ff1b7a1c0fa3f435e92b5918ad67035c3bb432111d9a29b" dependencies = [ - "base64 0.21.7", - "hyper", - "hyper-tls", - "indexmap 2.2.6", + "base64 0.22.1", + "http-body-util", + "hyper 1.5.1", + "hyper-rustls 0.27.3", + "hyper-util", + "indexmap 2.7.0", "ipnet", - "metrics 0.22.3", + "metrics 0.24.1", "metrics-util", "quanta", - "thiserror", + "thiserror 1.0.61", "tokio", "tracing", ] @@ -3719,14 +3875,14 @@ dependencies = [ [[package]] name = "metrics-tracing-context" -version = "0.15.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb791d015f8947acf5a7f62bd28d00f289bb7ea98cfbe3ffec1d061eee12df12" +checksum = "f1ada651cd6bdffe01e5f35067df53491f1fe853d2b154008ca2bd30b3d3fcf6" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.7.0", "itoa", "lockfree-object-pool", - "metrics 0.22.3", + "metrics 0.24.1", "metrics-util", "once_cell", "tracing", @@ -3736,17 +3892,16 @@ dependencies = [ [[package]] name = "metrics-util" -version = "0.16.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b07a5eb561b8cbc16be2d216faf7757f9baf3bfb94dbb0fae3df8387a5bb47f" +checksum = "15b482df36c13dd1869d73d14d28cd4855fbd6cfc32294bee109908a9f4a4ed7" dependencies = [ "aho-corasick", "crossbeam-epoch", "crossbeam-utils", - "hashbrown 0.14.5", - "indexmap 2.2.6", - "metrics 0.22.3", - "num_cpus", + "hashbrown 0.15.2", + "indexmap 2.7.0", + "metrics 0.24.1", "ordered-float", "quanta", "radix_trie", @@ -3796,12 +3951,40 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.52.0", +] + [[package]] name = "mirai-annotations" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" +[[package]] +name = "multer" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http 1.2.0", + "httparse", + "memchr", + "mime", + "spin", + "version_check", +] + [[package]] name = "multimap" version = "0.10.0" @@ -3921,7 +4104,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", ] @@ -3956,16 +4139,6 @@ dependencies = [ "libm", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi 0.3.9", - "libc", -] - [[package]] name = "number_prefix" version = "0.4.0" @@ -3989,9 +4162,9 @@ dependencies = [ [[package]] name = "oid-registry" -version = "0.4.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38e20717fa0541f39bd146692035c37bedfa532b3e5071b35761082407546b2a" +checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" dependencies = [ "asn1-rs", ] @@ -4035,9 +4208,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -4100,7 +4273,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", ] @@ -4131,7 +4304,7 @@ dependencies = [ "libc", "redox_syscall 0.5.2", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -4164,9 +4337,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbjson" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1030c719b0ec2a2d25a5df729d6cff1acf3cc230bf766f4f97833591f7577b90" +checksum = "c7e6349fa080353f4a597daffd05cb81572a9c031a6d4fff7e504947496fcc68" dependencies = [ "base64 0.21.7", "serde", @@ -4174,21 +4347,21 @@ dependencies = [ [[package]] name = "pbjson-build" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2580e33f2292d34be285c5bc3dba5259542b083cfad6037b6d70345f24dcb735" +checksum = "6eea3058763d6e656105d1403cb04e0a41b7bbac6362d413e7c33be0c32279c9" dependencies = [ - "heck 0.4.1", - "itertools 0.11.0", + "heck 0.5.0", + "itertools 0.13.0", "prost", "prost-types", ] [[package]] name = "pbjson-types" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18f596653ba4ac51bdecbb4ef6773bc7f56042dc13927910de1684ad3d32aa12" +checksum = "e54e5e7bfb1652f95bc361d76f3c780d8e526b134b85417e774166ee941f0887" dependencies = [ "bytes", "chrono", @@ -4245,7 +4418,7 @@ dependencies = [ "ed25519-consensus", "futures", "hex", - "http-body", + "http-body 1.0.1", "humantime", "ibc-proto", "ibc-types", @@ -4296,7 +4469,7 @@ dependencies = [ "tokio-util 0.7.11", "toml 0.7.8", "tonic", - "tower", + "tower 0.4.13", "tracing", "tracing-subscriber 0.3.18", "url", @@ -4318,11 +4491,11 @@ dependencies = [ "ed25519-consensus", "futures", "hex", - "http", - "http-body", + "http 1.2.0", + "http-body 1.0.1", "ibc-proto", "ibc-types", - "metrics 0.22.3", + "metrics 0.24.1", "parking_lot", "penumbra-app", "penumbra-asset", @@ -4348,7 +4521,7 @@ dependencies = [ "tonic", "tonic-reflection", "tonic-web", - "tower", + "tower 0.4.13", "tracing", "tracing-subscriber 0.3.18", "url", @@ -4371,7 +4544,7 @@ dependencies = [ "bytes", "chrono", "clap", - "cnidarium", + "cnidarium 0.81.0", "csv", "decaf377", "decaf377-rdsa", @@ -4381,12 +4554,12 @@ dependencies = [ "fs_extra", "futures", "hex", - "http", + "http 1.2.0", "ibc-proto", "ibc-types", "ics23", "jmt", - "metrics 0.22.3", + "metrics 0.24.1", "metrics-exporter-prometheus", "metrics-process", "metrics-tracing-context", @@ -4425,7 +4598,7 @@ dependencies = [ "rand_chacha", "rand_core", "regex", - "reqwest", + "reqwest 0.12.9", "rocksdb", "serde", "serde_json", @@ -4445,10 +4618,10 @@ dependencies = [ "tonic", "tonic-reflection", "tonic-web", - "tower", + "tower 0.4.13", "tower-abci", "tower-actor", - "tower-http", + "tower-http 0.6.2", "tower-service", "tracing", "tracing-subscriber 0.3.18", @@ -4479,7 +4652,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f241d42067ed3ab6a4fece1db720838e1418f36d868585a27931f95d6bc03582" dependencies = [ "peg-runtime", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", ] @@ -4491,11 +4664,12 @@ checksum = "e3aeb8f54c078314c2065ee649a7241f46b9d8e418e1a9581ba0546657d7aa3a" [[package]] name = "pem" -version = "1.1.1" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ - "base64 0.13.1", + "base64 0.22.1", + "serde", ] [[package]] @@ -4522,7 +4696,7 @@ dependencies = [ "blake2b_simd 1.0.2", "camino", "cfg-if", - "cnidarium", + "cnidarium 0.81.0", "cnidarium-component", "decaf377", "decaf377-fmd", @@ -4535,7 +4709,7 @@ dependencies = [ "ics23", "im", "jmt", - "metrics 0.22.3", + "metrics 0.24.1", "once_cell", "parking_lot", "penumbra-asset", @@ -4586,10 +4760,10 @@ dependencies = [ "tonic", "tonic-reflection", "tonic-web", - "tower", + "tower 0.4.13", "tower-abci", "tower-actor", - "tower-http", + "tower-http 0.6.2", "tower-service", "tracing", "tracing-subscriber 0.3.18", @@ -4632,7 +4806,7 @@ dependencies = [ "serde_json", "serde_with", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.61", "tracing", ] @@ -4653,7 +4827,7 @@ dependencies = [ "bech32", "bitvec", "blake2b_simd 1.0.2", - "cnidarium", + "cnidarium 0.81.0", "cnidarium-component", "decaf377", "decaf377-rdsa", @@ -4661,7 +4835,7 @@ dependencies = [ "futures", "hex", "im", - "metrics 0.22.3", + "metrics 0.24.1", "once_cell", "pbjson-types", "penumbra-asset", @@ -4698,7 +4872,7 @@ dependencies = [ "anyhow", "axum-server", "futures", - "rustls 0.21.12", + "rustls 0.23.20", "rustls-acme", "tracing", ] @@ -4740,7 +4914,7 @@ dependencies = [ "rand", "rand_core", "regex", - "reqwest", + "reqwest 0.12.9", "serde", "serde_json", "sha2 0.10.8", @@ -4756,11 +4930,11 @@ dependencies = [ "async-trait", "base64 0.21.7", "blake2b_simd 1.0.2", - "cnidarium", + "cnidarium 0.81.0", "cnidarium-component", "futures", "hex", - "metrics 0.22.3", + "metrics 0.24.1", "once_cell", "pbjson-types", "penumbra-asset", @@ -4788,12 +4962,12 @@ dependencies = [ "async-trait", "blake2b_simd 1.0.2", "bytes", - "cnidarium", + "cnidarium 0.81.0", "cnidarium-component", "decaf377-rdsa", "futures", "im", - "metrics 0.22.3", + "metrics 0.24.1", "penumbra-dex", "penumbra-fee", "penumbra-governance", @@ -4866,7 +5040,7 @@ dependencies = [ "base64 0.21.7", "bincode", "blake2b_simd 1.0.2", - "cnidarium", + "cnidarium 0.81.0", "cnidarium-component", "decaf377", "decaf377-fmd", @@ -4876,7 +5050,7 @@ dependencies = [ "hex", "im", "itertools 0.11.0", - "metrics 0.22.3", + "metrics 0.24.1", "metrics-exporter-prometheus", "once_cell", "parking_lot", @@ -4904,7 +5078,7 @@ dependencies = [ "tap", "tendermint", "tendermint-light-client-verifier", - "thiserror", + "thiserror 1.0.61", "tokio", "tokio-stream", "tonic", @@ -4918,7 +5092,7 @@ version = "0.80.10" dependencies = [ "anyhow", "async-trait", - "cnidarium", + "cnidarium 0.81.0", "cnidarium-component", "getrandom", "penumbra-asset", @@ -4944,7 +5118,7 @@ dependencies = [ "proptest", "rand", "rand_core", - "thiserror", + "thiserror 1.0.61", "tokio", ] @@ -4957,13 +5131,13 @@ dependencies = [ "async-trait", "blake2b_simd 1.0.2", "bytes", - "cnidarium", + "cnidarium 0.81.0", "cnidarium-component", "decaf377", "decaf377-rdsa", "getrandom", "im", - "metrics 0.22.3", + "metrics 0.24.1", "penumbra-asset", "penumbra-num", "penumbra-proto", @@ -4981,10 +5155,10 @@ version = "0.80.10" dependencies = [ "anyhow", "async-trait", - "cnidarium", + "cnidarium 0.81.0", "cnidarium-component", "futures", - "metrics 0.22.3", + "metrics 0.24.1", "penumbra-asset", "penumbra-community-pool", "penumbra-distributions", @@ -5014,14 +5188,14 @@ dependencies = [ "base64 0.21.7", "blake2b_simd 1.0.2", "bytes", - "cnidarium", + "cnidarium 0.81.0", "cnidarium-component", "decaf377", "decaf377-rdsa", "futures", "ibc-types", "im", - "metrics 0.22.3", + "metrics 0.24.1", "once_cell", "pbjson-types", "penumbra-asset", @@ -5046,7 +5220,7 @@ dependencies = [ "serde_json", "tap", "tendermint", - "thiserror", + "thiserror 1.0.61", "tokio", "tonic", "tracing", @@ -5061,13 +5235,13 @@ dependencies = [ "async-trait", "base64 0.21.7", "blake2b_simd 1.0.2", - "cnidarium", + "cnidarium 0.81.0", "futures", "hex", "ibc-proto", "ibc-types", "ics23", - "metrics 0.22.3", + "metrics 0.24.1", "num-traits", "once_cell", "pbjson-types", @@ -5085,7 +5259,7 @@ dependencies = [ "time", "tokio", "tonic", - "tower", + "tower 0.4.13", "tracing", ] @@ -5132,7 +5306,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.61", "tracing", ] @@ -5159,7 +5333,7 @@ name = "penumbra-mock-client" version = "0.80.10" dependencies = [ "anyhow", - "cnidarium", + "cnidarium 0.81.0", "penumbra-asset", "penumbra-compact-block", "penumbra-dex", @@ -5187,7 +5361,7 @@ dependencies = [ "tap", "tendermint", "tendermint-proto", - "tower", + "tower 0.4.13", "tracing", ] @@ -5239,7 +5413,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.61", "tracing", ] @@ -5281,7 +5455,7 @@ dependencies = [ "rand", "rand_core", "regex", - "reqwest", + "reqwest 0.12.9", "serde", "serde_json", "sha2 0.10.8", @@ -5324,12 +5498,13 @@ dependencies = [ "bech32", "bytes", "chrono", - "cnidarium", + "cnidarium 0.81.0", "decaf377-fmd", "decaf377-rdsa", "futures", "hex", - "http-body", + "http-body 1.0.1", + "http-body-util", "ibc-proto", "ibc-types", "ics23", @@ -5343,9 +5518,9 @@ dependencies = [ "tendermint", "tendermint-proto", "tendermint-rpc", - "thiserror", + "thiserror 1.0.61", "tonic", - "tower", + "tower 0.4.13", "tracing", ] @@ -5363,14 +5538,14 @@ dependencies = [ "blake2b_simd 1.0.2", "bytes", "chrono", - "cnidarium", + "cnidarium 0.81.0", "cnidarium-component", "decaf377", "decaf377-rdsa", "getrandom", "hex", "im", - "metrics 0.22.3", + "metrics 0.24.1", "once_cell", "pbjson-types", "penumbra-keys", @@ -5402,7 +5577,7 @@ dependencies = [ "blake2b_simd 1.0.2", "bytes", "chacha20poly1305", - "cnidarium", + "cnidarium 0.81.0", "cnidarium-component", "decaf377", "decaf377-fmd", @@ -5413,7 +5588,7 @@ dependencies = [ "ibc-proto", "ibc-types", "im", - "metrics 0.22.3", + "metrics 0.24.1", "once_cell", "penumbra-asset", "penumbra-ibc", @@ -5434,7 +5609,7 @@ dependencies = [ "serde_json", "tap", "tendermint", - "thiserror", + "thiserror 1.0.61", "tonic", "tracing", ] @@ -5455,7 +5630,7 @@ dependencies = [ "base64 0.21.7", "bech32", "bitvec", - "cnidarium", + "cnidarium 0.81.0", "cnidarium-component", "decaf377", "decaf377-rdsa", @@ -5464,7 +5639,7 @@ dependencies = [ "getrandom", "hex", "im", - "metrics 0.22.3", + "metrics 0.24.1", "once_cell", "penumbra-asset", "penumbra-distributions", @@ -5520,7 +5695,7 @@ dependencies = [ "serde", "serde_json", "static_assertions", - "thiserror", + "thiserror 1.0.61", "tracing", ] @@ -5542,6 +5717,7 @@ version = "0.80.10" dependencies = [ "anyhow", "axum", + "axum-extra", "axum-server", "bytes", "clap", @@ -5562,7 +5738,7 @@ dependencies = [ "tokio-stream", "tokio-util 0.7.11", "tonic", - "tower-http", + "tower-http 0.6.2", "tracing-subscriber 0.3.18", ] @@ -5574,8 +5750,8 @@ dependencies = [ "chrono", "futures", "hex", - "http", - "metrics 0.22.3", + "http 1.2.0", + "metrics 0.24.1", "pbjson-types", "penumbra-proto", "penumbra-transaction", @@ -5592,7 +5768,7 @@ dependencies = [ "tokio-stream", "tokio-util 0.7.11", "tonic", - "tower", + "tower 0.4.13", "tower-service", "tracing", "url", @@ -5612,7 +5788,7 @@ version = "0.80.10" dependencies = [ "futures", "hex", - "http", + "http 1.2.0", "pin-project", "pin-project-lite", "sha2 0.10.8", @@ -5622,7 +5798,7 @@ dependencies = [ "tokio-stream", "tokio-util 0.7.11", "tonic", - "tower", + "tower 0.4.13", "tower-service", "tracing", ] @@ -5677,7 +5853,7 @@ dependencies = [ "serde_json", "sha2 0.10.8", "tendermint", - "thiserror", + "thiserror 1.0.61", "tokio", "tracing", ] @@ -5712,7 +5888,7 @@ dependencies = [ "genawaiter", "hex", "ibc-types", - "metrics 0.22.3", + "metrics 0.24.1", "once_cell", "parking_lot", "pbjson-types", @@ -5787,7 +5963,7 @@ dependencies = [ "serde_json", "tokio", "tonic", - "tower", + "tower 0.4.13", "tracing", ] @@ -5804,7 +5980,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.2.6", + "indexmap 2.7.0", ] [[package]] @@ -5822,9 +5998,9 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -5875,7 +6051,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391" dependencies = [ "atomic-waker", - "fastrand 2.1.0", + "fastrand", "futures-io", ] @@ -5973,18 +6149,17 @@ dependencies = [ [[package]] name = "polling" -version = "2.8.0" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ - "autocfg", - "bitflags 1.3.2", "cfg-if", "concurrent-queue", - "libc", - "log", + "hermit-abi 0.4.0", "pin-project-lite", - "windows-sys 0.48.0", + "rustix", + "tracing", + "windows-sys 0.59.0", ] [[package]] @@ -6117,8 +6292,8 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ - "proc-macro2 1.0.86", - "syn 2.0.68", + "proc-macro2 1.0.92", + "syn 2.0.90", ] [[package]] @@ -6149,7 +6324,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18f33027081eba0a6d8aba6d1b1c3a3be58cbb12106341c2d5759fcd9b5277e7" dependencies = [ "proc-macro-error-attr 0.4.12", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", "version_check", @@ -6162,7 +6337,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr 1.0.4", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", "version_check", @@ -6174,7 +6349,7 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a5b4b77fdb63c1eca72173d68d24501c54ab1269409f6b672c85deb18af69de" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", "syn-mid", @@ -6187,7 +6362,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "version_check", ] @@ -6204,7 +6379,7 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "557facecbf90ff79faea80a08230d10c812016aa19198ed07d06de61f965b5cc" dependencies = [ - "unicode-xid 0.1.0", + "unicode-xid", ] [[package]] @@ -6213,14 +6388,14 @@ version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" dependencies = [ - "unicode-xid 0.1.0", + "unicode-xid", ] [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -6235,7 +6410,7 @@ dependencies = [ "hex", "lazy_static", "procfs-core", - "rustix 0.38.34", + "rustix", ] [[package]] @@ -6281,9 +6456,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.12.6" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", "prost-derive", @@ -6291,13 +6466,12 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.12.6" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" dependencies = [ - "bytes", "heck 0.5.0", - "itertools 0.12.1", + "itertools 0.13.0", "log", "multimap", "once_cell", @@ -6306,28 +6480,28 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.68", + "syn 2.0.90", "tempfile", ] [[package]] name = "prost-derive" -version = "0.12.6" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" dependencies = [ "anyhow", - "itertools 0.12.1", - "proc-macro2 1.0.86", + "itertools 0.13.0", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] name = "prost-reflect" -version = "0.13.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5eec97d5d34bdd17ad2db2219aabf46b054c6c41bd5529767c9ce55be5898f" +checksum = "20ae544fca2892fd4b7e9ff26cba1090cedf1d4d95c2aded1af15d2f93f270b8" dependencies = [ "once_cell", "prost", @@ -6336,9 +6510,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.12.6" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" dependencies = [ "prost", ] @@ -6379,7 +6553,7 @@ version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", ] [[package]] @@ -6515,12 +6689,13 @@ dependencies = [ [[package]] name = "rcgen" -version = "0.10.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" +checksum = "54077e1872c46788540de1ea3d7f4ccb1983d12f9aa909b234468676c1a36779" dependencies = [ + "aws-lc-rs", "pem", - "ring 0.16.20", + "rustls-pki-types", "time", "yasna", ] @@ -6557,7 +6732,7 @@ checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom", "libredox 0.1.3", - "thiserror", + "thiserror 1.0.61", ] [[package]] @@ -6615,31 +6790,72 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-rustls", - "hyper-tls", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.31", + "hyper-rustls 0.24.2", "ipnet", "js-sys", "log", "mime", - "native-tls", "once_cell", "percent-encoding", "pin-project-lite", "rustls 0.21.12", - "rustls-native-certs", + "rustls-native-certs 0.6.3", "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", - "system-configuration", + "sync_wrapper 0.1.2", + "system-configuration 0.5.1", + "tokio", + "tokio-rustls 0.24.1", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "reqwest" +version = "0.12.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.4.7", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.1", + "hyper-rustls 0.27.3", + "hyper-tls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile 2.2.0", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.2", + "system-configuration 0.6.1", "tokio", "tokio-native-tls", - "tokio-rustls", "tokio-util 0.7.11", "tower-service", "url", @@ -6647,7 +6863,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "winreg", + "windows-registry", ] [[package]] @@ -6657,22 +6873,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ "hmac", - "subtle", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", + "subtle", ] [[package]] @@ -6685,7 +6886,7 @@ dependencies = [ "cfg-if", "getrandom", "libc", - "spin 0.9.8", + "spin", "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -6815,20 +7016,6 @@ dependencies = [ "nom", ] -[[package]] -name = "rustix" -version = "0.37.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - [[package]] name = "rustix" version = "0.38.34" @@ -6838,7 +7025,7 @@ dependencies = [ "bitflags 2.6.0", "errno", "libc", - "linux-raw-sys 0.4.14", + "linux-raw-sys", "windows-sys 0.52.0", ] @@ -6849,19 +7036,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring 0.17.8", + "ring", "rustls-webpki 0.101.7", "sct", ] [[package]] name = "rustls" -version = "0.23.19" +version = "0.23.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" +checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" dependencies = [ + "aws-lc-rs", + "log", "once_cell", - "ring 0.17.8", + "ring", "rustls-pki-types", "rustls-webpki 0.102.8", "subtle", @@ -6870,31 +7059,30 @@ dependencies = [ [[package]] name = "rustls-acme" -version = "0.7.7" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0e7754a9b89270815d1b119cdd35489380dc3598e24a952bf8a167c00b68b61" +checksum = "54f05935c0b1d7c5981c40b768c5d5ed96a43f5cb5166f8f5be09779c5825697" dependencies = [ "async-io", "async-trait", "async-web-client", + "aws-lc-rs", "axum-server", - "base64 0.13.1", + "base64 0.22.1", "blocking", "chrono", "futures", "futures-rustls", - "http", + "http 1.2.0", "log", "pem", "rcgen", - "ring 0.16.20", - "rustls 0.21.12", "serde", "serde_json", - "thiserror", + "thiserror 2.0.6", "tokio", "tokio-util 0.7.11", - "webpki-roots 0.25.4", + "webpki-roots", "x509-parser", ] @@ -6910,6 +7098,19 @@ dependencies = [ "security-framework", ] +[[package]] +name = "rustls-native-certs" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "schannel", + "security-framework", +] + [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -6940,7 +7141,7 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.8", + "ring", "untrusted 0.9.0", ] @@ -6950,7 +7151,8 @@ version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "ring 0.17.8", + "aws-lc-rs", + "ring", "rustls-pki-types", "untrusted 0.9.0", ] @@ -7065,7 +7267,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.8", + "ring", "untrusted 0.9.0", ] @@ -7135,9 +7337,9 @@ version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -7146,7 +7348,7 @@ version = "1.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d947f6b3163d8857ea16c4fa0dd4840d52f3041039a85decd46867eb1abef2e4" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.7.0", "itoa", "ryu", "serde", @@ -7168,9 +7370,9 @@ version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -7198,7 +7400,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f1b15838534b38fb67ffe60033fe3ffad48f916c175e8baa0400e0cdb958dec" dependencies = [ "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -7223,7 +7425,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.6", + "indexmap 2.7.0", "serde", "serde_derive", "serde_json", @@ -7238,9 +7440,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2" dependencies = [ "darling", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -7336,7 +7538,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" dependencies = [ "libc", - "mio", + "mio 0.8.11", "signal-hook", ] @@ -7377,9 +7579,9 @@ dependencies = [ [[package]] name = "sketches-ddsketch" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" +checksum = "c1e9a774a6c28142ac54bb25d25562e6bcf957493a184f15ad4eebccb23e410a" [[package]] name = "slab" @@ -7399,16 +7601,6 @@ dependencies = [ "serde", ] -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "socket2" version = "0.5.7" @@ -7419,12 +7611,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -7481,7 +7667,7 @@ dependencies = [ "crc", "crossbeam-queue", "either", - "event-listener 5.3.1", + "event-listener", "futures-channel", "futures-core", "futures-intrusive", @@ -7490,25 +7676,25 @@ dependencies = [ "hashbrown 0.14.5", "hashlink", "hex", - "indexmap 2.2.6", + "indexmap 2.7.0", "log", "memchr", "once_cell", "paste", "percent-encoding", - "rustls 0.23.19", + "rustls 0.23.20", "rustls-pemfile 2.2.0", "serde", "serde_json", "sha2 0.10.8", "smallvec", "sqlformat", - "thiserror", + "thiserror 1.0.61", "tokio", "tokio-stream", "tracing", "url", - "webpki-roots 0.26.7", + "webpki-roots", ] [[package]] @@ -7517,11 +7703,11 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "sqlx-core", "sqlx-macros-core", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -7535,7 +7721,7 @@ dependencies = [ "heck 0.5.0", "hex", "once_cell", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "serde", "serde_json", @@ -7544,7 +7730,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.68", + "syn 2.0.90", "tempfile", "tokio", "url", @@ -7589,7 +7775,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror", + "thiserror 1.0.61", "tracing", "whoami", ] @@ -7630,7 +7816,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror", + "thiserror 1.0.61", "tracing", "whoami", ] @@ -7700,10 +7886,10 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ad9e09554f0456d67a69c1584c9798ba733a5b50349a6c0d0948710523922d" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "structmeta-derive", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -7712,9 +7898,9 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -7723,15 +7909,6 @@ version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" -dependencies = [ - "strum_macros 0.24.3", -] - [[package]] name = "strum_macros" version = "0.23.1" @@ -7739,20 +7916,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" dependencies = [ "heck 0.3.3", - "proc-macro2 1.0.86", - "quote 1.0.36", - "rustversion", - "syn 1.0.109", -] - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck 0.4.1", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "rustversion", "syn 1.0.109", @@ -7796,7 +7960,7 @@ dependencies = [ "decaf377", "futures", "hex", - "http-body", + "http-body 1.0.1", "metrics-tracing-context", "penumbra-asset", "penumbra-keys", @@ -7812,7 +7976,7 @@ dependencies = [ "tokio", "tokio-stream", "tonic", - "tower", + "tower 0.4.13", "tracing", "tracing-subscriber 0.3.18", "url", @@ -7826,7 +7990,7 @@ checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" dependencies = [ "proc-macro2 0.4.30", "quote 0.6.13", - "unicode-xid 0.1.0", + "unicode-xid", ] [[package]] @@ -7835,18 +7999,18 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.68" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "unicode-ident", ] @@ -7857,7 +8021,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fea305d57546cc8cd04feb14b62ec84bf17f50e3f7b12560d7bfa9265f39d9ed" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", ] @@ -7869,9 +8033,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" dependencies = [ "proc-macro-error 1.0.4", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -7880,16 +8044,24 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + [[package]] name = "synstructure" -version = "0.12.6" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 1.0.109", - "unicode-xid 0.2.4", + "syn 2.0.90", ] [[package]] @@ -7900,7 +8072,18 @@ checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", "core-foundation", - "system-configuration-sys", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "system-configuration-sys 0.6.0", ] [[package]] @@ -7913,6 +8096,16 @@ dependencies = [ "libc", ] +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tap" version = "1.0.1" @@ -7937,16 +8130,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.1.0", - "rustix 0.38.34", + "fastrand", + "rustix", "windows-sys 0.52.0", ] [[package]] name = "tendermint" -version = "0.34.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15ab8f0a25d0d2ad49ac615da054d6a76aa6603ff95f7d18bafdd34450a1a04b" +version = "0.40.0" +source = "git+https://github.com/informalsystems/tendermint-rs/?rev=refs/pull/1480/head#adc8b44f1559df7445b6ec67ced7c554eab189b4" dependencies = [ "bytes", "digest 0.10.7", @@ -7957,7 +8149,6 @@ dependencies = [ "num-traits", "once_cell", "prost", - "prost-types", "serde", "serde_bytes", "serde_json", @@ -7973,23 +8164,21 @@ dependencies = [ [[package]] name = "tendermint-config" -version = "0.34.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1a02da769166e2052cd537b1a97c78017632c2d9e19266367b27e73910434fc" +version = "0.40.0" +source = "git+https://github.com/informalsystems/tendermint-rs/?rev=refs/pull/1480/head#adc8b44f1559df7445b6ec67ced7c554eab189b4" dependencies = [ "flex-error", "serde", "serde_json", "tendermint", - "toml 0.5.11", + "toml 0.8.15", "url", ] [[package]] name = "tendermint-light-client-verifier" -version = "0.34.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b8090d0eef9ad57b1b913b5e358e26145c86017e87338136509b94383a4af25" +version = "0.40.0" +source = "git+https://github.com/informalsystems/tendermint-rs/?rev=refs/pull/1480/head#adc8b44f1559df7445b6ec67ced7c554eab189b4" dependencies = [ "derive_more", "flex-error", @@ -8000,16 +8189,12 @@ dependencies = [ [[package]] name = "tendermint-proto" -version = "0.34.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b797dd3d2beaaee91d2f065e7bdf239dc8d80bba4a183a288bc1279dd5a69a1e" +version = "0.40.0" +source = "git+https://github.com/informalsystems/tendermint-rs/?rev=refs/pull/1480/head#adc8b44f1559df7445b6ec67ced7c554eab189b4" dependencies = [ "bytes", "flex-error", - "num-derive", - "num-traits", "prost", - "prost-types", "serde", "serde_bytes", "subtle-encoding", @@ -8018,9 +8203,8 @@ dependencies = [ [[package]] name = "tendermint-rpc" -version = "0.34.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71afae8bb5f6b14ed48d4e1316a643b6c2c3cbad114f510be77b4ed20b7b3e42" +version = "0.40.0" +source = "git+https://github.com/informalsystems/tendermint-rs/?rev=refs/pull/1480/head#adc8b44f1559df7445b6ec67ced7c554eab189b4" dependencies = [ "async-trait", "bytes", @@ -8030,7 +8214,7 @@ dependencies = [ "peg", "pin-project", "rand", - "reqwest", + "reqwest 0.11.27", "semver", "serde", "serde_bytes", @@ -8040,7 +8224,7 @@ dependencies = [ "tendermint", "tendermint-config", "tendermint-proto", - "thiserror", + "thiserror 1.0.61", "time", "tokio", "tracing", @@ -8082,10 +8266,10 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8361c808554228ad09bfed70f5c823caf8a3450b6881cc3a38eb57e8c08c1d9" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "structmeta", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -8100,7 +8284,16 @@ version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.61", +] + +[[package]] +name = "thiserror" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47" +dependencies = [ + "thiserror-impl 2.0.6", ] [[package]] @@ -8109,9 +8302,20 @@ version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", + "quote 1.0.36", + "syn 2.0.90", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312" +dependencies = [ + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -8182,43 +8386,32 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.0" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ "backtrace", "bytes", "libc", - "mio", - "num_cpus", + "mio 1.0.3", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.7", + "socket2", "tokio-macros", "tracing", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -8241,11 +8434,21 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" +dependencies = [ + "rustls 0.23.20", + "tokio", +] + [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -8299,13 +8502,25 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.7.0", "serde", "serde_spanned", "toml_datetime", "toml_edit 0.19.15", ] +[[package]] +name = "toml" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac2caab0bf757388c6c0ae23b3293fdb463fee59434529014f85e3263b995c28" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.16", +] + [[package]] name = "toml_datetime" version = "0.6.6" @@ -8321,11 +8536,11 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.7.0", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] @@ -8334,45 +8549,62 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.7.0", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" +dependencies = [ + "indexmap 2.7.0", + "serde", + "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.20", ] [[package]] name = "tonic" -version = "0.10.2" -source = "git+https://github.com/penumbra-zone/tonic.git?tag=v0.10.3-penumbra#db355dd7029d1404ffa21639f596da58024364f0" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ "async-stream", "async-trait", "axum", - "base64 0.21.7", + "base64 0.22.1", "bytes", - "h2", - "http", - "http-body", - "hyper", + "h2 0.4.7", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.1", "hyper-timeout", + "hyper-util", "percent-encoding", "pin-project", "prost", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", + "rustls-pemfile 2.2.0", + "socket2", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.1", "tokio-stream", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", - "webpki-roots 0.25.4", + "webpki-roots", ] [[package]] name = "tonic-reflection" -version = "0.10.2" -source = "git+https://github.com/penumbra-zone/tonic.git?tag=v0.10.3-penumbra#db355dd7029d1404ffa21639f596da58024364f0" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "878d81f52e7fcfd80026b7fdb6a9b578b3c3653ba987f87f0dce4b64043cba27" dependencies = [ "prost", "prost-types", @@ -8383,18 +8615,19 @@ dependencies = [ [[package]] name = "tonic-web" -version = "0.10.2" -source = "git+https://github.com/penumbra-zone/tonic.git?tag=v0.10.3-penumbra#db355dd7029d1404ffa21639f596da58024364f0" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5299dd20801ad736dccb4a5ea0da7376e59cd98f213bf1c3d478cf53f4834b58" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bytes", - "http", - "http-body", - "hyper", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", "pin-project", "tokio-stream", "tonic", - "tower-http", + "tower-http 0.5.2", "tower-layer", "tower-service", "tracing", @@ -8421,11 +8654,27 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 1.0.2", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower-abci" -version = "0.11.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4826f3df3e9a37083d978cae73f020bcdf6143956b7dfc1bd6050b4e16367c" +checksum = "4f3458c29aae68bfc21edc8482ee7ecce8e5dfbb0d07a8034f96fa304525391f" dependencies = [ "bytes", "futures", @@ -8436,7 +8685,7 @@ dependencies = [ "tokio", "tokio-stream", "tokio-util 0.6.10", - "tower", + "tower 0.4.13", "tracing", ] @@ -8448,26 +8697,39 @@ checksum = "b882e5e82ee7440a08335f4d5a2edd9f7678b2cba73eac4826b53c22fd76fdd3" dependencies = [ "futures", "pin-project", - "thiserror", + "thiserror 1.0.61", "tokio", "tokio-util 0.7.11", - "tower", + "tower 0.4.13", "tracing", ] [[package]] name = "tower-http" -version = "0.4.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ "bitflags 2.6.0", "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "pin-project-lite", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" +dependencies = [ + "bitflags 2.6.0", + "bytes", + "http 1.2.0", + "http-body 1.0.1", "pin-project-lite", "tower-layer", "tower-service", @@ -8476,15 +8738,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -8504,9 +8766,9 @@ version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -8641,12 +8903,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - [[package]] name = "unicode_categories" version = "0.1.1" @@ -8687,12 +8943,6 @@ dependencies = [ "serde", ] -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - [[package]] name = "uuid" version = "1.9.1" @@ -8728,9 +8978,9 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3fd98999db9227cf28e59d83e1f120f42bc233d4b152e8fab9bc87d5bb1e0f8" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -8742,12 +8992,6 @@ dependencies = [ "libc", ] -[[package]] -name = "waker-fn" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" - [[package]] name = "walkdir" version = "2.5.0" @@ -8798,9 +9042,9 @@ dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", "wasm-bindgen-shared", ] @@ -8832,9 +9076,9 @@ version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -8868,12 +9112,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - [[package]] name = "webpki-roots" version = "0.26.7" @@ -8883,6 +9121,18 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + [[package]] name = "whoami" version = "1.5.1" @@ -8931,7 +9181,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" dependencies = [ "windows-core 0.57.0", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -8940,7 +9190,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -8951,8 +9201,8 @@ checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" dependencies = [ "windows-implement", "windows-interface", - "windows-result", - "windows-targets 0.52.5", + "windows-result 0.1.2", + "windows-targets 0.52.6", ] [[package]] @@ -8961,9 +9211,9 @@ version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -8972,9 +9222,20 @@ version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result 0.2.0", + "windows-strings", + "windows-targets 0.52.6", ] [[package]] @@ -8983,7 +9244,26 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result 0.2.0", + "windows-targets 0.52.6", ] [[package]] @@ -9001,7 +9281,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -9021,18 +9310,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -9043,9 +9332,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -9055,9 +9344,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -9067,15 +9356,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -9085,9 +9374,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -9097,9 +9386,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -9109,9 +9398,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -9121,9 +9410,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" @@ -9134,6 +9423,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.50.0" @@ -9155,19 +9453,18 @@ dependencies = [ [[package]] name = "x509-parser" -version = "0.13.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c" +checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" dependencies = [ "asn1-rs", - "base64 0.13.1", "data-encoding", "der-parser", "lazy_static", "nom", "oid-registry", "rusticata-macros", - "thiserror", + "thiserror 1.0.61", "time", ] @@ -9178,8 +9475,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" dependencies = [ "libc", - "linux-raw-sys 0.4.14", - "rustix 0.38.34", + "linux-raw-sys", + "rustix", ] [[package]] @@ -9212,9 +9509,9 @@ version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] @@ -9232,9 +9529,9 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.68", + "syn 2.0.90", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 5f31590aae..3a543177ff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -123,8 +123,9 @@ ark-std = { default-features = false, version = "0.4" } assert_cmd = { version = "2.0" } async-stream = { version = "0.3.5" } async-trait = { version = "0.1.52" } -axum = { version = "0.6" } -axum-server = { version = "0.5" } +axum = { version = "0.7.9" } +axum-extra = { version = "0.9.6" } +axum-server = { version = "0.7.1" } base64 = { version = "0.21.2" } bech32 = { version = "0.8.1" } bincode = { version = "1.3.3" } @@ -135,7 +136,7 @@ camino = { version = "1" } chacha20poly1305 = { version = "0.9.0" } chrono = { default-features = false, version = "0.4" } clap = { version = "3.2" } -cnidarium = { default-features = false, path = "crates/cnidarium" } +cnidarium = { default-features = false, version = "0.81.0" } cnidarium-component = { default-features = false, path = "crates/cnidarium-component" } cometindex = { path = "crates/util/cometindex" } criterion = { version = "0.4" } @@ -149,25 +150,26 @@ ed25519-consensus = { version = "2.1" } ethnum = { version = "1.3" } futures = { version = "0.3.28" } hex = { version = "0.4.3" } -http = { version = "0.2.9" } -http-body = { version = "0.4.5" } +http = { version = "1.2.0" } +http-body = { version = "1.0.1" } +http-body-util = { version = "0.1.2" } humantime = { version = "2.1" } -ibc-proto = { default-features = false, version = "0.41.0" } -ibc-types = { default-features = false, version = "0.12.0" } +ibc-proto = { default-features = false, version = "0.51.1" } +ibc-types = { default-features = false, version = "0.15.0" } ibig = { version = "0.3" } -ics23 = { version = "0.11.3" } +ics23 = { version = "0.12.0" } im = { version = "^15.1.0" } indicatif = { version = "0.16" } -jmt = { version = "0.10", features = ["migration"] } -metrics = { version = "0.22" } -metrics-exporter-prometheus = { version = "0.13", features = ["http-listener"] } -metrics-tracing-context = { version = "0.15" } +jmt = { version = "0.11", features = ["migration"] } +metrics = { version = "0.24.1" } +metrics-exporter-prometheus = { version = "0.16", features = ["http-listener"] } +metrics-tracing-context = { version = "0.17.0" } num-bigint = { version = "0.4" } num-traits = { default-features = false, version = "0.2.15" } once_cell = { version = "1.8" } parking_lot = { version = "0.12.1" } -pbjson = { version = "0.6" } -pbjson-types = { version = "0.6.0" } +pbjson = { version = "0.7.0" } +pbjson-types = { version = "0.7.0" } penumbra-app = { default-features = false, path = "crates/core/app" } penumbra-asset = { default-features = false, path = "crates/core/asset" } penumbra-community-pool = { default-features = false, path = "crates/core/component/community-pool" } @@ -197,14 +199,13 @@ penumbra-transaction = { default-features = false, path = "crates/co penumbra-txhash = { default-features = false, path = "crates/core/txhash" } penumbra-view = { path = "crates/view" } penumbra-wallet = { path = "crates/wallet" } -penumbra-extension = { path = "crates/penumbra-extension", default-features = false } pin-project = { version = "1.0.12" } pin-project-lite = { version = "0.2.9" } poseidon377 = { version = "1.2.0" } proptest = { version = "1" } proptest-derive = { version = "0.3" } -prost = { version = "0.12.3" } -prost-types = { version = "0.12" } +prost = { version = "0.13.4" } +prost-types = { version = "0.13.4" } r2d2 = { version = "0.8" } r2d2_sqlite = { version = "0.25" } rand = { version = "0.8.5" } @@ -220,33 +221,46 @@ sha2 = { version = "0.10" } sqlx = { version = "0.8", features = ["bigdecimal", "postgres", "runtime-tokio", "tls-rustls"] } tap = "1.0.1" tempfile = { version = "3.3.0" } -tendermint = { default-features = false, version = "0.34.0" } -tendermint-config = { version = "0.34.0" } -tendermint-light-client-verifier = { version = "0.34.0" } -tendermint-proto = { version = "0.34.0" } -tendermint-rpc = { version = "0.34.0" } +tendermint = { default-features = false, version = "0.40.0" } +tendermint-config = { version = "0.40.0" } +tendermint-light-client-verifier = { version = "0.40.0" } +tendermint-proto = { version = "0.40.0" } +tendermint-rpc = { version = "0.40.0" } termion = { version = "3" } thiserror = { version = "1.0" } time = { version = "0.3" } -tokio = { version = "1.3" } +tokio = { version = "1.39.0" } tokio-stream = { version = "0.1.8" } tokio-util = { version = "0.7" } toml = { version = "0.7" } -tonic = { version = "0.10" } -tonic-reflection = { version = "0.10.0" } -tonic-web = { version = "0.10.0" } +tonic = { version = "0.12.3" } +tonic-reflection = { version = "0.12.3" } +tonic-web = { version = "0.12.3" } tower = { version = "0.4.0" } -tower-http = { version = "0.4" } +tower-http = { version = "0.6.2" } tower-service = { version = "0.3.2" } tracing = { version = "0.1" } tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } url = { version = "2.2" } getrandom = { version = "0.2", default-features = false } -# TODO(kate): -# temporarily point these dependencies to a tag in the penumbra-zone fork. -# see #4392, #4400, and hyperium/tonic#1701 for more information. +# TODO: Don't use main; very bad bad. Use a rev. +# TODO: wait for informalsystems to release a patch; see https://github.com/informalsystems/tendermint-rs/pull/1479. [patch.crates-io] -tonic = { git = "https://github.com/penumbra-zone/tonic.git", tag = "v0.10.3-penumbra" } -tonic-reflection = { git = "https://github.com/penumbra-zone/tonic.git", tag = "v0.10.3-penumbra" } -tonic-web = { git = "https://github.com/penumbra-zone/tonic.git", tag = "v0.10.3-penumbra" } +tendermint = { git = "https://github.com/informalsystems/tendermint-rs/", rev = "refs/pull/1480/head" } +tendermint-config = { git = "https://github.com/informalsystems/tendermint-rs/", rev = "refs/pull/1480/head" } +tendermint-light-client-verifier = { git = "https://github.com/informalsystems/tendermint-rs/", rev = "refs/pull/1480/head" } +tendermint-proto = { git = "https://github.com/informalsystems/tendermint-rs/", rev = "refs/pull/1480/head" } +tendermint-rpc = { git = "https://github.com/informalsystems/tendermint-rs/", rev = "refs/pull/1480/head" } +# tendermint = { path = "../tendermint-rs/tendermint" } +# tendermint-config = { path = "../tendermint-rs/config" } +# tendermint-light-client-verifier = { path = "../tendermint-rs/light-client-verifier" } +# tendermint-proto = { path = "../tendermint-rs/proto" } +# tendermint-rpc = { path = "../tendermint-rs/rpc" } +# # TODO(kate): +# # temporarily point these dependencies to a tag in the penumbra-zone fork. +# # see #4392, #4400, and hyperium/tonic#1701 for more information. +# [patch.crates-io] +# tonic = { git = "https://github.com/penumbra-zone/tonic.git", tag = "v0.10.3-penumbra" } +# tonic-reflection = { git = "https://github.com/penumbra-zone/tonic.git", tag = "v0.10.3-penumbra" } +# tonic-web = { git = "https://github.com/penumbra-zone/tonic.git", tag = "v0.10.3-penumbra" } diff --git a/crates/bench/Cargo.toml b/crates/bench/Cargo.toml index dc68edfe71..ec8da243db 100644 --- a/crates/bench/Cargo.toml +++ b/crates/bench/Cargo.toml @@ -5,7 +5,7 @@ edition = {workspace = true} [build-dependencies] regex = { version = "1", optional = true } -reqwest = { version = "0.11.14", optional = true, features = [ +reqwest = { version = "0.12.9", optional = true, features = [ "blocking", "json", ] } diff --git a/crates/bin/pclientd/src/lib.rs b/crates/bin/pclientd/src/lib.rs index 5b4be2f4b0..cf0bc5b979 100644 --- a/crates/bin/pclientd/src/lib.rs +++ b/crates/bin/pclientd/src/lib.rs @@ -344,7 +344,7 @@ impl Opt { .register_encoded_file_descriptor_set( penumbra_proto::FILE_DESCRIPTOR_SET, ) - .build() + .build_v1() .with_context(|| "could not configure grpc reflection service")?, )) .serve(config.bind_addr); diff --git a/crates/bin/pclientd/src/proxy.rs b/crates/bin/pclientd/src/proxy.rs index 7ae9bc2d85..1a9077f1f4 100644 --- a/crates/bin/pclientd/src/proxy.rs +++ b/crates/bin/pclientd/src/proxy.rs @@ -1,28 +1,19 @@ use futures::FutureExt; -use http_body::Body as _; use std::convert::Infallible; use std::pin::Pin; use std::{ future::Future, task::{Context, Poll}, }; -use tonic::transport::NamedService; -use tonic::{ - body::BoxBody, - transport::{Body, Channel}, -}; +use tonic::server::NamedService; +use tonic::{body::BoxBody, transport::Channel}; use tower::ServiceExt; fn proxy( channel: Channel, - req: http::Request, + req: http::Request, ) -> Pin, Infallible>> + Send + 'static>> { tracing::debug!(headers = ?req.headers(), "proxying request"); - // Convert request types - let req = req.map(|b| { - b.map_err(|e| tonic::Status::from_error(Box::new(e))) - .boxed_unsync() - }); let rsp = channel.oneshot(req); @@ -30,11 +21,8 @@ fn proxy( // Once we get the response, we need to convert any transport errors into // an Ok(HTTP response reporting an internal error), so we can have Error = Infallible let rsp = match rsp.await { - Ok(rsp) => rsp.map(|b| { - b.map_err(|e| tonic::Status::from_error(Box::new(e))) - .boxed_unsync() - }), - Err(e) => tonic::Status::internal(format!("grpc proxy error: {e}")).to_http(), + Ok(rsp) => rsp, + Err(e) => tonic::Status::internal(format!("grpc proxy error: {e}")).into_http(), }; Ok::<_, Infallible>(rsp) } @@ -48,7 +36,7 @@ impl NamedService for AppQueryProxy { const NAME: &'static str = "penumbra.core.app.v1.QueryService"; } -impl tower::Service> for AppQueryProxy { +impl tower::Service> for AppQueryProxy { type Response = http::Response; type Error = Infallible; type Future = @@ -58,7 +46,7 @@ impl tower::Service> for AppQueryProxy { Poll::Ready(Ok(())) } - fn call(&mut self, req: http::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { proxy(self.0.clone(), req) } } @@ -70,7 +58,7 @@ impl NamedService for GovernanceQueryProxy { const NAME: &'static str = "penumbra.core.component.governance.v1.QueryService"; } -impl tower::Service> for GovernanceQueryProxy { +impl tower::Service> for GovernanceQueryProxy { type Response = http::Response; type Error = Infallible; type Future = @@ -80,7 +68,7 @@ impl tower::Service> for GovernanceQueryProxy { Poll::Ready(Ok(())) } - fn call(&mut self, req: http::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { proxy(self.0.clone(), req) } } @@ -92,7 +80,7 @@ impl NamedService for DexQueryProxy { const NAME: &'static str = "penumbra.core.component.dex.v1.QueryService"; } -impl tower::Service> for DexQueryProxy { +impl tower::Service> for DexQueryProxy { type Response = http::Response; type Error = Infallible; type Future = @@ -102,7 +90,7 @@ impl tower::Service> for DexQueryProxy { Poll::Ready(Ok(())) } - fn call(&mut self, req: http::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { proxy(self.0.clone(), req) } } @@ -114,7 +102,7 @@ impl NamedService for DexSimulationProxy { const NAME: &'static str = "penumbra.core.component.dex.v1.SimulationService"; } -impl tower::Service> for DexSimulationProxy { +impl tower::Service> for DexSimulationProxy { type Response = http::Response; type Error = Infallible; type Future = @@ -124,7 +112,7 @@ impl tower::Service> for DexSimulationProxy { Poll::Ready(Ok(())) } - fn call(&mut self, req: http::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { proxy(self.0.clone(), req) } } @@ -136,7 +124,7 @@ impl NamedService for FeeQueryProxy { const NAME: &'static str = "penumbra.core.component.fee.v1.QueryService"; } -impl tower::Service> for FeeQueryProxy { +impl tower::Service> for FeeQueryProxy { type Response = http::Response; type Error = Infallible; type Future = @@ -146,7 +134,7 @@ impl tower::Service> for FeeQueryProxy { Poll::Ready(Ok(())) } - fn call(&mut self, req: http::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { proxy(self.0.clone(), req) } } @@ -158,7 +146,7 @@ impl NamedService for SctQueryProxy { const NAME: &'static str = "penumbra.core.component.sct.v1.QueryService"; } -impl tower::Service> for SctQueryProxy { +impl tower::Service> for SctQueryProxy { type Response = http::Response; type Error = Infallible; type Future = @@ -168,7 +156,7 @@ impl tower::Service> for SctQueryProxy { Poll::Ready(Ok(())) } - fn call(&mut self, req: http::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { proxy(self.0.clone(), req) } } @@ -180,7 +168,7 @@ impl NamedService for ShieldedPoolQueryProxy { const NAME: &'static str = "penumbra.core.component.shielded_pool.v1.QueryService"; } -impl tower::Service> for ShieldedPoolQueryProxy { +impl tower::Service> for ShieldedPoolQueryProxy { type Response = http::Response; type Error = Infallible; type Future = @@ -190,7 +178,7 @@ impl tower::Service> for ShieldedPoolQueryProxy { Poll::Ready(Ok(())) } - fn call(&mut self, req: http::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { proxy(self.0.clone(), req) } } @@ -202,7 +190,7 @@ impl NamedService for ChainQueryProxy { const NAME: &'static str = "penumbra.core.component.chain.v1.QueryService"; } -impl tower::Service> for ChainQueryProxy { +impl tower::Service> for ChainQueryProxy { type Response = http::Response; type Error = Infallible; type Future = @@ -212,7 +200,7 @@ impl tower::Service> for ChainQueryProxy { Poll::Ready(Ok(())) } - fn call(&mut self, req: http::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { proxy(self.0.clone(), req) } } @@ -224,7 +212,7 @@ impl NamedService for StakeQueryProxy { const NAME: &'static str = "penumbra.core.component.stake.v1.QueryService"; } -impl tower::Service> for StakeQueryProxy { +impl tower::Service> for StakeQueryProxy { type Response = http::Response; type Error = Infallible; type Future = @@ -234,7 +222,7 @@ impl tower::Service> for StakeQueryProxy { Poll::Ready(Ok(())) } - fn call(&mut self, req: http::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { proxy(self.0.clone(), req) } } @@ -246,7 +234,7 @@ impl NamedService for CompactBlockQueryProxy { const NAME: &'static str = "penumbra.core.component.compact_block.v1.QueryService"; } -impl tower::Service> for CompactBlockQueryProxy { +impl tower::Service> for CompactBlockQueryProxy { type Response = http::Response; type Error = Infallible; type Future = @@ -256,7 +244,7 @@ impl tower::Service> for CompactBlockQueryProxy { Poll::Ready(Ok(())) } - fn call(&mut self, req: http::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { proxy(self.0.clone(), req) } } @@ -268,7 +256,7 @@ impl NamedService for TendermintProxyProxy { const NAME: &'static str = "penumbra.util.tendermint_proxy.v1.TendermintProxyService"; } -impl tower::Service> for TendermintProxyProxy { +impl tower::Service> for TendermintProxyProxy { type Response = http::Response; type Error = Infallible; type Future = @@ -278,7 +266,7 @@ impl tower::Service> for TendermintProxyProxy { Poll::Ready(Ok(())) } - fn call(&mut self, req: http::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { proxy(self.0.clone(), req) } } diff --git a/crates/bin/pd/Cargo.toml b/crates/bin/pd/Cargo.toml index 79f0b127db..e168982aa7 100644 --- a/crates/bin/pd/Cargo.toml +++ b/crates/bin/pd/Cargo.toml @@ -28,7 +28,7 @@ anyhow = { workspace = true } ark-ff = { workspace = true, default-features = true } async-stream = { workspace = true } async-trait = { workspace = true } -axum = "0.6" +axum = { workspace = true, features = ["http2"] } axum-server = { workspace = true, features = ["tls-rustls"] } base64 = { workspace = true } bincode = { workspace = true } @@ -55,7 +55,7 @@ metrics = { workspace = true } metrics-exporter-prometheus = { workspace = true } metrics-process = "2.0.0" metrics-tracing-context = { workspace = true } -metrics-util = "0.16.2" +metrics-util = "0.18.0" mime_guess = "2" once_cell = { workspace = true } pbjson-types = { workspace = true } @@ -87,7 +87,7 @@ rand = { workspace = true } rand_chacha = { workspace = true } rand_core = { workspace = true, features = ["getrandom"] } regex = { workspace = true } -reqwest = { version = "0.11", features = ["json", "stream"] } +reqwest = { version = "0.12.9", features = ["json", "stream"] } rocksdb = { workspace = true } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } @@ -108,9 +108,9 @@ tonic = { workspace = true } tonic-reflection = { workspace = true } tonic-web = { workspace = true } tower = { workspace = true, features = ["full"] } -tower-abci = "0.11" +tower-abci = "0.18" tower-actor = "0.1.0" -tower-http = { workspace = true } +tower-http = { workspace = true, features = ["cors"] } tower-service = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true, features = ["env-filter", "ansi"] } @@ -124,4 +124,4 @@ penumbra-proof-params = { workspace = true, features = [ ], default-features = true } assert_cmd = { workspace = true } predicates = "2.1" -prost-reflect = "0.13.1" +prost-reflect = "0.14.3" diff --git a/crates/bin/pd/src/main.rs b/crates/bin/pd/src/main.rs index 35815c7d5a..1778462062 100644 --- a/crates/bin/pd/src/main.rs +++ b/crates/bin/pd/src/main.rs @@ -129,15 +129,17 @@ async fn main() -> anyhow::Result<()> { ); let tm_proxy = penumbra_tendermint_proxy::TendermintProxy::new(cometbft_addr); - let grpc_server = penumbra_app::rpc::router(&storage, tm_proxy, enable_expensive_rpc)?; + + let grpc_routes = penumbra_app::rpc::routes(&storage, tm_proxy, enable_expensive_rpc)?; + // let grpc_server = penumbra_app::rpc::router(&storage, tm_proxy, enable_expensive_rpc)?; // Create Axum routes for the frontend app. let frontend = pd::zipserve::router("/app/", pd::MINIFRONT_ARCHIVE_BYTES); let node_status = pd::zipserve::router("/", pd::NODE_STATUS_ARCHIVE_BYTES); // Now we drop down a layer of abstraction, from tonic to axum, and merge handlers. - let router = grpc_server - .into_router() + let router = grpc_routes + .into_axum_router() .merge(frontend) .merge(node_status) // Set rather permissive CORS headers for pd's gRPC: the service diff --git a/crates/cnidarium/src/gen/penumbra.cnidarium.v1.rs b/crates/cnidarium/src/gen/penumbra.cnidarium.v1.rs index 7a04181967..858be10601 100644 --- a/crates/cnidarium/src/gen/penumbra.cnidarium.v1.rs +++ b/crates/cnidarium/src/gen/penumbra.cnidarium.v1.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// Performs a key-value query against the nonverifiable storage, /// using a byte-encoded key. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NonVerifiableKeyValueRequest { #[prost(message, optional, tag = "1")] @@ -8,7 +8,6 @@ pub struct NonVerifiableKeyValueRequest { } /// Nested message and enum types in `NonVerifiableKeyValueRequest`. pub mod non_verifiable_key_value_request { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Key { #[prost(bytes = "vec", tag = "1")] @@ -18,9 +17,10 @@ pub mod non_verifiable_key_value_request { const NAME: &'static str = "Key"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.cnidarium.v1.NonVerifiableKeyValueRequest.{}", Self::NAME - ) + "penumbra.cnidarium.v1.NonVerifiableKeyValueRequest.Key".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.NonVerifiableKeyValueRequest.Key".into() } } } @@ -28,10 +28,12 @@ impl ::prost::Name for NonVerifiableKeyValueRequest { const NAME: &'static str = "NonVerifiableKeyValueRequest"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.NonVerifiableKeyValueRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.NonVerifiableKeyValueRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NonVerifiableKeyValueResponse { /// The value corresponding to the specified key, if it was found. @@ -40,7 +42,6 @@ pub struct NonVerifiableKeyValueResponse { } /// Nested message and enum types in `NonVerifiableKeyValueResponse`. pub mod non_verifiable_key_value_response { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Value { #[prost(bytes = "vec", tag = "1")] @@ -50,9 +51,10 @@ pub mod non_verifiable_key_value_response { const NAME: &'static str = "Value"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.cnidarium.v1.NonVerifiableKeyValueResponse.{}", Self::NAME - ) + "penumbra.cnidarium.v1.NonVerifiableKeyValueResponse.Value".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.NonVerifiableKeyValueResponse.Value".into() } } } @@ -60,13 +62,15 @@ impl ::prost::Name for NonVerifiableKeyValueResponse { const NAME: &'static str = "NonVerifiableKeyValueResponse"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.NonVerifiableKeyValueResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.NonVerifiableKeyValueResponse".into() } } /// Performs a key-value query against the JMT, either by key or by key hash. /// /// Proofs are only supported by key. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct KeyValueRequest { /// If set, the key to fetch from storage. @@ -80,10 +84,12 @@ impl ::prost::Name for KeyValueRequest { const NAME: &'static str = "KeyValueRequest"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.KeyValueRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.KeyValueRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct KeyValueResponse { /// The value corresponding to the specified key, if it was found. @@ -97,7 +103,6 @@ pub struct KeyValueResponse { } /// Nested message and enum types in `KeyValueResponse`. pub mod key_value_response { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Value { #[prost(bytes = "vec", tag = "1")] @@ -107,9 +112,10 @@ pub mod key_value_response { const NAME: &'static str = "Value"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.cnidarium.v1.KeyValueResponse.{}", Self::NAME - ) + "penumbra.cnidarium.v1.KeyValueResponse.Value".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.KeyValueResponse.Value".into() } } } @@ -117,11 +123,13 @@ impl ::prost::Name for KeyValueResponse { const NAME: &'static str = "KeyValueResponse"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.KeyValueResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.KeyValueResponse".into() } } /// Performs a prefixed key-value query, by string prefix. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PrefixValueRequest { /// The prefix to fetch subkeys from storage. @@ -132,10 +140,12 @@ impl ::prost::Name for PrefixValueRequest { const NAME: &'static str = "PrefixValueRequest"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.PrefixValueRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.PrefixValueRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PrefixValueResponse { #[prost(string, tag = "1")] @@ -147,11 +157,13 @@ impl ::prost::Name for PrefixValueResponse { const NAME: &'static str = "PrefixValueResponse"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.PrefixValueResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.PrefixValueResponse".into() } } /// Requests a stream of new key-value pairs that have been committed to the state. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WatchRequest { /// A regex for keys in the verifiable storage. @@ -173,11 +185,13 @@ impl ::prost::Name for WatchRequest { const NAME: &'static str = "WatchRequest"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.WatchRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.WatchRequest".into() } } /// A key-value pair that has been committed to the state. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WatchResponse { /// The state version the key-value pair was committed at. @@ -190,7 +204,6 @@ pub struct WatchResponse { /// Nested message and enum types in `WatchResponse`. pub mod watch_response { /// Elements of the verifiable storage have string keys. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct KeyValue { #[prost(string, tag = "1")] @@ -206,11 +219,13 @@ pub mod watch_response { const NAME: &'static str = "KeyValue"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.WatchResponse.{}", Self::NAME) + "penumbra.cnidarium.v1.WatchResponse.KeyValue".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.WatchResponse.KeyValue".into() } } /// Elements of the nonverifiable storage have byte keys. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NvKeyValue { #[prost(bytes = "vec", tag = "1")] @@ -226,11 +241,13 @@ pub mod watch_response { const NAME: &'static str = "NvKeyValue"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.WatchResponse.{}", Self::NAME) + "penumbra.cnidarium.v1.WatchResponse.NvKeyValue".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.WatchResponse.NvKeyValue".into() } } /// The entry that was committed. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Entry { #[prost(message, tag = "5")] @@ -243,13 +260,22 @@ impl ::prost::Name for WatchResponse { const NAME: &'static str = "WatchResponse"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.WatchResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.WatchResponse".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; #[derive(Debug, Clone)] @@ -271,8 +297,8 @@ pub mod query_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -297,7 +323,7 @@ pub mod query_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -345,8 +371,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -374,8 +399,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -406,8 +430,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -434,8 +457,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -453,11 +475,17 @@ pub mod query_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] - pub trait QueryService: Send + Sync + 'static { + pub trait QueryService: std::marker::Send + std::marker::Sync + 'static { /// General-purpose key-value state query API, that can be used to query /// arbitrary keys in the JMT storage. async fn key_value( @@ -480,7 +508,7 @@ pub mod query_service_server { type PrefixValueStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// General-purpose prefixed key-value state query API, that can be used to query /// arbitrary prefixes in the JMT storage. @@ -495,7 +523,7 @@ pub mod query_service_server { type WatchStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Subscribes to a stream of key-value updates, with regex filtering on keys. async fn watch( @@ -504,20 +532,18 @@ pub mod query_service_server { ) -> std::result::Result, tonic::Status>; } #[derive(Debug)] - pub struct QueryServiceServer { - inner: _Inner, + pub struct QueryServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServiceServer { + impl QueryServiceServer { 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(), @@ -567,8 +593,8 @@ pub mod query_service_server { impl tonic::codegen::Service> for QueryServiceServer where T: QueryService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -580,7 +606,6 @@ pub mod query_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.cnidarium.v1.QueryService/KeyValue" => { #[allow(non_camel_case_types)] @@ -611,7 +636,6 @@ pub mod query_service_server { 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 = KeyValueSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -661,7 +685,6 @@ pub mod query_service_server { 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 = NonVerifiableKeyValueSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -708,7 +731,6 @@ pub mod query_service_server { 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 = PrefixValueSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -755,7 +777,6 @@ pub mod query_service_server { 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 = WatchSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -774,20 +795,25 @@ pub mod query_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServiceServer { + impl Clone for QueryServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -799,17 +825,9 @@ pub mod query_service_server { } } } - 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 QueryServiceServer { - const NAME: &'static str = "penumbra.cnidarium.v1.QueryService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.cnidarium.v1.QueryService"; + impl tonic::server::NamedService for QueryServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/cnidarium/src/gen/penumbra.cnidarium.v1.serde.rs b/crates/cnidarium/src/gen/penumbra.cnidarium.v1.serde.rs index 8751e80e6e..6eea278b57 100644 --- a/crates/cnidarium/src/gen/penumbra.cnidarium.v1.serde.rs +++ b/crates/cnidarium/src/gen/penumbra.cnidarium.v1.serde.rs @@ -236,6 +236,7 @@ impl serde::Serialize for key_value_response::Value { let mut struct_ser = serializer.serialize_struct("penumbra.cnidarium.v1.KeyValueResponse.Value", len)?; if !self.value.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("value", pbjson::private::base64::encode(&self.value).as_str())?; } struct_ser.end() @@ -429,6 +430,7 @@ impl serde::Serialize for non_verifiable_key_value_request::Key { let mut struct_ser = serializer.serialize_struct("penumbra.cnidarium.v1.NonVerifiableKeyValueRequest.Key", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -622,6 +624,7 @@ impl serde::Serialize for non_verifiable_key_value_response::Value { let mut struct_ser = serializer.serialize_struct("penumbra.cnidarium.v1.NonVerifiableKeyValueResponse.Value", len)?; if !self.value.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("value", pbjson::private::base64::encode(&self.value).as_str())?; } struct_ser.end() @@ -821,6 +824,7 @@ impl serde::Serialize for PrefixValueResponse { } if !self.value.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("value", pbjson::private::base64::encode(&self.value).as_str())?; } struct_ser.end() @@ -1047,6 +1051,7 @@ impl serde::Serialize for WatchResponse { let mut struct_ser = serializer.serialize_struct("penumbra.cnidarium.v1.WatchResponse", len)?; if self.version != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("version", ToString::to_string(&self.version).as_str())?; } if let Some(v) = self.entry.as_ref() { @@ -1187,6 +1192,7 @@ impl serde::Serialize for watch_response::KeyValue { } if !self.value.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("value", pbjson::private::base64::encode(&self.value).as_str())?; } if self.deleted { @@ -1316,10 +1322,12 @@ impl serde::Serialize for watch_response::NvKeyValue { let mut struct_ser = serializer.serialize_struct("penumbra.cnidarium.v1.WatchResponse.NvKeyValue", len)?; if !self.key.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("key", pbjson::private::base64::encode(&self.key).as_str())?; } if !self.value.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("value", pbjson::private::base64::encode(&self.value).as_str())?; } if self.deleted { diff --git a/crates/cnidarium/src/gen/proto_descriptor.bin.no_lfs b/crates/cnidarium/src/gen/proto_descriptor.bin.no_lfs index 09181ca63e0d92d8142235c3003f76694fd27e4c..f41da7426e0409c58117d4e9d6a186a1632aff36 100644 GIT binary patch delta 34739 zcmd_Td7PEik?`Noa-Zk+(+l0V*=#^Aje@c&Zs3-%G!cWe)1YQCFJ8JY(Asp9UIhG2 ze1aO4U=+O?l@Ygz7!y~>qLVi>(P&~^q7j2pqtQg8qo8J@4B|5Hx6blBw{e*y|Ni_W z+I5yXb?Q{rsZ*!UbKgBT^Iz8lndspg{iyWb{bMd2SMaaOL=C0FEe)lg1w-!IdZc@3 zZdw!;+dKL?y1Rzg=A8p-rwyO7th;+zXK~8Pp6en_ZZK8#4k+@ zzB(-T#i**i*w$I-DJUdv-aDXb+O*QWnQ`4y=A;#~ybB$-wY+KWh$y?XSm^8TDfSMZ z#@JQUMto%Kxw^r^Vqa_0IJY9IKC{@7^0&2uyr19~@J?nG5(gyx1uL0A8ZCB>fM4tO)I2Fi_yDwp7cqH zUenuNX)22w5!%de(s%jB3(`uXLPKoM_E-r2_E-mzT z(si)Xr%BQ^wwgFcSGEo^tqt5efHgxtnKgTJrZ;y|G{~sp;@F8&2qo-Jn)XiFJO}~X2F4YhHQr!5ZsMZ(_Lt43+(c1dIo0;6;D060^v)?M41{%NZ zMzsTJ$bBx#S-y32_4UNv?fq@2m8kEh*|U1nX&!xamvT(0Br0Y9TM*6B;vOUKxv5cu z#eje;URCJn>gZZFT$_hnS=A}JCO0#(%ZWU$=oXvd|1T4$H4|vn?VF}Xnb}BGX~U4y z;wF}KFX7A$iRxRM7d0;s)3NxZ1)pEga*CLc0mZE+QGG&lodf&p($))GPHLUqT<11j z@Q4 zG0NTuPiS7aa3&R=&|2OTn?8R|oxgW+%YwMMWo}(Y=1|_edBI61)CJhyp?jAuhAXXK ztPA%Zd0}(w$@7?amTe(d-syzqMaQ+wsjHk&nSC{^`#S%)+HUjjTwTMwrdyq;x}~ew zy;O5+pmK_6euCZFTRAaX%iQ0%r8PrO{yR*n+EV@@lNx?9X&-A+E17VnE@=9lTRM8! zk#YHEBAevjILqGL-qu(&<>RgK#~3Tol&WbMtI{FQjQAUD)Y9XB>qNB+*_u1riXXQ? zO@BM-r5(dAcCYqI|2+JA1Gdt!e+LS-(yj46?>li6Mb@|#`*N2;q~0vqM|+E1ZAD|$ z4lFav+DS`$O;P*hiKfG>&s^v@S2_Mwj&q|^lgl=L;l%m#X3twR{Li6+=bd2SR|Gz+ ztih|{7RN)lTWb^v7GbV4sx0ClEmr=HEOBkA5H!SP1T<4EJKL-S)!2a=yDAsVp5L;t zd5#*nGUvCP*t}r)D|V2q;FM0etDI<9Pf@!<##LbE-R;(V)=oS4V`d*KN0R-1N~`Is z*wAcx&YJuYHq2Zw#}ET)C(fMxd7y-xA(nyxSaN4agZlfHPG8Kv)X}b;Pi>?p#2-Ub zLefd}IXUTK*rJyNMl5Jq(5#pO9m-MtVoFD?43~C=fVvgM-rmBp;^KrU;#$_m(v14#<(ER2FpIda?;uBk&=g#|r;)+@OL1r}DF?SB$vUcLSdsY#@jq6?IXrUOE%gt~8+|1cuTs*6J;iARObLY0SYSD~xnVIwF zx15r)B9dX}Dl|=}Ml}PZJl7aUL)B&=b6D8CV7A(Y%qCPFC1TI!17wAsou(mT@`{4Q zMfRF7VpfJ_Ymsdu+1U)vY@`Gjd{HEV9V6Lnk0(b%K34v6W24cn&Dt+ttOO(wdkgcQ8JhUURN-%qkeSp>)Z)}?5OJ(@Za?d>Nd!KH!P^TbiwgK_LZ>i)v)PJ zFUqCTWjxHdH}{1o+iu-vN4d>Me~L<2r#W$Gi+uxq*46}@_+~3Qx;j>1^^D8)5#KD{ z`?OqZdKjb%M`85<97=IN<-lFLLU%AI8h1O<@O0t>sg3_37kfc87*DgO2V=IRv$%Mv zJ&x=B^iz-H4P_l6YOy-U=Vr-MGFmy39>&2gN>cp9H>%8>Pzje)s ziH`fYTiQIb&3)Y|MWa>>&b3C_-r|Y^=dw0+z^+Lc<~}Jk1Y%4e-TpAEn6|ItisKW ziiW9*7{!~xKSz|+Zu(Y`)SK$*W!2Yyw0cHa^>tJ?L{)a!6J~y)?tl0voOO28(AK?T zFEuNDYgFgp`@AU3WyV!p9y!tX21QPF&KtM2X5a6J@c|XXqip14bKZoCIZPO3Oq71Bxm)P<8Pj!=dB=REmS7fz`dqYC%SdGe<&oLVtj6^_n% zQ-|=kERtimy10WAclZ7xNM^%J&xg^4&}GXLNP1>dF^& zc&&E|zF*{JDx6&G9i6F;j*R?_BH&neXyfGk%>2sELR)cpcV~OCC%?42Ctv8w_je7z zkyqzs5J9i>g{EU&q)kIE(BL7_)s8|;-7I%l<9cT=%#agHOhXOPyRz8Uv2+ctSKgS` z{F37G!kHc2J-zt}ONx+DoRBZ%jkZVmRfXRC(vF_qzPy~o^{IMFo|$*_=J{W7>C$3b zU&oon&NV`QQ%BcQ>}p>zzp~KV*JKHgT}M$@XDD}|d{)EI=p0v34s;xpzwP98j40o` zrmL^8I^SeD*`!9qVb0?=PsUFxCQP1`U((;F=TOYA=xINAzbtJXO|S5_uVY1Va(54+O~Y8En=#i!dhR_Pcz(&mede>ktu?drna_gyA!g#4oY&$G zHB}iJwj>QRG;E>a*A$1)-Gy#rV{6oW^WFV@y&dgE5f4EpI{rY@xAqNHU= z%SA~`tl>#+lWCZx;Ysd37NX%vBgYuNVBtB_7|f7g=kezp2mQ%rnO@eqq(SlHdw$!ZtzMUaMA zb8-n9(%HYP1Fh*>j!2@2`QmCUQlDsHmulQo{Az!PNMP5ReB1Iu*RmpwyAeShj>I%| z6<1j;O}JmhyiRp%46CY`*Qs@l(Ls@mY-LWXaL;i{7mc43 zXNS&9MvjUORh^-&Si1gz!>1RM&MuvcNoTPGMI3lNvZ#J>bUykg)fr$}srJBy)0ZWk zJvuL|Qf7m(#5OFeSIaGswBLVxbe8IjX*j)f^@0C9{q&@>Pv_H<&Z3B?*XPa1KAle= zyMJ`J>P*8Gr4uGhk5?p}Gw9rkDkav8CCa&C#CX#=L+2F}CaO)>acS7)PBv8mbaW+1 z0;w~bE)7A_HCk`aKp^RwILROhb6&SQB{o<>uyiL_La=mKjj?rL>25mELSX5hG}&N5 z!&bUeOjQ;nD-$GHkgTj4ZR=~wg3R;4tXG~M{HVOyJ(9PAQCnoMXc6HJ_qW9`5D>va}Y_5 z3243JPSlmL>wyZ`qVhns-a%J&U#tY+h;bHFoevZ_6QbyPk%PMGw!Q`}CLc@}IVh~D z1=B?i8f!o>UF1xRCq=b_%B#o)7dvjr@pQc>jJ=pcZ!|Irq*_+x62~9aRGpvK)z;bH zizkUN42nWs%h*&`rv$f)*Pbe*{A`um0!|vV2sh zLtx1%C>ugnaD#(~WvRlRQ-Cqg_}h*<)ilQX3TRPbegP91 z!~O#1C)mai_3f0XFh_{fwNirx7SLkC1OsZKCLl$)Ilzr$45|=RS2_FbA90N$lHufn zO^$oLQyO{j^|6|VCyd@itk|raY|{RD8iVXR zPSbwKm&?u`-0W05>k#_IP>MCU*~yNIWN-6?>$f zIHM0yLjW?wEzaRHlrm`;6`b)B5{PG$i^wY6B<(-RAiFHXfxnht=H2_sTg{ zCu`)}W0h=z-@U4XZK_Kj&yrR>;u{)Up|C+J==55t0{C&8T`N@p0k=5~`zW1L1rU6j zgJ*V@p@;@|Iet^)>58IQj`nLNf3=@LKQ|_ve@F~bp1x*aBvdk)CBcQd%C++kU+LR6*LfZWfKr#WAt00NnQE?eL^wrD{#~kFn;WD9a#;jNtaN`(j-l+96WT5 zL=A9HSY0K7<=E6=cWI%cQw}b2oF_&wCC_CQjXIe1s^y%s3q%0g$fIJ!bSRAvYT7x4 zlUGp27TL3zQNk8>arp8Rr=~vPoT%zg9PYa|cTenJ`DRh=iNt_3$Nv7m-;Gm#vMw~e)D4P++ zi2`P{UyLut(qs1Sb^Jk1L!e8gQQ*LmQK9b>Bee-jE3C=APED=lOr@Bcfd#0BD!5C` zsV5@#OUIqtc%ze_E8z(gx~HqqDM!_w-XrsKS`N-HXjzm$X<_q}{3#L=DO$n7ac$%J zO-w;Ip^$uUcYjZt=z3}7ox@|C@8arW8-WF44Ft_J);8=xSN}?hji4Z)(#PK=gsM~+ z$`0Qt0U1wLR- zbc~ujym-iQ_iLP*pNYKN*uD;Ir5d8o{e*_h*&!iKG?@ODG;wbpa;k<1Eise}Zy$1o zY9|p8+8%PojEz1kWBY6jk2>ye9Ix>pWuu4@B&mP-UdizLsFAhSUd`Q?wSCkHhexx; z>Zz!%|Cr+sZagGEGaw9wsFn(g8e-KevB_2&t$a#95YcgvmKrI5F^@SC`!|?r@VMg} z6HEg!!4w!dlLC4??$qZZ{8|w!_SWr=`;>E3AO1(NJy$ys2#Q#H~Ej+m6~ z&M56YLOyG?U7SZPWgcSmloK3jL0rJ6oca+)syvaZr<_qUqA!Ubfo?zJxcfAoke}Vz zL2_N`|6cR?LkWOOam{dzLc-w!>Z2BwuMX!r=$SuazU`BG~;41njY^;f}ZVB zlk@kK3u+BLC`ebMh8}yIIwOH+Fsa&{|DNLyOV+EFE);0rL1tY`m-n2(Lz6)U<^1={ zdkmrn1!<2#^mt!-j5qVG%lRLa3P&E;^g%iGWF+_>2=%rZM&U!6?LW63j31Uat*7aS zdZMD&90J$6?mAb82Y_k6)(xwPv&uSfV9WXEx}{-9O^nZF%Q17K7&Pa)L+n)4Iqp0+ znLIFvC`fyVl|D~;JR*LQpr+tLx-|YoJIW^R+@9|&EGc$Mj7%cfVsE=wAzv{*<6g2! zz#F+VcRdnvYc>}y5u5vXuEticBpbS;Pu~kI=ekGSy@A54Wmfrwi*-z{t(Zt`BIGy- zvAU=t_n02gX7B70p=LfznF*y+)-zfDlmFry-{{q7P0O~yf5F4}JHSsS%aIJSu z{0mSb3hOcK1{Jjzxvt(o2(y6-(4vw<%SA3RW!XTeRgLS1SrAKkk=r=JU}6!zl@cXh z1)#+wUd6WzrtzSX8Gg&H*A5UMsJj6LuvZNDH7-7{#z4RZ5Rdm#O$8+1=x*KmnVfU%jVX=*95<#^ zh)KWEHOG5jLgj!>W25slGcf0y-I6!+8^>-=QG}q_oGy)+_|0y;T}O$~Y<9V7*rQQk z-*0tGznJ-6d~1p#3yND)D#YgBn(~4uIpDr>gCOk0+~4lH`u?2K!F0RK=g!KgMsQ(~A8_6M8*eC`F#DFq&Tf2b{G$R|N=B~y+1s%U?>#Ct z%$XDF(x~)*=FH4;7L~UjQR(J6%~@U18+aB z!vhjYX~JX43qmIkRzjE12J_#jUN#F4_PJxg8w0_ZGhl^ z$SPY#g#Ka6L?AE$T1*mce%LZ`f2vh$!$m+)JuF-t52-;ec+9Q%&(i-KH!gn6HfeO%~61(uEYYsxxg6T<@I~LOzOi#L8vfLrs6i68A z_pbW~*K54i&9_R>DBoQgH-Ep<=Z^m%{=FNGP~k?}2`8R&KQO%ik1QzJnyPdw2pR{e*XE~Y)Vq3Vm+TPM=E@J-Zjx@g#)C| z3)8pm>Ly)v6x~FLzq00%8n6y?}tA z-)YeUf_|r!DnQWhv{Drc&)%?`4G@?BEhb^t8`h%5RIAozw*dsz8+Nw|MXKI%N&XQ* z0Rk1EMI}=8mRqIGI<;VW%N?mj5D-jnxg-GX$DFgd;BB|!UDs(GN?5G7t*2uN5vM}w z=>-k(+iq5F`+Tz9;K4hV2S5x5sD}fD@^>r`02%Hb%L71$d&lx1E41u#O%xdjOn?@X zXx1*bDz7z*YSns-jv@nsYL`nCSrY{hcDp8qpH(~nw5Ws!yIpg!KrNVdyC#GW2&UaG zA$+-4ugnGSyA|K`oW`aBJb0~T^q1dv2`0;MmBND$EDwO798eDj2oFB6JOE_44=fJ= z8SVq&!IdKDl|sx~uhf3xRqVvy&gm}IzfJTmM|V=$fL5oiTdE0_V#^IUza2LviWi%Qh*Jg-Whc&P=|dEP#H zfdEzCvHL~MYFc!?z$-oaPjkO~L5e{X@B+`cEtQhR09a=+hyq^VfkD%TJOb{2xCPn! zFYpdJ%-{#pIr(s~@UIj6chn*WQ7*XE ztN5Mvr+n{f^BU$<_Ua93v?;N|u4oo2fZ?RkkWZ*4cPTOuk2HxUfyZ<7# zJCZfH$J=_&mwTLJ?@4jUn%|S+kTt)@%js(=`hepekIT%>p2ESR-|KCi_LZBRFW;Nu zkk!7|G9Xftey>-jwH*)~_j=>Br2vEh_j(8FAP67~xYs*$2KUZFByI2aN{23<5Z|BT zmsrUCDSi=w`@K3HRiTUObI>%kVu0Yk-#cWEI++Qmst=tVJ*KCCh&=AO$2R`Vlhi)R zOP;2#&D9}TQV-RcpfB!LQE+jF2*s*kWp|#G^2yW5q$#$Yp>m&ybRJ(gvp}$W)$$Iq z~zkBU9ST@~H* zQ~V$!kchns(@Jbx4_JO|le{DKcr?G9sCZYm$#y)_1aD0`oXsNaj$yhv4yv3%Nfwi- zsU_erCu<91gvdi%vf2m407n9{Z%{SE}>0Dn?13^r~y3&zW|N zzTGR$S#sRi?VgD`NIN-2Z}*4+*>=EBd8Ip+92Y<3nedXdlb!Y{kARfeT{32K{?nd& zl%ZBGvjOeIhwMX$Ur;2 z111~RZ^(=$67`K3=S|P8ZQ3`vpD7(&H+Yfc4#7{kmwD5xs?jv6TbXhYK~bRGLr0wP z-je-Ub&TlvmPbz4UuFAeeQ{$-QO95YPsB`ir8AMk+OBjaa#-8tk^HB%Ob%J2GMVIMm5DWaUbl4diW=g8lhv^vAjPYSAq!J?h(BqMjMq14n zAIf^nQ-l&8TxG(s*PJ1^xWO-N?E1-E-v9DvGAW+@0w$Bh8uj7$pHw4 z8+d%maAu$uIrf{-{hP7oJig00P6c3Ks5R$pZgr8(b$HYeU-5d z7sSZi>?fu`{I+tCjtZ0n6&_B0&#&0y>jV{1xbOMdq0#R$%&1BoBYx^{E%rX`p88We zCyJr-r@m2BKzjYuuhZusK<4yQpL39`GazdEQ{QZ%fT-zD{UeT!UYBLB63_EKgz?NB zr{0$iAdcsK=>Rf;`}{hcSw$BHxX+)avta-k;6DG*W;33{0QdQynG?OC2Vk}j`lUav zdNY179YA)<2h#zBiU)mT%c_)D`k+soP|rZT(g*#~2U(B-9`q+nRgABK@elcKgEFO6 zVuK&@tEzQNWrI^Nu9PKHu-M%yS*3^kS{*S3+6z=|snu;2#66gzNFC80@>9^(ULPo) z!k-s?GFC4Q@~12>;&Szf7rFJZHFe%mRA}L@Qb`Xlrc4mm`9;4@C%aLru#mH}ACf84 z{8Op%YvU&UDV?5lC)r zxouLuum1cAj$v1Or#QR#dGbEe_^~QeDES_WO^uhUgq}8@Ui3z>N{kUlnUny@r|;>- zi7j`ol|!7Q3#ca}>e+<&^~TGT8wyf17D<*1N%8hlAm3Lw1BdxE^{Q7WA?3GA9CQ5S zesYlHt|Cs|YI~w6NZv}ZQ_?p;i3eVm$uC!J%Fo3Q=Aw-o=x+5oWCf2p_$o`ju&h8< zKd(c2y3ZgXVo85TCvJUvKiLfoEZ%jS%HQF%rtXw(6m5~;dnC3Rb&u% za%N!woftxJmmBhSo?yY(Vqpbi^Y32Ph?g(R3mi^(lOoMmbSxt^pih#ov?_@&{#Gi1 za{7KNl|Ye?xBNQ2qazPU;9LF-?al(ChHv>tx2VILfU5eK1zx3U?~-E`LEXUQwwQ-wU!@{vHvQTUo!csB$~6!mrTA{{0*L6DIUrD z+-2=Qwcy!h?LQ!Rc8UF$Ykl#4-t|j&U32oHD!I#l*V=v{x&dn24~XWxE4E)ucr^hc zzv6~Kn{e@G-uJVEqsv68s^uVZZiZd@T(9((vu}&lU0cVBm7T>EyE0Iy`1}OY5AkC>b^d3m3KW==v-91B8zzcj7=~fdgCDWSb|X^^#L1h*S<-(~>o$ zi8X2dmwp`Alpcu3*F^bluwa+u99nua9uq^Q<~=mSvvV`%W($xhotrV&QGoF5+zjC= z5h*~#;@r##ec}hiI-i>vr}Lt#<%D)##=SJ->DDTt;k*nNpQAZ|Q7!yAKjRN-EM4;T zQ89n%dQEvPX=V%sk2) z?o7$gBaT2uQ+ZMy5<7e1M0q*@y9<2ys=XUf1wpi$QOU)>ZZGAP0T60r?5;ULw%t^Q6;VTt`k;GZfKcY zpQI0%Q+`1Vfy%*?kcEmxNX()TDXJzBvlv(_38o%3{gx$=YPqNm~`LdKYKdishzX3V=6cOmc^U z=|O=`)ldcQa4F$1y-lkQ4X)1cPV0Ve>k(^@cVhDx(=5A$X?nWNZ8PkTl56SYtzP~# zs}*~FjU%~vw%HXnw82is+s{r^2X*;Y88-%B&#RlCS9E|ei*fi;5vP63y7Xv zEqbz1oVjXYz~;=>htK&JH{P7$5ZkpmV|;!Zfn#$frz5I>;MknuVnyqkctV>qqjWfp zT6Ar5=759YF#}+|gPSw%or$gqJvV2<8kMd@H-U+FpN+bRKFsT#Cl6SW;j@bEJVz0GDT_y=#hnk#=n*Zm*u<=i>vGOr3W4p@+>lupNe-xte!h!LeA?I9-c#kjl+1%J%=`n84N6dO)~ zPLfmwss&mqXUS?Y;xA{+vpOIa7SQUuJe7GlV;-{{DEF2y)M7M}PBj=wkb5(#J z!X*i|PEK$L$E17=0&PdNQV14gVQEiMzK@U`pxBhnZjIHI_XctcBI2N^Su^GD6A^K; zWY0%N;*SxMy=CO%MMMnf>zQzvS#Tcn5VX$tBaP#t-}+FX^9y0H%E8-_A(Kmsh{~sr zccu$Y0XQkJ3r+zGzB9vu+b+OwWc>Y-K}19-7@ZcV7Ni>39xU{m#56B3asc-K##Xl$@S#S_LuS=Vw)*Qd+_N23KI43#9R3dM3GbTfVT5#>om<$O(mL}ev zAx5p-F3G#ulW{+=ZkKxgwI{>VPcQYT^Q*73{fY|Chj6W%(y!8R*l6`AZ(HsE5OkGVa8-p0D|np46nHLrXx2J zA7&;`Rq=spxpP<>{G*X!x-&NY%@W0K6=SarOk|j9#$Fqk$S@#duMLO~%n>Vz?gZxr z?zaQ4@lf`4y&cP&rvjgN(8kc7!B=6RIAy6*oOvu_w_x>b^SpqCeUh&o$}%XA`oh4U z)cA9qTWh}*Vcuk6FYSj^(yz;KC*48nEzz|O`5ec*^fNkqMWWEd6|n4y67Er#!(BY~ z5^HVWN({JxwqG^U-*U2BvVLfzFOjui=v!KK18y7^9p2;q9M6_-Xvs4j=BWjTX~Asf zWd(-Xt4A9x~@+a)kdB+@0W6q|WML8Sr-5&LQTKnuyjSTq=osut^Ll>2iuPpXO z<~D(WqPA~Z4}S<<9sqIi-%py;#E z4U%hggHB8i&2i#gu%A04QM9t;f-Ylc~@8a$yd>x1vnv2`J7h@e3vvm4OyIMBB z>jQI-1yl~kz>K4+B??-T3;s2zxYa~KW$OPL5CxT6!5ZPI z=9?y4+YiiOH(A>c2%m2X$gPstaE+Lu?*=M1%-Jz!N55Yis7Dha4YGb&jt(|S;=B!4R)!9(&sb;g8J3!Vq92?YetgH|Oa zb>m^Bk}b7jLLas|2}CzQt&@NV<-=Ad2jzla2Nf?Hos?9KUkBOY(SM6Z4HBi?7L+=# z+#PSTlcSK4wpqRd(r261C_sqXW;F^BzHhS{1&Bs%6O9r}I7pUk``^U&n6DRh?9F!i z!!8hLwgbYh?UwC;3cc}y0ikTWSi;-&=|TuMpAAgVi^fd% z*?>cmoIe0rh-ZT_I#>?KLOdHxIygE`Ed*_!58R^~kNkuK!5N=&B1jHedLU5+a9JWn z6`l{ObVlPKr3%jnVAoWD#v`+NkwZH$g z_IYzwqCc|%f#wMyvw6+RDIkNrX3Ya2vw2NUYfsC?Pn|65JHghsuHNn}7I}Xs#Up#$ zJ5~T_s9Ku64G=u<1SSU#5CM26Fgb952*5i5IdH=HI@zdpYa_(pjIui&MZFHNyr-5? zc3a*9GRkhtdr8@PPk8_3vO?}LB+M9zAjb|M}zE;XuC|k zUiiK)+Lc=~v8D(8)yaGT7S{IsW147Wc&`cYUX|D^-v;mp+x{ztVB}SlL zZe%YG-OIw#Mc2JC=i<;r!YG%qF9}T~Ou-C8feyQ<0_Jf^NF;1OP8m`_gAHNn->=_) z?1s>MIzScEZbLY9SagJG2YhK*3T~JlUmBX%$kI;M;L=dNE|M7--|;48y_G#Ej5 zD5JlnOyuRt(8MCBg|aI{V}${s?8;E*Dr6ZOaAT+(QvL?f#uSm5j*X$&{ip@e#?UyV zfU2iCKuB`mrce$Lht;bCL}(5WKy=#_8tDUMvYSFY()AuLX)YIR4lDjG-1@?e>zu)x zL!QSyES_6V;#jwa?j7OQuYG5p6WJA{n=ZzW%6}f+3p%eK=DEP;*;o&Zw#Y z8g2{C2Ygfk#NQV3u0*0@Qb2>-Lw~G_A1D}{6d0Vbv;gVtG7kw$s3xip*_lZJNN*3> z;N-xU6Eg1%UHy^;2!w!okpSWConcjj+8qGFb!W(Tcf^JRg6YnXi&pi8f%B{zgW3Qe{KwV?V@Sg#Xm0aah#b7`XJ`s2{G zm9pmmT1;{k_~Vo)*>ir(CtYeFxB@l1sn4Q=%lWe0NxH zmqyZe?iOLtM6ojWgyyMMP9^XFT1>Ir@7%3`thY`nhoKJy5P^ zb)aHZOr}_#oVAtaJHiA(NCvZCb}bfoT0*o?U8v}9&~v#VL-M$uK%#uTf%hQ2%ZdF+ z?uBko>mHRW$2IqIezHn^sH&HwwDEHLx4fIHK*B_;`DVmfd{VZJtL({K4MLGT@hIre zDeEi;KDI-b{$9DEW*YL59+ig%mA!4`cl300Gtf-F!zEw2Ps5R1p7Wt*2`kEj7KvBE zk-hSg2tu}Z7H23oa8iCb$kj)-=tcyUv=c&GjGAB0%@7GEHVH7#+(ddrN` zK?}(_&(AfV=Z{p51vGdtG#_|qkgtBoZb6B*E~*7x9t;Q7DSIRZz`shm2uu$O(jK}+ zSq~)dq0rY~?h*{5c@*eR=%@m4J`@g(<+6#1GLPVq(0wZOmCgX8GZbh^2Sg7Z3C(Ld zK+ruBnvdiGGTb8}F}^_!pN9}UetgTM{&?bq;4U)HD+P(Bv= z`$l!9%g|i#o6z4DW|T>lCWGnpWau}i1@!stfC6T9xSw09n(k$y%t7Q2oKKMN9{^7%vFxW$#i2Q21iH7EYG6_*3Y=oUDbT*5c2?Y1>D# z*Ix$J zl#ytGF3|C5=^;_S9iif*9t3!2syO=kn*ysit{V&McWPY|HGu3lL-*Z;_2NxYU|BET z)SIDs=1Xe`crzR`-LPKv!Z*XCjyA04kO#73-c4BViWz#-wyp<3F}?O`u|R)o&x&pPNklE_xD2g>sf2FMEBnd!y$%`>RS2z(9a9!MgH`? zG9~(oQWe0J_d|ktn)T{l`Gb`8`dXO+%X)pS{6WfkzBk4VTdF6(P(gv!6AGk7EQ+E8 z*B95}e`E|ZCbk!t#Z(eTwFt<-0x+lotv1YiZPs0%wI)muQef9k9N4v46IE|e7IAGh zHeq#O7H@5qj~{5gAzcYE zFU(pK=Bc$?mqkmo+IX>Ayl-X`lf~D!zLj+^O%_iaoo{7L+DHT6;9$^;6DkCz0R{R# zRyBYt7iS4IXg;dMlS{J6UZB4QLxI{0Wc?|j%OzP3MYap@29iGv>qWCvflkVk94-l^n*E3^L93F}FFrq9N#Kc7j;&dx_eHf7!T zhJ@4N2X4xS^@a(210?5Pn=)2^B7_2c<^+M-8?Mco>5OptUsFzJ6sNy4pny5uB%Ia~ObZCyoU%S6 ztp9G-|6aoSjAH%wvwlm`M=aK@S$|ffJ`&zQF#nFMtKYLU$U~VsvQ@R(EU1`%Iml=R z^!x_6aaY#84{nIJ-XMp~yRtPpp$>>q0ClJXkgj)ShwQ_b!&F!Qe%8OSX{gGCPQDRo zexO2MGc|}%+@E5U9S6{26ur4$Fdk_zK9F@AnkK6sx>(-Vx3c%hsZ*EXTK6xR!e#PQ zGLzM#4E@_AK$A%pvIBwYfh->~QN~b-QaNaAZ*@6I49306R{WWh#3mR2*?ju6J$b*N z614TNZKSvJy*hC~^5-}cm@DDlSiAaMs|`&5x{{bOQXhBkCzuM1{NVCt}Et7fPO?Cp;|F%G-jY&GZ zC5{uB&ObA`lyFoXLUjIpA$;zljhSMe?PJS$h^A!ir-k4MccwdkMnS3c(W6Z-xlNw;6rZ5dA{w7P3kC-k% zF^^AJ!=PX+5e3?}QU%zeC$c6nLluDHiL6N-QUxCV_Y<;LEig!F@!PC_aO1Ij&qV)L zbGfv_9A;`n&ZLKsjVd!y82~BGVw_|Iah*Y!5+%;_Z?iSph!6H+ef;`ucK9S^oKzpI zEAQ@o5&Kk5|q_ZYzY<5@^>j+`i%Fx?C^03S>j#( zF3UGH#6mzPM)Mijqs@AV*?cBz+$E`&1shnvJXC@0L4)`i*~ASI>K1)qf$BmFGbTA# z&x$KyFv#=pXN737zJo;~p3Axi>&EH?38;4_Dw*JOS@Z2FKn8y7Oh(&}J_q=#tBV!tvInzYQZs!f&(v zAtnK&J2_KdWX)md)VBY=e$6K{4y|VwMow`FaMh z?q!+5YCQw}ql0@Hmjg)F`5VYjs3-STeWBA(UrszfkJO>kRz5Nd5jH5Xvk*yp+0J78 zVC8YVoK8c;>}8q8GY(tLkX*1cTk%F^Y1l1K4jICPcV@YVIj5dA8Y1g`b>)`teJvaF zH-lVVX$ApgkgF?AL=%vnS62?!Dd2#Nado9~QNbhjcw?ozvr->efN8z4k{ItdLo^Ur zM%q$I#?!k&ex6D{$C9zi%jM%KlJfHYmU}b2t11?@-n;c*-B@*jAo^&{R|UlCwp5x= zg{cCD*;3h{O@S(atSy!JbD|HbfJpt8%8?U^Nn}j{tGcCf)P(2>`JAe>0m(f=+P&-~ z`iHlcZ~fDcj&T$bB0$upL`anOo^m2Yi0&yTLd58vaw6oq;GS|K9Qmf}Jwn7y)rJTP zUaKUf>T-Ud@6)CaLjxBbT-1`nmvUn}|X z!PQ9ZP?4owm8I){)?4InM%-nk77(f3RcX9uKsxTK9I7vE0U2voC0~3JPkg9I?SEIg zrASLHFs=W)G8!CRB8hImGSZ&P(&~FJj1|OKd+h8~0khj?-5yOF@u8RgGztD#?O>#N-4f?#tG6~Ol!zjYFHZp3aT7YqFWWLC!3c$EF;y&Y9%P0!Y zk4iuPd7Ce;U}?hrD-_2>$j&dvEkbsFIc^cM^CR2yu41aQ9@`IknS z#xIZuV}5c8zYTAc)KX&XSQ66yl?y80i`8#9x_Lw*P55~LdGV+n4BnHNH-=GuN}9ZC za#I;yMJT=*Rn|vyu@|a9WZRU9WfzMn2XlQ? zX%R71FbybTDK3iG@{dl2qtV4tP}?{`Z8{10MBK%3?a`MB>X!so^s97=0b__UqI+dj zA1C9=8Rz1NBkS~J5K1;gB$09k;!y^;ThD1{)d7XnHxhiLc=EVlh^(K|gw1&opRes34U1fhpQ@!`o z-W6<}k^6b?%f*nn{Tj=w3nE9uv7h2UHq(e0F|#sb7tT&6TN=DpD?z5}mA})xlLKxb ziUN!=V^-y6&6`#+5iQB+Bbr_OePNH69W;j8*#9tZ(V$)Ub8aqI`HhzQ{m2m-JEVDE z)YNIs-n>!GUh9~9%3fu5*fEENHik8OSBb3^I{L7jRr_Q(J0jHAj@Vkn(MN`+*#$O> zM8%(?u_jc*8#PC#KSkrH&{*CGA^KA^jt*VS8;3YL{V5v9ga+}(!H!OUipJVd1#hfy z^x9tdTeMyf>ThSEzQEBh@TQOdsXjh5(R+FP?cX0CInR#Th7n>RN1wok+l97Cz#wER zWC2A7Dg<*UR8%RX0}UN!kFlAdImTt78@=I^#}r={>1R&>uSUF+yyWCd#!r%bXfn|j zjdKPd@J(`hD+Int=at*lTo_%Gz4s>9jGycaYY?973u`pOIZp~}5T4wBfPDcMW{y79 zyY%vl#!vNy8HA_$!VJPwo&HjoL3nC~Yk!Xm15ERFUH<*?(|lna!qcKLIb4VEw0NaL zG=9i1`%W&5=w0buIAzKBD}7-D!dLpj2$gt1LY|8lTOkdc< z1k8+<%i$)3XZ9PW5QJw|kL0tcF$}zljgnm!?6}G&v8YeZA_juwstPgRKp?qlWQ`;V zJNhg(IxAViV43B!guyZ^I!N__Wme?~g}^eaW|U+>0$_L_G=Nf0R9es|M z{>~Sd&he#fNY9C?%&{Ror@UHPWJ7w+sL}S#To`M1E*n^Wt+!>`lOBtHiET{m`Oj#CRJMUIBpQHlIX;|F_9G zU|B{B={9$W)JF^Hw&5cr3l>sB&Lm?DED4{55-y=wxW0s(NsI(ZLZ$-;b!?>M*FjR} zljv3!Q06yA!j!sxL)B2Q)QzZ?ra-P<<~J8u zIYtBfp)M5Y6u)eP-Pi7CThvLBUtkQVEOck2>zX<;sf9_*bFm#3ozS_!C=4*>VnGqk zJ=G7k1*Lrh49yGr_4moq-Dva!`Sc&&hP1)^8e33m+-sI1_39cr8%4kPwlB)jNs~YC7?@^b-1vd|B(IN28Z^Cixek<3| z3-(2M?34|Q^4Q7LMSeD5JlGfcYajdXVn!)Xv8DZYu^%$pe-}r^mV`dgEIx0TI9>q3 zvKR--Jv?R%8}JgZwFs>jr+GSd=zV`Vr#c-?@TIgfVYnn5*c7+z{kJVt{zmQ|C z)Ywi<=R&~XSgD1h_V=;2#0AM%?Y%l@&h@J`qr@)3ish}~UadK$U=hP0_JC%T`U5aY z)KDBWK;i){?%0c@1n^pK;SGzgUzC7ib6gOx_FP|JMni^t310*(RrDeW3n4+$H39Mdf2qY{>bomll z+$zJ4u@O1#b7HMhLs8HGk&Rj`?kkBn#zXl&BUPy(@HqmBhsfu{nv7<`611{ zKCxg_eX=RloN7;czxk&L1*x*K)YFsm)fHwtL+%wUi`)} zmEHL++8EZYmG-i$$Jq9E>~ihsH5l1Kpo>L%^P;p$m~-=CZQQLPieiBE3~m1y8~B%MT5#c zG(ci^z69{o`4U8dhCqTA{l8t zX%b>B|4PG7&8bLJPGkLLCv*~2OxW}RQ8@@vawMn4`(zacRZc6Xiz2Kd8}|lA;ru74 zsBruP`c$NMuNGHE;p_*5QK*E83h-HtomakEb7wTT?TcHJx26-#NjH^oGs$-Efm@bN zLcikH!TqcjEsnsIK}^@5hW_SW&*WiJFAsFBd@2aW2<7c@sj z7>5YpzzX{(oC0HC(!77WEj#I@fWhRgJ_GGyFKG_lk7$l?F##Mf&|WL7fXN57+&u|L zn{+VXu)uLJu!8orgBngX!GUWDU}crPR744T+N+xP#{6ZIUJWS1pm;S1H0^V*YH>Be zxRd~*(mX9Fu*totd7X76Y=cDj!=Hl%#3*FU*)fIC0g)RJD{wzs$mw}qZl z@Tcu&QVY_FChvpfw6HCjz3PT35!-D}HqXa(D$_6>fRE33zsm!;q6NQYlb}FZXT#5r zg1kW;1{hP;p%4SaC8821x9M0Xwa{mp7rx!io}`nTyfo90u!KOLcs(m<2VG}e6$QCAgDg2KvHFAIo20i=t1xIw-3#J zq2VorEVaneFO{W0;0F}^fUxvSWho%&zf_h2g8oZosYRB4t>JD?NeKidK*dCseyv5T zcyAWneDvTEYBZ?6)^I@=Mq$f1qoKqWRJ3IPDk|DC&S)sIWiOb{XsEI!1k)J}W%kpw zpez(t*1e1^XL|W&rf%5Yr_F=C(x$WVdl~N3{jrZ@97STOH>i1Fb}7RJmo8Jh6(Ly4 zaKrT*pl>O|1=??b#-$85Xhnnp%NV~x=T~cLI0XjXfd<-5m*r^~%7e3v;TG-7K*cib zd!lHtXdhhV9cli>rK^}97TWDrv8Y(l7y>I+u>m7xSacF$qsQ1yeAZ#Z8t;{K`m!|v z0c~|_nB1r={&cp6$xQ|j1Zx;_X)JOn>{uQPZS)qk)Mh;v5o27f13;*IM8yCQ>K;)sh>$IhGE_@s zI1rcs6%(zeM_JV6y;*eg(SwGm(V%*ip<)t7AqL$HwW^?^7yv3Nia|F+wJLkT)Xh+? zN(iQIhI+LYF(`1X$64r?h(YDw#o(DcD&{@TP(P8n0*b*_6$2os0~G225reHN27pkv zRmA`h>b6o0y67M(pdjpEUTxdP?2dqf5@1I_LB8)`cr+!8Ap(jW3}=}z2EOlPtWtK8 z?|{k}JiY?ToG;+>zmquw)L<~}WG+?i#&uu@e3G#tvKJ3V1Qivnzb6?gSYZXNzbDyw zVuB#bWvd3;)45v^-Oap*GFQyo9Wc-W+|A^DrGPKM-7KaUXaVkKU=aMsN5CN$DTqUV zH>4o#{&+U?c*u{ zHlOX|EGAYvAUKY*p<<^1L;#Mn5fgcU0TF=X?1BmQ2(AEQKW6LhuFifO&{N(2aX?QQ z@G*;xk_40iAG6wV3WEM)cK$S8>DWxC>(j^Vg74UW5m7*foMLQJ`MZp+y13oC?QI>& z8n?YMnWq1_GZPCF<6LiGc0jhSr9O$aM7xdux3w(7wv=|0KdMW%wx?Rs?jndJ7be@N zHPPOlY;J9*8*_7lq;QGK(A5cdsdP(v)ST@ebqiy%wo&;X^l&cVAZBGQpb*1L;R?TuV{6RK;sts~u@ zA|qtP@ytRY^&w{KR4`j~vp>aRDxqk#onj-z@yU08z?#bx6_Vi;yZBOj79~RgJ=A>7 z*x#79@7|ft*DPFWPs63c=AW>P)69!6onCbs+b2KJc{399G%GB!uax7U{Tt>jUi#gt zZPAn*Ye!HW%b%+%XMD^l`G42 zxvSdrhzcn8XFzCJu2&4Q-$I07EGRp3H{5pv%XS77RIYUDaxcUfP;~14Ql)aGQ}>r@ z7)EyL{!$GSqYfiQFwnU{XKL#3>PS!pgKC-$Qco7fP*Jl%kBL1V5Q;YF!>eT^Bb;mG zr3ymP2K}N-q#~3&UAiB2DtQ2vB0Nh1`VP_aPFLU%l{{V9z@q{v>Iyt6fTFIzBh*71 zb*8Map$JeZqUvR1poprMje1N?FI6ua^ZMJ=SDWV1d%R7`+SvRQY>%BV%5W3xW87GHl! z1s+(Gx5KJ%Y zc+bC2!-GC8saJH|O7Hak`SB^$r>0;{~?j}02VDiEN%PdnN#sM2fn3v zR6?IzMCb+28bdB3Kv=rQkRQe9#8_u|e}3}@uVkw^dz~TIPn548K(T%Rp?#f!^+U^` z(6Ks=&>6W5=nUvIB4zgDbonTxVq=qmU1vS>>b5>LEZx%XF2+SU)!f>YY)+=zaV5m( z6}l|9wBnAKY3XRIOWNKe+lJ|Gs@?m;wn16Qi?D+Y&TKN|vjQNLZ8GFjG$5SWWS}sm znFd7eZ8G|a%RL}+Z<8^!2Df<_M)$#o4YtM5#c2NF?qLJp3@UKlLpNFes9}_pd#z6l z$l@>Y-G}$U{YQU30UbWX9PUtw2`MfX6Ay8Kh|ms-&?efX z3dxLpMsD}6hgo)Cz(KDK`wV$E#2|3&Gw@Rs5mu_f_8E9flMqqfXABTE69yy7`;6gZ zWt8z{<{5*%;76J4dBzAA@ozkZ;>*ml$k=l4<)?;J;VGkD{y5u>NGdyeevj^IdzT6x*wu~x}zi2hFs-UQHEDBskDuPtSNElVmH$x6x8+O=tWGp7N-WM)OFL31VZSw#HHe2> z%}eiUTMfJUAB}5EE=aW1HzC3l57g^i1EjgDh?WXIs$Uf6No-~!=qPU8DO_k=?YOZu zu2;KvT-L4cpi(_Qq`ZQrlxRvO>Ur?m5}8KCGSz?}pmL^H1w0R=(hHGE^|AzSZ%Zbc zk!?0|2H#eic(7=yJ6bU*2^8)bl;^0=XHT0weEyhmW5-UYy=ZK9?D-=my6*IJVt!N7 z<$PimA;U9TsPY~G1L0X?*x2oz9-eZr8{Q6aCePZ;tR0|*5t40($Ign|jhE(&P zx)jomdP*Gb_#4qW6==bam;mMBj$UXvr4DyMXgQ@0cdFIC;)naVLKA1(SL$>Jf*7DU z-2t&lenqEye_TciaeFy!cmw}+z>L%CHd4rMXZa8k9MXND$g$2Ep?ghnEv9N(*H{)R8-lrMnr<(%>b5Q68FFM#mnobrWg!h1}*s9aM-zT9KVn+g!b0EI7r zu0Nl>FE_3UDCj=ECZM1LaE&Pw4I-deW6DGWL?Wy)WugIM z>erY^G`bcRVsI zy(!ZNy|8V)Des1Wux-65?}k)Bckz(VE~b!osgMIf3{Zp|5DL3g$V(h+lNowKhMdaf zO=hI8{Ursggks)pdc9uxYF@W83XRaztpWxJnQj#@Kp54n0tSeHb*q2@B4FJVFmkr~_KFi{@T=3|KnUiP|A4S8XUcaQK=_|C z<+}|a{Lh(qw;}&ySN-62)4nez8}ycy$OGkf>3FP7tgUpKvr-W#8N z-IPBGqj9wSUN`yg@yK`FhYy+T4O6^f17lXuAP!bQ%*r8Ce(MB;@)kYc*C^B`x+pE@P-*5T*xOsPKw_alaIfl=IuZYt^2pt zCi|&kIs9e+r0KQ)_oLa90S8%h(v$_5 z!_(lTDPJoA!Ew?YLO*LJYY_GxlZn@2AXo#atf9x6o`8v>(PKK|;)KCq>M`*l0Zds? z0e))A@9;pN0#sCV>HE}_wKsY}^{E-Jl77;q?^6@s;e}BU{mhiV4srOC1fXJ~%iU*z zQFOWc%*@JHRE!4IXF;?v_;Ztqr&DLP{w;c3QcP&+m$)0H9^3CA9#;hMkto4nTa>(r$}WqY zwZszzFh=jPuwGV#k=($f>P5?_DgVlwclKSQrLL|cck$mIXIb6{&FB<~&Kuz1idJoxqUF-3fklj=37DeeK6k&+UO4ETcOeKcMp;k+X|%>XgF;d zBg)s~-(TRzX7n}k*S&NtW^pTMRiHbtg4V@pOKv3ODXomtR@q?Rby^IkEvyaNNN5D` z8Ox~l2hj3BL%>N3t87Rh!%6TjWE3elzOjsP{s1g!Y6wVat$dSDN~`4? zt87#t0?u!&+OhO#%ZxI|x;IS!rm*}2&86SKbXD2f2W9kjes386YVSwLtTM`*<>9X0 zQ7w}MfX?M%nWBJ5(dFT2FTSt=A-O!D1(K1TW`@*a%EK(F0qwfpb zW%e5SVKp$RS{d#-5!LR`atLKB!_qrwX+RSJQY(N_2}T^9C5PIxN$HH*kWo z3La(N03%k1@!Kl;l{_^- anyhow::Result { +) -> anyhow::Result { let ibc = penumbra_ibc::component::rpc::IbcQuery::::new(storage.clone()); - let grpc_server = tonic::transport::server::Server::builder() - .trace_fn(|req| match remote_addr(req) { - Some(remote_addr) => { - tracing::error_span!("grpc", ?remote_addr) - } - None => tracing::error_span!("grpc"), - }) - // Allow HTTP/1, which will be used by grpc-web connections. - // This is particularly important when running locally, as gRPC - // typically uses HTTP/2, which requires HTTPS. Accepting HTTP/2 - // allows local applications such as web browsers to talk to pd. - .accept_http1(true) + + // TODO(janis): upgrading to tonic 0.12 meant that the batteries included server could no + // longer be used. So we now need to configure this on the axum/hyper server directly. + // What can be done? Instead of `trace_fn` one could make use of tower-http's + // TraceLayer. + // + // HTTP1 and HTTP2 now need to be configured at a higher level - but if we make use + // of `axum::serve`, then they seem to both be activated? + // See also this: + // https://github.com/tokio-rs/axum/blob/c596deafe48ed608775e312eef7d12ddbb0fd424/examples/websockets-http2/src/main.rs#L57-L59 + + // let grpc_server = tonic::transport::server::Server::builder() + // .trace_fn(|req| match remote_addr(req) { + // Some(remote_addr) => { + // tracing::error_span!("grpc", ?remote_addr) + // } + // None => tracing::error_span!("grpc"), + // }) + // // Allow HTTP/1, which will be used by grpc-web connections. + // // This is particularly important when running locally, as gRPC + // // typically uses HTTP/2, which requires HTTPS. Accepting HTTP/2 + // // allows local applications such as web browsers to talk to pd. + // .accept_http1(true) + + let mut builder = Routes::builder(); + builder // As part of #2932, we are disabling all timeouts until we circle back to our // performance story. // Sets a timeout for all gRPC requests, but note that in the case of streaming @@ -125,8 +143,7 @@ pub fn router( )))) .add_service(we(tonic_reflection::server::Builder::configure() .register_encoded_file_descriptor_set(penumbra_proto::FILE_DESCRIPTOR_SET) - .build() + .build_v1() .with_context(|| "could not configure grpc reflection service")?)); - - Ok(grpc_server) + Ok(builder.routes().prepare()) } diff --git a/crates/core/app/src/server/consensus.rs b/crates/core/app/src/server/consensus.rs index cd357ab277..93c1e2c8dd 100644 --- a/crates/core/app/src/server/consensus.rs +++ b/crates/core/app/src/server/consensus.rs @@ -25,7 +25,10 @@ fn trace_events(events: &[Event]) { let span = tracing::debug_span!("event", kind = ?event.kind); span.in_scope(|| { for attr in &event.attributes { - tracing::debug!(k = ?attr.key, v=?attr.value); + tracing::debug!( + k = %String::from_utf8_lossy(attr.key_bytes()), + v = %String::from_utf8_lossy(attr.value_bytes()), + ); } }) } diff --git a/crates/core/app/src/server/events.rs b/crates/core/app/src/server/events.rs index 906f3d855c..7c8732ce9e 100644 --- a/crates/core/app/src/server/events.rs +++ b/crates/core/app/src/server/events.rs @@ -38,14 +38,27 @@ impl EventIndexLayer { // Perform matching on a nested key in the same format used by // the cosmos SDK: https://docs.cosmos.network/main/core/config // e.g., "message.sender", "message.recipient" - let nested_key = format!("{}.{}", e.kind, attr.key); - if self.no_index.is_match(&nested_key) { - attr.index = false; - } - // This comes second so that explicit index requests take priority over no-index requests. - if self.index.is_match(&nested_key) { - attr.index = true; + // XXX: tendermint-rs now supports v034 events types, which are + // plain bytes and need not be utf8. This messes with the + // regex and is likely not desirable to have in downstream + // consumers of the indexed events. + match attr.key_str() { + Ok(key) => { + let nested_key = format!("{}.{}", e.kind, key); + + if self.no_index.is_match(&nested_key) { + attr.set_index(false) + } + // This comes second so that explicit index requests take priority over no-index requests. + if self.index.is_match(&nested_key) { + attr.set_index(false) + } + } + // TODO: what should be done with this error? Emit a warning? + Err(_err) => { + attr.set_index(false); + } } } } diff --git a/crates/core/app/src/server/info.rs b/crates/core/app/src/server/info.rs index 90e090a7c8..63c3c7ae88 100644 --- a/crates/core/app/src/server/info.rs +++ b/crates/core/app/src/server/info.rs @@ -259,6 +259,7 @@ impl Info { channel_id: chan_id, port_id: PortId::transfer(), channel_end: channel, + upgrade_sequence: 0, }; channels.push(id_chan.into()); } @@ -308,6 +309,7 @@ impl Info { channel_id: chan_id, port_id: PortId::transfer(), channel_end: channel, + upgrade_sequence: 0, }; channels.push(id_chan.into()); } diff --git a/crates/core/app/tests/app_can_sweep_a_collection_of_small_notes.rs b/crates/core/app/tests/app_can_sweep_a_collection_of_small_notes.rs index dfe096bdde..1a2ae423cb 100644 --- a/crates/core/app/tests/app_can_sweep_a_collection_of_small_notes.rs +++ b/crates/core/app/tests/app_can_sweep_a_collection_of_small_notes.rs @@ -95,12 +95,12 @@ async fn app_can_sweep_a_collection_of_small_notes() -> anyhow::Result<()> { // Spawn the server-side view server. { - let make_svc = penumbra_app::rpc::router( + let make_svc = penumbra_app::rpc::routes( storage.as_ref(), proxy, false, /*enable_expensive_rpc*/ )? - .into_router() + .into_axum_router() .layer(tower_http::cors::CorsLayer::permissive()) .into_make_service() .tap(|_| tracing::debug!("initialized rpc service")); diff --git a/crates/core/app/tests/common/ibc_tests/node.rs b/crates/core/app/tests/common/ibc_tests/node.rs index 5178c7dd3f..971b798bed 100644 --- a/crates/core/app/tests/common/ibc_tests/node.rs +++ b/crates/core/app/tests/common/ibc_tests/node.rs @@ -112,12 +112,12 @@ impl TestNodeWithIBC { tracing::info!("spawning gRPC..."); // Spawn the node's RPC server. let _rpc_server = { - let make_svc = penumbra_app::rpc::router( + let make_svc = penumbra_app::rpc::routes( storage.as_ref(), proxy, false, /*enable_expensive_rpc*/ )? - .into_router() + .into_axum_router() .layer(tower_http::cors::CorsLayer::permissive()) .into_make_service() .tap(|_| tracing::info!("initialized rpc service")); @@ -125,6 +125,7 @@ impl TestNodeWithIBC { .socket_addrs(|| None)? .try_into() .expect("grpc url can be turned into a socket address"); + let server = axum_server::bind(addr).serve(make_svc); tokio::spawn(async { server.await.expect("grpc server returned an error") }) .tap(|_| tracing::info!("grpc server is running")) diff --git a/crates/core/app/tests/common/ibc_tests/relayer.rs b/crates/core/app/tests/common/ibc_tests/relayer.rs index 488e68dcca..f0ed6bce75 100644 --- a/crates/core/app/tests/common/ibc_tests/relayer.rs +++ b/crates/core/app/tests/common/ibc_tests/relayer.rs @@ -1560,16 +1560,18 @@ impl MockRelayer { let mut timeout_height_on_b = None; let mut timeout_timestamp_on_b = None; for attr in &event.attributes { - match attr.key.as_str() { - "packet_data_hex" => packet_data_hex = Some(attr.value.clone()), - "packet_sequence" => sequence = Some(attr.value.clone()), - "packet_src_port" => port_on_a = Some(attr.value.clone()), - "packet_src_channel" => chan_on_a = Some(attr.value.clone()), - "packet_dst_port" => port_on_b = Some(attr.value.clone()), - "packet_dst_channel" => chan_on_b = Some(attr.value.clone()), - "packet_timeout_height" => timeout_height_on_b = Some(attr.value.clone()), + match attr.key_str()? { + "packet_data_hex" => packet_data_hex = Some(attr.value_str()?.to_string()), + "packet_sequence" => sequence = Some(attr.value_str()?.to_string()), + "packet_src_port" => port_on_a = Some(attr.value_str()?.to_string()), + "packet_src_channel" => chan_on_a = Some(attr.value_str()?.to_string()), + "packet_dst_port" => port_on_b = Some(attr.value_str()?.to_string()), + "packet_dst_channel" => chan_on_b = Some(attr.value_str()?.to_string()), + "packet_timeout_height" => { + timeout_height_on_b = Some(attr.value_str()?.to_string()) + } "packet_timeout_timestamp" => { - timeout_timestamp_on_b = Some(attr.value.clone()) + timeout_timestamp_on_b = Some(attr.value_str()?.to_string()) } _ => (), } @@ -1671,18 +1673,20 @@ impl MockRelayer { let mut timeout_timestamp_on_b = None; let mut packet_ack_hex = None; for attr in &event.attributes { - match attr.key.as_str() { - "packet_data_hex" => packet_data_hex = Some(attr.value.clone()), - "packet_sequence" => sequence = Some(attr.value.clone()), - "packet_src_port" => port_on_a = Some(attr.value.clone()), - "packet_src_channel" => chan_on_a = Some(attr.value.clone()), - "packet_dst_port" => port_on_b = Some(attr.value.clone()), - "packet_dst_channel" => chan_on_b = Some(attr.value.clone()), - "packet_timeout_height" => timeout_height_on_b = Some(attr.value.clone()), + match attr.key_str()? { + "packet_data_hex" => packet_data_hex = Some(attr.value_str()?.to_string()), + "packet_sequence" => sequence = Some(attr.value_str()?.to_string()), + "packet_src_port" => port_on_a = Some(attr.value_str()?.to_string()), + "packet_src_channel" => chan_on_a = Some(attr.value_str()?.to_string()), + "packet_dst_port" => port_on_b = Some(attr.value_str()?.to_string()), + "packet_dst_channel" => chan_on_b = Some(attr.value_str()?.to_string()), + "packet_timeout_height" => { + timeout_height_on_b = Some(attr.value_str()?.to_string()) + } "packet_timeout_timestamp" => { - timeout_timestamp_on_b = Some(attr.value.clone()) + timeout_timestamp_on_b = Some(attr.value_str()?.to_string()) } - "packet_ack_hex" => packet_ack_hex = Some(attr.value.clone()), + "packet_ack_hex" => packet_ack_hex = Some(attr.value_str()?.to_string()), _ => (), } } diff --git a/crates/core/app/tests/mock_consensus_block_proving.rs b/crates/core/app/tests/mock_consensus_block_proving.rs index f522020769..59ae3a74b8 100644 --- a/crates/core/app/tests/mock_consensus_block_proving.rs +++ b/crates/core/app/tests/mock_consensus_block_proving.rs @@ -191,8 +191,8 @@ async fn verify_storage_proof_simple() -> anyhow::Result<()> { // Spawn the node's RPC server. let _rpc_server = { let make_svc = - penumbra_app::rpc::router(&storage, proxy, false /*enable_expensive_rpc*/)? - .into_router() + penumbra_app::rpc::routes(&storage, proxy, false /*enable_expensive_rpc*/)? + .into_axum_router() .layer(tower_http::cors::CorsLayer::permissive()) .into_make_service() .tap(|_| println!("initialized rpc service")); diff --git a/crates/core/app/tests/view_server_can_be_served_on_localhost.rs b/crates/core/app/tests/view_server_can_be_served_on_localhost.rs index 6ef2571ac3..4603aadf1c 100644 --- a/crates/core/app/tests/view_server_can_be_served_on_localhost.rs +++ b/crates/core/app/tests/view_server_can_be_served_on_localhost.rs @@ -71,12 +71,12 @@ async fn view_server_can_be_served_on_localhost() -> anyhow::Result<()> { // Spawn the server-side view server. { - let make_svc = penumbra_app::rpc::router( + let make_svc = penumbra_app::rpc::routes( storage.as_ref(), proxy, false, /*enable_expensive_rpc*/ )? - .into_router() + .into_axum_router() .layer(tower_http::cors::CorsLayer::permissive()) .into_make_service() .tap(|_| tracing::debug!("initialized rpc service")); diff --git a/crates/core/component/auction/Cargo.toml b/crates/core/component/auction/Cargo.toml index df57c248d2..65cc933d2f 100644 --- a/crates/core/component/auction/Cargo.toml +++ b/crates/core/component/auction/Cargo.toml @@ -55,6 +55,7 @@ hex = {workspace = true} im = {workspace = true, optional = true} metrics = {workspace = true} once_cell = {workspace = true} +pbjson-types = { workspace = true } penumbra-asset = {workspace = true, default-features = false} penumbra-keys = {workspace = true, default-features = false} penumbra-num = {workspace = true, default-features = false} @@ -76,7 +77,6 @@ tendermint = {workspace = true, default-features = true} tokio = {workspace = true, features = ["full", "tracing"], optional = true} tonic = {workspace = true, optional = true} tracing = {workspace = true} -pbjson-types = "0.6.0" [dev-dependencies] ed25519-consensus = {workspace = true} diff --git a/crates/core/component/ibc/src/component/msg_handler/channel_close_confirm.rs b/crates/core/component/ibc/src/component/msg_handler/channel_close_confirm.rs index 8d8e53fd0e..1cd8eff2d9 100644 --- a/crates/core/component/ibc/src/component/msg_handler/channel_close_confirm.rs +++ b/crates/core/component/ibc/src/component/msg_handler/channel_close_confirm.rs @@ -70,6 +70,7 @@ impl MsgHandler for MsgChannelCloseConfirm { remote: expected_counterparty, connection_hops: expected_connection_hops, version: channel.version.clone(), + ..ChannelEnd::default() }; state diff --git a/crates/core/component/ibc/src/component/msg_handler/channel_open_ack.rs b/crates/core/component/ibc/src/component/msg_handler/channel_open_ack.rs index 3e7accd673..4f9c96b8f4 100644 --- a/crates/core/component/ibc/src/component/msg_handler/channel_open_ack.rs +++ b/crates/core/component/ibc/src/component/msg_handler/channel_open_ack.rs @@ -58,6 +58,7 @@ impl MsgHandler for MsgChannelOpenAck { remote: expected_counterparty, connection_hops: expected_connection_hops, version: self.version_on_b.clone(), + ..ChannelEnd::default() }; state diff --git a/crates/core/component/ibc/src/component/msg_handler/channel_open_confirm.rs b/crates/core/component/ibc/src/component/msg_handler/channel_open_confirm.rs index 3d5f47bc6e..b941ebd9ac 100644 --- a/crates/core/component/ibc/src/component/msg_handler/channel_open_confirm.rs +++ b/crates/core/component/ibc/src/component/msg_handler/channel_open_confirm.rs @@ -65,6 +65,7 @@ impl MsgHandler for MsgChannelOpenConfirm { remote: expected_counterparty, connection_hops: expected_connection_hops, version: channel.version.clone(), + ..ChannelEnd::default() }; state diff --git a/crates/core/component/ibc/src/component/msg_handler/channel_open_init.rs b/crates/core/component/ibc/src/component/msg_handler/channel_open_init.rs index 6956aabf7a..e97c1697b9 100644 --- a/crates/core/component/ibc/src/component/msg_handler/channel_open_init.rs +++ b/crates/core/component/ibc/src/component/msg_handler/channel_open_init.rs @@ -57,6 +57,7 @@ impl MsgHandler for MsgChannelOpenInit { remote: Counterparty::new(self.port_id_on_b.clone(), None), connection_hops: self.connection_hops_on_a.clone(), version: self.version_proposal.clone(), + ..ChannelEnd::default() }; state.put_channel(&channel_id, &self.port_id_on_a, new_channel.clone()); diff --git a/crates/core/component/ibc/src/component/msg_handler/channel_open_try.rs b/crates/core/component/ibc/src/component/msg_handler/channel_open_try.rs index 3432c98760..8bffd067fd 100644 --- a/crates/core/component/ibc/src/component/msg_handler/channel_open_try.rs +++ b/crates/core/component/ibc/src/component/msg_handler/channel_open_try.rs @@ -49,6 +49,7 @@ impl MsgHandler for MsgChannelOpenTry { .clone() .ok_or_else(|| anyhow::anyhow!("no counterparty connection id provided"))?], version: self.version_supported_on_a.clone(), + ..ChannelEnd::default() }; tracing::debug!(?self, ?expected_channel_on_a); @@ -81,6 +82,7 @@ impl MsgHandler for MsgChannelOpenTry { remote: Counterparty::new(self.port_id_on_a.clone(), Some(self.chan_id_on_a.clone())), connection_hops: self.connection_hops_on_b.clone(), version: self.version_supported_on_a.clone(), + ..ChannelEnd::default() }; state.put_channel(&channel_id, &self.port_id_on_b, new_channel.clone()); diff --git a/crates/core/component/ibc/src/component/rpc.rs b/crates/core/component/ibc/src/component/rpc.rs index 4b54f52105..acb38b1bdb 100644 --- a/crates/core/component/ibc/src/component/rpc.rs +++ b/crates/core/component/ibc/src/component/rpc.rs @@ -1,5 +1,5 @@ use cnidarium::Storage; -use tonic::transport::server::Routes; +use tonic::service::Routes; use super::HostInterface; diff --git a/crates/core/component/ibc/src/component/rpc/consensus_query.rs b/crates/core/component/ibc/src/component/rpc/consensus_query.rs index 4b176acfb4..5336d14204 100644 --- a/crates/core/component/ibc/src/component/rpc/consensus_query.rs +++ b/crates/core/component/ibc/src/component/rpc/consensus_query.rs @@ -4,7 +4,8 @@ use async_trait::async_trait; use ibc_proto::ibc::core::channel::v1::query_server::Query as ConsensusQuery; use ibc_proto::ibc::core::channel::v1::{ Channel, PacketState, QueryChannelClientStateRequest, QueryChannelClientStateResponse, - QueryChannelConsensusStateRequest, QueryChannelConsensusStateResponse, QueryChannelRequest, + QueryChannelConsensusStateRequest, QueryChannelConsensusStateResponse, + QueryChannelParamsRequest, QueryChannelParamsResponse, QueryChannelRequest, QueryChannelResponse, QueryChannelsRequest, QueryChannelsResponse, QueryConnectionChannelsRequest, QueryConnectionChannelsResponse, QueryNextSequenceReceiveRequest, QueryNextSequenceReceiveResponse, @@ -14,6 +15,7 @@ use ibc_proto::ibc::core::channel::v1::{ QueryPacketCommitmentResponse, QueryPacketCommitmentsRequest, QueryPacketCommitmentsResponse, QueryPacketReceiptRequest, QueryPacketReceiptResponse, QueryUnreceivedAcksRequest, QueryUnreceivedAcksResponse, QueryUnreceivedPacketsRequest, QueryUnreceivedPacketsResponse, + QueryUpgradeErrorRequest, QueryUpgradeErrorResponse, QueryUpgradeRequest, QueryUpgradeResponse, }; use ibc_proto::ibc::core::client::v1::{Height, IdentifiedClientState}; use ibc_types::path::{ @@ -130,6 +132,7 @@ impl ConsensusQuery for IbcQuery channel_id: chan_id, port_id: PortId::transfer(), channel_end: channel, + upgrade_sequence: 0, }; channels.push(id_chan.into()); } @@ -187,6 +190,7 @@ impl ConsensusQuery for IbcQuery channel_id: chan_id, port_id: PortId::transfer(), channel_end: channel, + upgrade_sequence: 0, }; channels.push(id_chan.into()); } @@ -856,4 +860,28 @@ impl ConsensusQuery for IbcQuery }), })) } + + #[tracing::instrument(skip(self), err, level = "debug")] + async fn channel_params( + &self, + _request: tonic::Request, + ) -> std::result::Result, tonic::Status> { + Err(tonic::Status::unimplemented("not implemented")) + } + + #[tracing::instrument(skip(self), err, level = "debug")] + async fn upgrade( + &self, + _request: tonic::Request, + ) -> std::result::Result, tonic::Status> { + Err(tonic::Status::unimplemented("not implemented")) + } + + #[tracing::instrument(skip(self), err, level = "debug")] + async fn upgrade_error( + &self, + _request: tonic::Request, + ) -> std::result::Result, tonic::Status> { + Err(tonic::Status::unimplemented("not implemented")) + } } diff --git a/crates/core/component/shielded-pool/Cargo.toml b/crates/core/component/shielded-pool/Cargo.toml index d1a9b72f81..bb9d4591b4 100644 --- a/crates/core/component/shielded-pool/Cargo.toml +++ b/crates/core/component/shielded-pool/Cargo.toml @@ -50,7 +50,7 @@ decaf377-ka = {workspace = true} decaf377-rdsa = {workspace = true} futures = {workspace = true} hex = {workspace = true} -ibc-proto = {workspace = true, default-features = false} +ibc-proto = {workspace = true, features = ["transport"], default-features = false} ibc-types = {workspace = true, features = ["with_serde"], default-features = false} im = {workspace = true} metrics = {workspace = true} diff --git a/crates/core/component/shielded-pool/src/component/rpc/bank_query.rs b/crates/core/component/shielded-pool/src/component/rpc/bank_query.rs index 2af2edae7c..a675402ecd 100644 --- a/crates/core/component/shielded-pool/src/component/rpc/bank_query.rs +++ b/crates/core/component/shielded-pool/src/component/rpc/bank_query.rs @@ -9,9 +9,11 @@ use ibc_proto::cosmos::bank::v1beta1::{ QueryTotalSupplyRequest, QueryTotalSupplyResponse, }; use ibc_proto::cosmos::bank::v1beta1::{ - QueryDenomMetadataRequest, QueryDenomMetadataResponse, QueryDenomOwnersRequest, - QueryDenomOwnersResponse, QueryDenomsMetadataRequest, QueryDenomsMetadataResponse, - QuerySendEnabledRequest, QuerySendEnabledResponse, QuerySpendableBalanceByDenomRequest, + QueryDenomMetadataByQueryStringRequest, QueryDenomMetadataByQueryStringResponse, + QueryDenomMetadataRequest, QueryDenomMetadataResponse, QueryDenomOwnersByQueryRequest, + QueryDenomOwnersByQueryResponse, QueryDenomOwnersRequest, QueryDenomOwnersResponse, + QueryDenomsMetadataRequest, QueryDenomsMetadataResponse, QuerySendEnabledRequest, + QuerySendEnabledResponse, QuerySpendableBalanceByDenomRequest, QuerySpendableBalanceByDenomResponse, QuerySpendableBalancesRequest, QuerySpendableBalancesResponse, QuerySupplyOfRequest, QuerySupplyOfResponse, }; @@ -207,4 +209,18 @@ impl BankQuery for Server { ) -> std::result::Result, tonic::Status> { Err(tonic::Status::unimplemented("not implemented")) } + + async fn denom_metadata_by_query_string( + &self, + _: tonic::Request, + ) -> Result, tonic::Status> { + Err(tonic::Status::unimplemented("not implemented")) + } + + async fn denom_owners_by_query( + &self, + _: tonic::Request, + ) -> Result, tonic::Status> { + Err(tonic::Status::unimplemented("not implemented")) + } } diff --git a/crates/core/keys/src/symmetric.rs b/crates/core/keys/src/symmetric.rs index 4e383d15c3..c888005403 100644 --- a/crates/core/keys/src/symmetric.rs +++ b/crates/core/keys/src/symmetric.rs @@ -135,7 +135,6 @@ impl TryFrom<&[u8]> for PayloadKey { fn try_from(slice: &[u8]) -> Result { let bytes: [u8; PAYLOAD_KEY_LEN_BYTES] = slice - .as_ref() .try_into() .map_err(|_| anyhow::anyhow!("PayloadKey incorrect len"))?; Ok(Self(*Key::from_slice(&bytes))) diff --git a/crates/crypto/proof-params/Cargo.toml b/crates/crypto/proof-params/Cargo.toml index af3bdaf815..8199e5caef 100644 --- a/crates/crypto/proof-params/Cargo.toml +++ b/crates/crypto/proof-params/Cargo.toml @@ -5,7 +5,7 @@ edition = {workspace = true} [build-dependencies] regex = { version = "1", optional = true } -reqwest = { version = "0.11.14", optional = true, features = [ +reqwest = { version = "0.12.9", optional = true, features = [ "blocking", "json", ] } diff --git a/crates/misc/tct-visualize/Cargo.toml b/crates/misc/tct-visualize/Cargo.toml index cbd2f4ffac..adb96c663f 100644 --- a/crates/misc/tct-visualize/Cargo.toml +++ b/crates/misc/tct-visualize/Cargo.toml @@ -21,7 +21,9 @@ tokio-util = {workspace = true, features = ["full"]} tonic = {workspace = true} prost = {workspace = true} tokio-stream = {workspace = true} -axum = {workspace = true, features = ["headers", "query"]} +axum = {workspace = true } +# TODO: consider using the Query extractor provided by axum-extra +axum-extra = {workspace = true, features = ["typed-header"] } axum-server = {workspace = true, features = ["tls-rustls"]} serde_json = {workspace = true, features = ["preserve_order"]} include-flate = { version = "0.1", features = ["stable"] } diff --git a/crates/misc/tct-visualize/src/bin/tct-live-edit.rs b/crates/misc/tct-visualize/src/bin/tct-live-edit.rs index e09b75cb9a..d529c91e3c 100644 --- a/crates/misc/tct-visualize/src/bin/tct-live-edit.rs +++ b/crates/misc/tct-visualize/src/bin/tct-live-edit.rs @@ -1,6 +1,7 @@ use std::{path::PathBuf, sync::Arc}; -use axum::{headers::ContentType, routing::get, Router, TypedHeader}; +use axum::{routing::get, Router}; +use axum_extra::{headers::ContentType, TypedHeader}; use axum_server::tls_rustls::RustlsConfig; use clap::Parser; use include_flate::flate; @@ -79,8 +80,8 @@ async fn main() -> anyhow::Result<()> { .unwrap() } (None, None) => { - axum::Server::bind(&address) - .serve(app.into_make_service()) + let listener = tokio::net::TcpListener::bind(&address).await.unwrap(); + axum::serve(listener, app.into_make_service()) .await .unwrap(); } diff --git a/crates/misc/tct-visualize/src/live/view.rs b/crates/misc/tct-visualize/src/live/view.rs index dc657b8b76..40606a0b7f 100644 --- a/crates/misc/tct-visualize/src/live/view.rs +++ b/crates/misc/tct-visualize/src/live/view.rs @@ -1,20 +1,20 @@ use std::{convert::Infallible, sync::Arc, time::Duration}; use axum::{ - body::StreamBody, + body::Body, extract::{OriginalUri, Path, Query}, - headers::ContentType, http::StatusCode, response::{ sse::{self, KeepAlive}, Sse, }, routing::{get, MethodRouter}, - Router, TypedHeader, + Router, }; +use axum_extra::{headers::ContentType, TypedHeader}; use bytes::Bytes; -use futures::stream; +use futures::{future, stream}; use serde_json::json; use tokio::sync::{mpsc, watch}; use tokio_stream::{wrappers::ReceiverStream, StreamExt}; @@ -262,15 +262,14 @@ fn render_dot(mut tree: watch::Receiver) -> MethodRouter { if !query.graph { return Ok::<_, (StatusCode, String)>(( TypedHeader(ContentType::json()), - StreamBody::new( - stream::iter(vec![json!({ + Body::from_stream(stream::once(future::ok::<_, Infallible>( + json!({ "position": tree.borrow().position(), "forgotten": tree.borrow().forgotten(), }) .to_string() - .into()]) - .map(Ok), - ), + .into_bytes(), + ))), )); } @@ -334,7 +333,7 @@ fn render_dot(mut tree: watch::Receiver) -> MethodRouter { // Manually construct a streaming response to avoid allocating a copy of the large // rendered bytes: the graph is already rendered as a JSON-escaped string, so we include // it literally in this output - StreamBody::new( + Body::from_stream( stream::iter(vec![ "{".into(), "\"position\":".into(), diff --git a/crates/proto/Cargo.toml b/crates/proto/Cargo.toml index 64956328d2..ca137d5709 100644 --- a/crates/proto/Cargo.toml +++ b/crates/proto/Cargo.toml @@ -8,7 +8,7 @@ anyhow = "1" [features] rpc = ["dep:tonic", "ibc-proto/client"] -box-grpc = ["dep:http-body", "dep:tonic", "dep:tower"] +box-grpc = ["dep:http-body", "dep:http-body-util", "dep:tonic", "dep:tower"] cnidarium = ["dep:cnidarium"] tendermint = [ "dep:chrono", @@ -30,6 +30,7 @@ decaf377-rdsa = {workspace = true} futures = {workspace = true} hex = {workspace = true} http-body = {workspace = true, optional = true} +http-body-util = {workspace = true, optional = true} ibc-types = {workspace = true, features = ["std"], default-features = true} ics23 = {workspace = true} pbjson = {workspace = true} diff --git a/crates/proto/src/box_grpc_svc.rs b/crates/proto/src/box_grpc_svc.rs index 1ce117449f..7c02a015dc 100644 --- a/crates/proto/src/box_grpc_svc.rs +++ b/crates/proto/src/box_grpc_svc.rs @@ -1,10 +1,7 @@ use bytes::Bytes; -use http_body::{combinators::UnsyncBoxBody, Body}; -use tonic::{ - body::BoxBody as ReqBody, - codegen::http as grpc, - transport::{self, Endpoint}, -}; +use http_body::Body; +use http_body_util::{combinators::UnsyncBoxBody, BodyExt as _}; +use tonic::{body::BoxBody as ReqBody, codegen::http as grpc, transport::Endpoint}; use tower::{util::BoxCloneService, Service, ServiceBuilder}; /// A type-erased gRPC service. @@ -20,7 +17,7 @@ pub type RspBody = UnsyncBoxBody; pub async fn connect(ep: Endpoint) -> anyhow::Result { let conn = ep.connect().await?; let svc = ServiceBuilder::new() - .map_response(|rsp: grpc::Response| rsp.map(box_rsp_body)) + .map_response(|rsp: grpc::Response| rsp.map(box_rsp_body)) .map_err(BoxError::from) .service(conn); Ok(BoxCloneService::new(svc)) diff --git a/crates/proto/src/event.rs b/crates/proto/src/event.rs index e7e69fefa4..ce74895ce4 100644 --- a/crates/proto/src/event.rs +++ b/crates/proto/src/event.rs @@ -16,16 +16,19 @@ pub trait ProtoEvent: Message + Name + Serialize + DeserializeOwned + Sized { .as_object() .expect("serde_json Serialized ProtoEvent should not be empty.") .into_iter() - .map(|(key, v)| abci::EventAttribute { - value: serde_json::to_string(v).expect("must be able to serialize value as JSON"), - key: key.to_string(), - index: true, + .map(|(key, v)| { + abci::EventAttribute::V037(abci::v0_37::EventAttribute { + value: serde_json::to_string(v) + .expect("must be able to serialize value as JSON"), + key: key.to_string(), + index: true, + }) }) .collect(); // NOTE: cosmo-sdk sorts the attribute list so that it's deterministic every time.[0] I don't know if that is actually conformant but continuing that pattern here for now. // [0]: https://github.com/cosmos/cosmos-sdk/blob/8fb62054c59e580c0ae0c898751f8dc46044499a/types/events.go#L102-L104 - attributes.sort_by(|a, b| (&a.key).cmp(&b.key)); + attributes.sort_by(|a, b| (&a.key_bytes()).cmp(&b.key_bytes())); return abci::Event::new(kind, attributes); } @@ -43,9 +46,9 @@ pub trait ProtoEvent: Message + Name + Serialize + DeserializeOwned + Sized { // NOTE: Is there any condition where there would be duplicate EventAttributes and problems that fall out of that? let mut attributes = HashMap::::new(); for attr in &event.attributes { - let value = serde_json::from_str(&attr.value) + let value = serde_json::from_slice(attr.value_bytes()) .with_context(|| format!("could not parse JSON for attribute {:?}", attr))?; - attributes.insert(attr.key.clone(), value); + attributes.insert(String::from_utf8_lossy(attr.key_bytes()).into(), value); } let json = serde_json::to_value(attributes) @@ -81,11 +84,11 @@ mod tests { let expected_abci_spend = abci::Event::new( "penumbra.core.component.shielded_pool.v1.EventSpend", - vec![abci::EventAttribute { + [abci::EventAttribute::V037(abci::v0_37::EventAttribute { key: "nullifier".to_string(), value: "{\"inner\":\"lL6VF1ZxmJFo8o6i6e+JjYyktGKaN6j/o+SzsBoZ29M=\"}".to_string(), index: true, - }], + })], ); assert_eq!(abci_spend, expected_abci_spend); @@ -107,13 +110,13 @@ mod tests { let expected_abci_output = abci::Event::new( "penumbra.core.component.shielded_pool.v1.EventOutput", - vec![abci::EventAttribute { + [abci::EventAttribute::V037(abci::v0_37::EventAttribute { // note: attribute keys become camelCase because ProtoJSON... key: "noteCommitment".to_string(), // note: attribute values are JSON objects, potentially nested as here value: "{\"inner\":\"lL6VF1ZxmJFo8o6i6e+JjYyktGKaN6j/o+SzsBoZ29M=\"}".to_string(), index: true, - }], + })], ); assert_eq!(abci_output, expected_abci_output); diff --git a/crates/proto/src/gen/cosmos.app.v1alpha1.rs b/crates/proto/src/gen/cosmos.app.v1alpha1.rs index de74556a7a..a2b1826bb6 100644 --- a/crates/proto/src/gen/cosmos.app.v1alpha1.rs +++ b/crates/proto/src/gen/cosmos.app.v1alpha1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// ModuleDescriptor describes an app module. -#[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 @@ -27,11 +27,13 @@ impl ::prost::Name for ModuleDescriptor { const NAME: &'static str = "ModuleDescriptor"; const PACKAGE: &'static str = "cosmos.app.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.app.v1alpha1.{}", Self::NAME) + "cosmos.app.v1alpha1.ModuleDescriptor".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.app.v1alpha1.ModuleDescriptor".into() } } /// PackageReference is a reference to a protobuf package used by a module. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PackageReference { /// name is the fully-qualified name of the package. @@ -80,12 +82,14 @@ impl ::prost::Name for PackageReference { const NAME: &'static str = "PackageReference"; const PACKAGE: &'static str = "cosmos.app.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.app.v1alpha1.{}", Self::NAME) + "cosmos.app.v1alpha1.PackageReference".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.app.v1alpha1.PackageReference".into() } } /// MigrateFromInfo is information on a module version that a newer module /// can migrate from. -#[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 @@ -97,6 +101,9 @@ impl ::prost::Name for MigrateFromInfo { const NAME: &'static str = "MigrateFromInfo"; const PACKAGE: &'static str = "cosmos.app.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.app.v1alpha1.{}", Self::NAME) + "cosmos.app.v1alpha1.MigrateFromInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.app.v1alpha1.MigrateFromInfo".into() } } diff --git a/crates/proto/src/gen/cosmos.auth.v1beta1.rs b/crates/proto/src/gen/cosmos.auth.v1beta1.rs index 494ee21f5f..eb18f17fee 100644 --- a/crates/proto/src/gen/cosmos.auth.v1beta1.rs +++ b/crates/proto/src/gen/cosmos.auth.v1beta1.rs @@ -1,7 +1,7 @@ +// This file is @generated by prost-build. /// 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). -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BaseAccount { #[prost(string, tag = "1")] @@ -17,11 +17,13 @@ impl ::prost::Name for BaseAccount { const NAME: &'static str = "BaseAccount"; const PACKAGE: &'static str = "cosmos.auth.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.auth.v1beta1.{}", Self::NAME) + "cosmos.auth.v1beta1.BaseAccount".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.auth.v1beta1.BaseAccount".into() } } /// ModuleAccount defines an account for modules that holds coins on a pool. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ModuleAccount { #[prost(message, optional, tag = "1")] @@ -35,13 +37,15 @@ impl ::prost::Name for ModuleAccount { const NAME: &'static str = "ModuleAccount"; const PACKAGE: &'static str = "cosmos.auth.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.auth.v1beta1.{}", Self::NAME) + "cosmos.auth.v1beta1.ModuleAccount".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.auth.v1beta1.ModuleAccount".into() } } /// ModuleCredential represents a unclaimable pubkey for base accounts controlled by modules. /// /// Since: cosmos-sdk 0.47 -#[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). @@ -56,12 +60,14 @@ impl ::prost::Name for ModuleCredential { const NAME: &'static str = "ModuleCredential"; const PACKAGE: &'static str = "cosmos.auth.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.auth.v1beta1.{}", Self::NAME) + "cosmos.auth.v1beta1.ModuleCredential".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.auth.v1beta1.ModuleCredential".into() } } /// Params defines the parameters for the auth module. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Params { #[prost(uint64, tag = "1")] pub max_memo_characters: u64, @@ -78,6 +84,9 @@ impl ::prost::Name for Params { const NAME: &'static str = "Params"; const PACKAGE: &'static str = "cosmos.auth.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.auth.v1beta1.{}", Self::NAME) + "cosmos.auth.v1beta1.Params".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.auth.v1beta1.Params".into() } } diff --git a/crates/proto/src/gen/cosmos.bank.v1beta1.rs b/crates/proto/src/gen/cosmos.bank.v1beta1.rs index 1fdd67aa3c..113e4a0aa6 100644 --- a/crates/proto/src/gen/cosmos.bank.v1beta1.rs +++ b/crates/proto/src/gen/cosmos.bank.v1beta1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// Params defines the parameters for the bank module. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Params { /// Deprecated: Use of SendEnabled in params is deprecated. @@ -17,12 +17,14 @@ impl ::prost::Name for Params { const NAME: &'static str = "Params"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.Params".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.Params".into() } } /// SendEnabled maps coin denom to a send_enabled status (whether a denom is /// sendable). -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SendEnabled { #[prost(string, tag = "1")] @@ -34,11 +36,13 @@ impl ::prost::Name for SendEnabled { const NAME: &'static str = "SendEnabled"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.SendEnabled".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.SendEnabled".into() } } /// Input models transaction input. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Input { #[prost(string, tag = "1")] @@ -50,11 +54,13 @@ impl ::prost::Name for Input { const NAME: &'static str = "Input"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.Input".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.Input".into() } } /// Output models transaction outputs. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Output { #[prost(string, tag = "1")] @@ -66,13 +72,15 @@ impl ::prost::Name for Output { const NAME: &'static str = "Output"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.Output".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.Output".into() } } /// 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. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Supply { #[prost(message, repeated, tag = "1")] @@ -82,12 +90,14 @@ impl ::prost::Name for Supply { const NAME: &'static str = "Supply"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.Supply".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.Supply".into() } } /// DenomUnit represents a struct that describes a given /// denomination unit of the basic token. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DenomUnit { /// denom represents the string name of the given denom unit (e.g uatom). @@ -108,12 +118,14 @@ impl ::prost::Name for DenomUnit { const NAME: &'static str = "DenomUnit"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.DenomUnit".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.DenomUnit".into() } } /// Metadata represents a struct that describes /// a basic token. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Metadata { #[prost(string, tag = "1")] @@ -155,11 +167,13 @@ impl ::prost::Name for Metadata { const NAME: &'static str = "Metadata"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.Metadata".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.Metadata".into() } } /// QueryBalanceRequest is the request type for the Query/Balance RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryBalanceRequest { /// address is the address to query balances for. @@ -173,11 +187,13 @@ impl ::prost::Name for QueryBalanceRequest { const NAME: &'static str = "QueryBalanceRequest"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryBalanceRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryBalanceRequest".into() } } /// QueryBalanceResponse is the response type for the Query/Balance RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryBalanceResponse { /// balance is the balance of the coin. @@ -188,11 +204,13 @@ impl ::prost::Name for QueryBalanceResponse { const NAME: &'static str = "QueryBalanceResponse"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryBalanceResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryBalanceResponse".into() } } /// QueryBalanceRequest is the request type for the Query/AllBalances RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAllBalancesRequest { /// address is the address to query balances for. @@ -213,12 +231,14 @@ impl ::prost::Name for QueryAllBalancesRequest { const NAME: &'static str = "QueryAllBalancesRequest"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryAllBalancesRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryAllBalancesRequest".into() } } /// QueryAllBalancesResponse is the response type for the Query/AllBalances RPC /// method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAllBalancesResponse { /// balances is the balances of all the coins. @@ -234,14 +254,16 @@ impl ::prost::Name for QueryAllBalancesResponse { const NAME: &'static str = "QueryAllBalancesResponse"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryAllBalancesResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryAllBalancesResponse".into() } } /// QuerySpendableBalancesRequest defines the gRPC request structure for querying /// an account's spendable balances. /// /// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QuerySpendableBalancesRequest { /// address is the address to query spendable balances for. @@ -257,14 +279,16 @@ impl ::prost::Name for QuerySpendableBalancesRequest { const NAME: &'static str = "QuerySpendableBalancesRequest"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QuerySpendableBalancesRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QuerySpendableBalancesRequest".into() } } /// QuerySpendableBalancesResponse defines the gRPC response structure for querying /// an account's spendable balances. /// /// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QuerySpendableBalancesResponse { /// balances is the spendable balances of all the coins. @@ -280,14 +304,16 @@ impl ::prost::Name for QuerySpendableBalancesResponse { const NAME: &'static str = "QuerySpendableBalancesResponse"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QuerySpendableBalancesResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QuerySpendableBalancesResponse".into() } } /// QuerySpendableBalanceByDenomRequest defines the gRPC request structure for /// querying an account's spendable balance for a specific denom. /// /// Since: cosmos-sdk 0.47 -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QuerySpendableBalanceByDenomRequest { /// address is the address to query balances for. @@ -301,14 +327,16 @@ impl ::prost::Name for QuerySpendableBalanceByDenomRequest { const NAME: &'static str = "QuerySpendableBalanceByDenomRequest"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QuerySpendableBalanceByDenomRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QuerySpendableBalanceByDenomRequest".into() } } /// QuerySpendableBalanceByDenomResponse defines the gRPC response structure for /// querying an account's spendable balance for a specific denom. /// /// Since: cosmos-sdk 0.47 -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QuerySpendableBalanceByDenomResponse { /// balance is the balance of the coin. @@ -319,12 +347,14 @@ impl ::prost::Name for QuerySpendableBalanceByDenomResponse { const NAME: &'static str = "QuerySpendableBalanceByDenomResponse"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QuerySpendableBalanceByDenomResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QuerySpendableBalanceByDenomResponse".into() } } /// QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC /// method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryTotalSupplyRequest { /// pagination defines an optional pagination for the request. @@ -339,12 +369,14 @@ impl ::prost::Name for QueryTotalSupplyRequest { const NAME: &'static str = "QueryTotalSupplyRequest"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryTotalSupplyRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryTotalSupplyRequest".into() } } /// QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC /// method -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryTotalSupplyResponse { /// supply is the supply of the coins @@ -362,11 +394,13 @@ impl ::prost::Name for QueryTotalSupplyResponse { const NAME: &'static str = "QueryTotalSupplyResponse"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryTotalSupplyResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryTotalSupplyResponse".into() } } /// QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QuerySupplyOfRequest { /// denom is the coin denom to query balances for. @@ -377,11 +411,13 @@ impl ::prost::Name for QuerySupplyOfRequest { const NAME: &'static str = "QuerySupplyOfRequest"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QuerySupplyOfRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QuerySupplyOfRequest".into() } } /// QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QuerySupplyOfResponse { /// amount is the supply of the coin. @@ -392,22 +428,26 @@ impl ::prost::Name for QuerySupplyOfResponse { const NAME: &'static str = "QuerySupplyOfResponse"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QuerySupplyOfResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QuerySupplyOfResponse".into() } } /// QueryParamsRequest defines the request type for querying x/bank parameters. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryParamsRequest {} impl ::prost::Name for QueryParamsRequest { const NAME: &'static str = "QueryParamsRequest"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryParamsRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryParamsRequest".into() } } /// QueryParamsResponse defines the response type for querying x/bank parameters. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryParamsResponse { #[prost(message, optional, tag = "1")] @@ -417,11 +457,13 @@ impl ::prost::Name for QueryParamsResponse { const NAME: &'static str = "QueryParamsResponse"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryParamsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryParamsResponse".into() } } /// QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomsMetadataRequest { /// pagination defines an optional pagination for the request. @@ -434,12 +476,14 @@ impl ::prost::Name for QueryDenomsMetadataRequest { const NAME: &'static str = "QueryDenomsMetadataRequest"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryDenomsMetadataRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryDenomsMetadataRequest".into() } } /// QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC /// method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomsMetadataResponse { /// metadata provides the client information for all the registered tokens. @@ -455,11 +499,13 @@ impl ::prost::Name for QueryDenomsMetadataResponse { const NAME: &'static str = "QueryDenomsMetadataResponse"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryDenomsMetadataResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryDenomsMetadataResponse".into() } } /// QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomMetadataRequest { /// denom is the coin denom to query the metadata for. @@ -470,12 +516,14 @@ impl ::prost::Name for QueryDenomMetadataRequest { const NAME: &'static str = "QueryDenomMetadataRequest"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryDenomMetadataRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryDenomMetadataRequest".into() } } /// QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC /// method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomMetadataResponse { /// metadata describes and provides all the client information for the requested token. @@ -486,13 +534,15 @@ impl ::prost::Name for QueryDenomMetadataResponse { const NAME: &'static str = "QueryDenomMetadataResponse"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryDenomMetadataResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryDenomMetadataResponse".into() } } /// QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query, /// which queries for a paginated set of all account holders of a particular /// denomination. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomOwnersRequest { /// denom defines the coin denomination to query all account holders for. @@ -508,7 +558,10 @@ impl ::prost::Name for QueryDenomOwnersRequest { const NAME: &'static str = "QueryDenomOwnersRequest"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryDenomOwnersRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryDenomOwnersRequest".into() } } /// DenomOwner defines structure representing an account that owns or holds a @@ -516,7 +569,6 @@ impl ::prost::Name for QueryDenomOwnersRequest { /// balance of the denominated token. /// /// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DenomOwner { /// address defines the address that owns a particular denomination. @@ -530,13 +582,15 @@ impl ::prost::Name for DenomOwner { const NAME: &'static str = "DenomOwner"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.DenomOwner".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.DenomOwner".into() } } /// QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. /// /// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryDenomOwnersResponse { #[prost(message, repeated, tag = "1")] @@ -551,13 +605,15 @@ impl ::prost::Name for QueryDenomOwnersResponse { const NAME: &'static str = "QueryDenomOwnersResponse"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QueryDenomOwnersResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QueryDenomOwnersResponse".into() } } /// QuerySendEnabledRequest defines the RPC request for looking up SendEnabled entries. /// /// Since: cosmos-sdk 0.47 -#[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. @@ -574,13 +630,15 @@ impl ::prost::Name for QuerySendEnabledRequest { const NAME: &'static str = "QuerySendEnabledRequest"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QuerySendEnabledRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QuerySendEnabledRequest".into() } } /// QuerySendEnabledResponse defines the RPC response of a SendEnable query. /// /// Since: cosmos-sdk 0.47 -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QuerySendEnabledResponse { #[prost(message, repeated, tag = "1")] @@ -596,13 +654,22 @@ impl ::prost::Name for QuerySendEnabledResponse { const NAME: &'static str = "QuerySendEnabledResponse"; const PACKAGE: &'static str = "cosmos.bank.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.bank.v1beta1.{}", Self::NAME) + "cosmos.bank.v1beta1.QuerySendEnabledResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.bank.v1beta1.QuerySendEnabledResponse".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query defines the gRPC querier service. @@ -625,8 +692,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -651,7 +718,7 @@ pub mod query_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -698,8 +765,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -727,8 +793,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -759,8 +824,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -793,8 +857,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -827,8 +890,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -856,8 +918,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -882,8 +943,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -908,8 +968,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -935,8 +994,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -967,8 +1025,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -999,8 +1056,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1018,11 +1074,17 @@ pub mod query_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + 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 { + pub trait Query: std::marker::Send + std::marker::Sync + 'static { /// Balance queries the balance of a single coin for a single account. async fn balance( &self, @@ -1148,20 +1210,18 @@ pub mod query_server { } /// Query defines the gRPC querier service. #[derive(Debug)] - pub struct QueryServer { - inner: _Inner, + pub struct QueryServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServer { + 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(), @@ -1211,8 +1271,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -1224,7 +1284,6 @@ pub mod query_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/cosmos.bank.v1beta1.Query/Balance" => { #[allow(non_camel_case_types)] @@ -1255,7 +1314,6 @@ pub mod query_server { 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 = BalanceSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1301,7 +1359,6 @@ pub mod query_server { 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 = AllBalancesSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1347,7 +1404,6 @@ pub mod query_server { 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 = SpendableBalancesSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1397,7 +1453,6 @@ pub mod query_server { 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) @@ -1443,7 +1498,6 @@ pub mod query_server { 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 = TotalSupplySvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1489,7 +1543,6 @@ pub mod query_server { 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 = SupplyOfSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1533,7 +1586,6 @@ pub mod query_server { 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 = ParamsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1579,7 +1631,6 @@ pub mod query_server { 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 = DenomMetadataSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1625,7 +1676,6 @@ pub mod query_server { 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 = DenomsMetadataSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1671,7 +1721,6 @@ pub mod query_server { 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 = DenomOwnersSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1717,7 +1766,6 @@ pub mod query_server { 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) @@ -1736,20 +1784,25 @@ pub mod query_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1761,17 +1814,9 @@ pub mod query_server { } } } - 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 = "cosmos.bank.v1beta1.Query"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "cosmos.bank.v1beta1.Query"; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/cosmos.base.abci.v1beta1.rs b/crates/proto/src/gen/cosmos.base.abci.v1beta1.rs index 574a2519a4..e1c9e389dc 100644 --- a/crates/proto/src/gen/cosmos.base.abci.v1beta1.rs +++ b/crates/proto/src/gen/cosmos.base.abci.v1beta1.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// TxResponse defines a structure containing relevant tx data and metadata. The /// tags are stringified and the log is JSON decoded. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TxResponse { /// The block height @@ -57,11 +57,13 @@ impl ::prost::Name for TxResponse { const NAME: &'static str = "TxResponse"; const PACKAGE: &'static str = "cosmos.base.abci.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.abci.v1beta1.{}", Self::NAME) + "cosmos.base.abci.v1beta1.TxResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.abci.v1beta1.TxResponse".into() } } /// ABCIMessageLog defines a structure containing an indexed tx ABCI message log. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AbciMessageLog { #[prost(uint32, tag = "1")] @@ -77,12 +79,14 @@ impl ::prost::Name for AbciMessageLog { const NAME: &'static str = "ABCIMessageLog"; const PACKAGE: &'static str = "cosmos.base.abci.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.abci.v1beta1.{}", Self::NAME) + "cosmos.base.abci.v1beta1.ABCIMessageLog".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.abci.v1beta1.ABCIMessageLog".into() } } /// StringEvent defines en Event object wrapper where all the attributes /// contain key/value pairs that are strings instead of raw bytes. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct StringEvent { #[prost(string, tag = "1")] @@ -94,12 +98,14 @@ impl ::prost::Name for StringEvent { const NAME: &'static str = "StringEvent"; const PACKAGE: &'static str = "cosmos.base.abci.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.abci.v1beta1.{}", Self::NAME) + "cosmos.base.abci.v1beta1.StringEvent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.abci.v1beta1.StringEvent".into() } } /// Attribute defines an attribute wrapper where the key and value are /// strings instead of raw bytes. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Attribute { #[prost(string, tag = "1")] @@ -111,12 +117,14 @@ impl ::prost::Name for Attribute { const NAME: &'static str = "Attribute"; const PACKAGE: &'static str = "cosmos.base.abci.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.abci.v1beta1.{}", Self::NAME) + "cosmos.base.abci.v1beta1.Attribute".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.abci.v1beta1.Attribute".into() } } /// GasInfo defines tx execution gas context. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct GasInfo { /// GasWanted is the maximum units of work we allow this tx to perform. #[prost(uint64, tag = "1")] @@ -129,11 +137,13 @@ impl ::prost::Name for GasInfo { const NAME: &'static str = "GasInfo"; const PACKAGE: &'static str = "cosmos.base.abci.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.abci.v1beta1.{}", Self::NAME) + "cosmos.base.abci.v1beta1.GasInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.abci.v1beta1.GasInfo".into() } } /// Result is the union of ResponseFormat and ResponseCheckTx. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Result { /// Data is any data returned from message or handler execution. It MUST be @@ -162,12 +172,14 @@ impl ::prost::Name for Result { const NAME: &'static str = "Result"; const PACKAGE: &'static str = "cosmos.base.abci.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.abci.v1beta1.{}", Self::NAME) + "cosmos.base.abci.v1beta1.Result".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.abci.v1beta1.Result".into() } } /// SimulationResponse defines the response generated when a transaction is /// successfully simulated. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SimulationResponse { #[prost(message, optional, tag = "1")] @@ -179,12 +191,14 @@ impl ::prost::Name for SimulationResponse { const NAME: &'static str = "SimulationResponse"; const PACKAGE: &'static str = "cosmos.base.abci.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.abci.v1beta1.{}", Self::NAME) + "cosmos.base.abci.v1beta1.SimulationResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.abci.v1beta1.SimulationResponse".into() } } /// MsgData defines the data returned in a Result object during message /// execution. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgData { #[prost(string, tag = "1")] @@ -196,12 +210,14 @@ impl ::prost::Name for MsgData { const NAME: &'static str = "MsgData"; const PACKAGE: &'static str = "cosmos.base.abci.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.abci.v1beta1.{}", Self::NAME) + "cosmos.base.abci.v1beta1.MsgData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.abci.v1beta1.MsgData".into() } } /// TxMsgData defines a list of MsgData. A transaction will have a MsgData object /// for each message. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TxMsgData { /// data field is deprecated and not populated. @@ -218,11 +234,13 @@ impl ::prost::Name for TxMsgData { const NAME: &'static str = "TxMsgData"; const PACKAGE: &'static str = "cosmos.base.abci.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.abci.v1beta1.{}", Self::NAME) + "cosmos.base.abci.v1beta1.TxMsgData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.abci.v1beta1.TxMsgData".into() } } /// SearchTxsResult defines a structure for querying txs pageable -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SearchTxsResult { /// Count of all txs @@ -248,11 +266,13 @@ impl ::prost::Name for SearchTxsResult { const NAME: &'static str = "SearchTxsResult"; const PACKAGE: &'static str = "cosmos.base.abci.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.abci.v1beta1.{}", Self::NAME) + "cosmos.base.abci.v1beta1.SearchTxsResult".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.abci.v1beta1.SearchTxsResult".into() } } /// 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 @@ -280,6 +300,9 @@ impl ::prost::Name for SearchBlocksResult { const NAME: &'static str = "SearchBlocksResult"; const PACKAGE: &'static str = "cosmos.base.abci.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.abci.v1beta1.{}", Self::NAME) + "cosmos.base.abci.v1beta1.SearchBlocksResult".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.abci.v1beta1.SearchBlocksResult".into() } } diff --git a/crates/proto/src/gen/cosmos.base.query.v1beta1.rs b/crates/proto/src/gen/cosmos.base.query.v1beta1.rs index f25dadc86c..c973de722f 100644 --- a/crates/proto/src/gen/cosmos.base.query.v1beta1.rs +++ b/crates/proto/src/gen/cosmos.base.query.v1beta1.rs @@ -1,3 +1,4 @@ +// This file is @generated by prost-build. /// PageRequest is to be embedded in gRPC request messages for efficient /// pagination. Ex: /// @@ -5,7 +6,6 @@ /// Foo some_parameter = 1; /// PageRequest pagination = 2; /// } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PageRequest { /// key is a value returned in PageResponse.next_key to begin @@ -38,7 +38,10 @@ impl ::prost::Name for PageRequest { const NAME: &'static str = "PageRequest"; const PACKAGE: &'static str = "cosmos.base.query.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.query.v1beta1.{}", Self::NAME) + "cosmos.base.query.v1beta1.PageRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.query.v1beta1.PageRequest".into() } } /// PageResponse is to be embedded in gRPC response messages where the @@ -48,7 +51,6 @@ impl ::prost::Name for PageRequest { /// repeated Bar results = 1; /// PageResponse page = 2; /// } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PageResponse { /// next_key is the key to be passed to PageRequest.key to @@ -65,6 +67,9 @@ impl ::prost::Name for PageResponse { const NAME: &'static str = "PageResponse"; const PACKAGE: &'static str = "cosmos.base.query.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.query.v1beta1.{}", Self::NAME) + "cosmos.base.query.v1beta1.PageResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.query.v1beta1.PageResponse".into() } } diff --git a/crates/proto/src/gen/cosmos.base.v1beta1.rs b/crates/proto/src/gen/cosmos.base.v1beta1.rs index a24098b3ee..67b93478c9 100644 --- a/crates/proto/src/gen/cosmos.base.v1beta1.rs +++ b/crates/proto/src/gen/cosmos.base.v1beta1.rs @@ -1,8 +1,8 @@ +// This file is @generated by prost-build. /// Coin defines a token with a denomination and an amount. /// /// NOTE: The amount field is an Int which implements the custom method /// signatures required by gogoproto. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Coin { #[prost(string, tag = "1")] @@ -14,14 +14,16 @@ impl ::prost::Name for Coin { const NAME: &'static str = "Coin"; const PACKAGE: &'static str = "cosmos.base.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.v1beta1.{}", Self::NAME) + "cosmos.base.v1beta1.Coin".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.v1beta1.Coin".into() } } /// DecCoin defines a token with a denomination and a decimal amount. /// /// NOTE: The amount field is an Dec which implements the custom method /// signatures required by gogoproto. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DecCoin { #[prost(string, tag = "1")] @@ -33,6 +35,9 @@ impl ::prost::Name for DecCoin { const NAME: &'static str = "DecCoin"; const PACKAGE: &'static str = "cosmos.base.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.base.v1beta1.{}", Self::NAME) + "cosmos.base.v1beta1.DecCoin".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.base.v1beta1.DecCoin".into() } } diff --git a/crates/proto/src/gen/cosmos.crypto.multisig.v1beta1.rs b/crates/proto/src/gen/cosmos.crypto.multisig.v1beta1.rs index 1d784f6978..26d4ac43e8 100644 --- a/crates/proto/src/gen/cosmos.crypto.multisig.v1beta1.rs +++ b/crates/proto/src/gen/cosmos.crypto.multisig.v1beta1.rs @@ -1,7 +1,7 @@ +// This file is @generated by prost-build. /// MultiSignature wraps the signatures from a multisig.LegacyAminoPubKey. /// See cosmos.tx.v1betata1.ModeInfo.Multi for how to specify which signers /// signed and with which modes. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MultiSignature { #[prost(bytes = "vec", repeated, tag = "1")] @@ -11,14 +11,16 @@ impl ::prost::Name for MultiSignature { const NAME: &'static str = "MultiSignature"; const PACKAGE: &'static str = "cosmos.crypto.multisig.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.crypto.multisig.v1beta1.{}", Self::NAME) + "cosmos.crypto.multisig.v1beta1.MultiSignature".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.crypto.multisig.v1beta1.MultiSignature".into() } } /// CompactBitArray is an implementation of a space efficient bit array. /// This is used to ensure that the encoded data takes up a minimal amount of /// space after proto encoding. /// This is not thread safe, and is not intended for concurrent usage. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CompactBitArray { #[prost(uint32, tag = "1")] @@ -30,6 +32,9 @@ impl ::prost::Name for CompactBitArray { const NAME: &'static str = "CompactBitArray"; const PACKAGE: &'static str = "cosmos.crypto.multisig.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.crypto.multisig.v1beta1.{}", Self::NAME) + "cosmos.crypto.multisig.v1beta1.CompactBitArray".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.crypto.multisig.v1beta1.CompactBitArray".into() } } diff --git a/crates/proto/src/gen/cosmos.tx.config.v1.rs b/crates/proto/src/gen/cosmos.tx.config.v1.rs index b79ab2e0fd..31586d462d 100644 --- a/crates/proto/src/gen/cosmos.tx.config.v1.rs +++ b/crates/proto/src/gen/cosmos.tx.config.v1.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// Config is the config object of the x/auth/tx package. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, 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. @@ -15,6 +15,9 @@ impl ::prost::Name for Config { const NAME: &'static str = "Config"; const PACKAGE: &'static str = "cosmos.tx.config.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.config.v1.{}", Self::NAME) + "cosmos.tx.config.v1.Config".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.config.v1.Config".into() } } diff --git a/crates/proto/src/gen/cosmos.tx.signing.v1beta1.rs b/crates/proto/src/gen/cosmos.tx.signing.v1beta1.rs index c5b8f2f52f..25c93fb9de 100644 --- a/crates/proto/src/gen/cosmos.tx.signing.v1beta1.rs +++ b/crates/proto/src/gen/cosmos.tx.signing.v1beta1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// SignatureDescriptors wraps multiple SignatureDescriptor's. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SignatureDescriptors { /// signatures are the signature descriptors @@ -10,14 +10,16 @@ impl ::prost::Name for SignatureDescriptors { const NAME: &'static str = "SignatureDescriptors"; const PACKAGE: &'static str = "cosmos.tx.signing.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.signing.v1beta1.{}", Self::NAME) + "cosmos.tx.signing.v1beta1.SignatureDescriptors".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.signing.v1beta1.SignatureDescriptors".into() } } /// SignatureDescriptor is a convenience type which represents the full data for /// a signature including the public key of the signer, signing modes and the /// signature itself. It is primarily used for coordinating signatures between /// clients. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SignatureDescriptor { /// public_key is the public key of the signer @@ -34,7 +36,6 @@ pub struct SignatureDescriptor { /// Nested message and enum types in `SignatureDescriptor`. pub mod signature_descriptor { /// Data represents signature data - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Data { /// sum is the oneof that specifies whether this represents single or multi-signature data @@ -44,7 +45,6 @@ pub mod signature_descriptor { /// Nested message and enum types in `Data`. pub mod data { /// Single is the signature data for a single signer - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Single { /// mode is the signing mode of the single signer @@ -58,13 +58,13 @@ pub mod signature_descriptor { const NAME: &'static str = "Single"; const PACKAGE: &'static str = "cosmos.tx.signing.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "cosmos.tx.signing.v1beta1.SignatureDescriptor.Data.{}", Self::NAME - ) + "cosmos.tx.signing.v1beta1.SignatureDescriptor.Data.Single".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.signing.v1beta1.SignatureDescriptor.Data.Single".into() } } /// Multi is the signature data for a multisig public key - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Multi { /// bitarray specifies which keys within the multisig are signing @@ -80,13 +80,13 @@ pub mod signature_descriptor { const NAME: &'static str = "Multi"; const PACKAGE: &'static str = "cosmos.tx.signing.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "cosmos.tx.signing.v1beta1.SignatureDescriptor.Data.{}", Self::NAME - ) + "cosmos.tx.signing.v1beta1.SignatureDescriptor.Data.Multi".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.signing.v1beta1.SignatureDescriptor.Data.Multi".into() } } /// sum is the oneof that specifies whether this represents single or multi-signature data - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Sum { /// single represents a single signer @@ -101,9 +101,10 @@ pub mod signature_descriptor { const NAME: &'static str = "Data"; const PACKAGE: &'static str = "cosmos.tx.signing.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "cosmos.tx.signing.v1beta1.SignatureDescriptor.{}", Self::NAME - ) + "cosmos.tx.signing.v1beta1.SignatureDescriptor.Data".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.signing.v1beta1.SignatureDescriptor.Data".into() } } } @@ -111,7 +112,10 @@ impl ::prost::Name for SignatureDescriptor { const NAME: &'static str = "SignatureDescriptor"; const PACKAGE: &'static str = "cosmos.tx.signing.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.signing.v1beta1.{}", Self::NAME) + "cosmos.tx.signing.v1beta1.SignatureDescriptor".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.signing.v1beta1.SignatureDescriptor".into() } } /// SignMode represents a signing mode with its own security guarantees. @@ -166,12 +170,12 @@ impl SignMode { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - SignMode::Unspecified => "SIGN_MODE_UNSPECIFIED", - SignMode::Direct => "SIGN_MODE_DIRECT", - SignMode::Textual => "SIGN_MODE_TEXTUAL", - SignMode::DirectAux => "SIGN_MODE_DIRECT_AUX", - SignMode::LegacyAminoJson => "SIGN_MODE_LEGACY_AMINO_JSON", - SignMode::Eip191 => "SIGN_MODE_EIP_191", + Self::Unspecified => "SIGN_MODE_UNSPECIFIED", + Self::Direct => "SIGN_MODE_DIRECT", + Self::Textual => "SIGN_MODE_TEXTUAL", + Self::DirectAux => "SIGN_MODE_DIRECT_AUX", + Self::LegacyAminoJson => "SIGN_MODE_LEGACY_AMINO_JSON", + Self::Eip191 => "SIGN_MODE_EIP_191", } } /// Creates an enum from field names used in the ProtoBuf definition. diff --git a/crates/proto/src/gen/cosmos.tx.v1beta1.rs b/crates/proto/src/gen/cosmos.tx.v1beta1.rs index 8aeb187cda..0db9732ef4 100644 --- a/crates/proto/src/gen/cosmos.tx.v1beta1.rs +++ b/crates/proto/src/gen/cosmos.tx.v1beta1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// Tx is the standard type used for broadcasting transactions. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Tx { /// body is the processable content of the transaction @@ -19,7 +19,10 @@ impl ::prost::Name for Tx { const NAME: &'static str = "Tx"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.Tx".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.Tx".into() } } /// TxRaw is a variant of Tx that pins the signer's exact binary representation @@ -27,7 +30,6 @@ impl ::prost::Name for Tx { /// verification. The binary `serialize(tx: TxRaw)` is stored in Tendermint and /// the hash `sha256(serialize(tx: TxRaw))` becomes the "txhash", commonly used /// as the transaction ID. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TxRaw { /// body_bytes is a protobuf serialization of a TxBody that matches the @@ -48,11 +50,13 @@ impl ::prost::Name for TxRaw { const NAME: &'static str = "TxRaw"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.TxRaw".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.TxRaw".into() } } /// SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SignDoc { /// body_bytes is protobuf serialization of a TxBody that matches the @@ -76,14 +80,16 @@ impl ::prost::Name for SignDoc { const NAME: &'static str = "SignDoc"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.SignDoc".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.SignDoc".into() } } /// SignDocDirectAux is the type used for generating sign bytes for /// SIGN_MODE_DIRECT_AUX. /// /// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SignDocDirectAux { /// body_bytes is protobuf serialization of a TxBody that matches the @@ -117,11 +123,13 @@ impl ::prost::Name for SignDocDirectAux { const NAME: &'static str = "SignDocDirectAux"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.SignDocDirectAux".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.SignDocDirectAux".into() } } /// TxBody is the body of a transaction that all signers sign over. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TxBody { /// messages is a list of messages to be executed. The required signers of @@ -157,12 +165,14 @@ impl ::prost::Name for TxBody { const NAME: &'static str = "TxBody"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.TxBody".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.TxBody".into() } } /// AuthInfo describes the fee and signer modes that are used to sign a /// transaction. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthInfo { /// signer_infos defines the signing modes for the required signers. The number @@ -190,12 +200,14 @@ impl ::prost::Name for AuthInfo { const NAME: &'static str = "AuthInfo"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.AuthInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.AuthInfo".into() } } /// SignerInfo describes the public key and signing mode of a single top-level /// signer. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SignerInfo { /// public_key is the public key of the signer. It is optional for accounts @@ -217,11 +229,13 @@ impl ::prost::Name for SignerInfo { const NAME: &'static str = "SignerInfo"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.SignerInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.SignerInfo".into() } } /// ModeInfo describes the signing mode of a single or nested multisig signer. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ModeInfo { /// sum is the oneof that specifies whether this represents a single or nested @@ -234,8 +248,7 @@ pub mod mode_info { /// Single is the mode info for a single signer. It is structured as a message /// to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the /// future - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Single { /// mode is the signing mode of the single signer #[prost(enumeration = "super::super::signing::v1beta1::SignMode", tag = "1")] @@ -245,11 +258,13 @@ pub mod mode_info { const NAME: &'static str = "Single"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.ModeInfo.{}", Self::NAME) + "cosmos.tx.v1beta1.ModeInfo.Single".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.ModeInfo.Single".into() } } /// Multi is the mode info for a multisig public key - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Multi { /// bitarray specifies which keys within the multisig are signing @@ -266,12 +281,14 @@ pub mod mode_info { const NAME: &'static str = "Multi"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.ModeInfo.{}", Self::NAME) + "cosmos.tx.v1beta1.ModeInfo.Multi".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.ModeInfo.Multi".into() } } /// sum is the oneof that specifies whether this represents a single or nested /// multisig signer - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Sum { /// single represents a single signer @@ -286,13 +303,15 @@ impl ::prost::Name for ModeInfo { const NAME: &'static str = "ModeInfo"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.ModeInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.ModeInfo".into() } } /// Fee includes the amount of coins paid in fees and the maximum /// gas to be used by the transaction. The ratio yields an effective "gasprice", /// which must be above some miminum to be accepted into the mempool. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Fee { /// amount is the amount of coins to be paid as a fee @@ -317,13 +336,15 @@ impl ::prost::Name for Fee { const NAME: &'static str = "Fee"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.Fee".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.Fee".into() } } /// Tip is the tip used for meta-transactions. /// /// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Tip { /// amount is the amount of the tip @@ -337,7 +358,10 @@ impl ::prost::Name for Tip { const NAME: &'static str = "Tip"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.Tip".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.Tip".into() } } /// AuxSignerData is the intermediary format that an auxiliary signer (e.g. a @@ -346,7 +370,6 @@ impl ::prost::Name for Tip { /// by the node if sent directly as-is. /// /// Since: cosmos-sdk 0.46 -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuxSignerData { /// address is the bech32-encoded address of the auxiliary signer. If using @@ -370,12 +393,14 @@ impl ::prost::Name for AuxSignerData { const NAME: &'static str = "AuxSignerData"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.AuxSignerData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.AuxSignerData".into() } } /// GetTxsEventRequest is the request type for the Service.TxsByEvents /// RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetTxsEventRequest { /// events is the list of transaction event type. @@ -412,12 +437,14 @@ impl ::prost::Name for GetTxsEventRequest { const NAME: &'static str = "GetTxsEventRequest"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.GetTxsEventRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.GetTxsEventRequest".into() } } /// GetTxsEventResponse is the response type for the Service.TxsByEvents /// RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetTxsEventResponse { /// txs is the list of queried transactions. @@ -443,12 +470,14 @@ impl ::prost::Name for GetTxsEventResponse { const NAME: &'static str = "GetTxsEventResponse"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.GetTxsEventResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.GetTxsEventResponse".into() } } /// BroadcastTxRequest is the request type for the Service.BroadcastTxRequest /// RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BroadcastTxRequest { /// tx_bytes is the raw transaction. @@ -461,12 +490,14 @@ impl ::prost::Name for BroadcastTxRequest { const NAME: &'static str = "BroadcastTxRequest"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.BroadcastTxRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.BroadcastTxRequest".into() } } /// BroadcastTxResponse is the response type for the /// Service.BroadcastTx method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BroadcastTxResponse { /// tx_response is the queried TxResponses. @@ -479,12 +510,14 @@ impl ::prost::Name for BroadcastTxResponse { const NAME: &'static str = "BroadcastTxResponse"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.BroadcastTxResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.BroadcastTxResponse".into() } } /// SimulateRequest is the request type for the Service.Simulate /// RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SimulateRequest { /// tx is the transaction to simulate. @@ -502,12 +535,14 @@ impl ::prost::Name for SimulateRequest { const NAME: &'static str = "SimulateRequest"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.SimulateRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.SimulateRequest".into() } } /// SimulateResponse is the response type for the /// Service.SimulateRPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SimulateResponse { /// gas_info is the information about gas used in the simulation. @@ -521,12 +556,14 @@ impl ::prost::Name for SimulateResponse { const NAME: &'static str = "SimulateResponse"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.SimulateResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.SimulateResponse".into() } } /// GetTxRequest is the request type for the Service.GetTx /// RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetTxRequest { /// hash is the tx hash to query, encoded as a hex string. @@ -537,11 +574,13 @@ impl ::prost::Name for GetTxRequest { const NAME: &'static str = "GetTxRequest"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.GetTxRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.GetTxRequest".into() } } /// GetTxResponse is the response type for the Service.GetTx method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetTxResponse { /// tx is the queried transaction. @@ -557,14 +596,16 @@ impl ::prost::Name for GetTxResponse { const NAME: &'static str = "GetTxResponse"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.GetTxResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.GetTxResponse".into() } } /// GetBlockWithTxsRequest is the request type for the Service.GetBlockWithTxs /// RPC method. /// /// Since: cosmos-sdk 0.45.2 -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetBlockWithTxsRequest { /// height is the height of the block to query. @@ -580,14 +621,16 @@ impl ::prost::Name for GetBlockWithTxsRequest { const NAME: &'static str = "GetBlockWithTxsRequest"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.GetBlockWithTxsRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.GetBlockWithTxsRequest".into() } } /// GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs /// method. /// /// Since: cosmos-sdk 0.45.2 -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetBlockWithTxsResponse { /// txs are the transactions in the block. @@ -609,14 +652,16 @@ impl ::prost::Name for GetBlockWithTxsResponse { const NAME: &'static str = "GetBlockWithTxsResponse"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.GetBlockWithTxsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.GetBlockWithTxsResponse".into() } } /// 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. @@ -627,14 +672,16 @@ impl ::prost::Name for TxDecodeRequest { const NAME: &'static str = "TxDecodeRequest"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.TxDecodeRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.TxDecodeRequest".into() } } /// 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. @@ -645,14 +692,16 @@ impl ::prost::Name for TxDecodeResponse { const NAME: &'static str = "TxDecodeResponse"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.TxDecodeResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.TxDecodeResponse".into() } } /// 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. @@ -663,14 +712,16 @@ impl ::prost::Name for TxEncodeRequest { const NAME: &'static str = "TxEncodeRequest"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.TxEncodeRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.TxEncodeRequest".into() } } /// 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. @@ -681,14 +732,16 @@ impl ::prost::Name for TxEncodeResponse { const NAME: &'static str = "TxEncodeResponse"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.TxEncodeResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.TxEncodeResponse".into() } } /// 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")] @@ -698,14 +751,16 @@ impl ::prost::Name for TxEncodeAminoRequest { const NAME: &'static str = "TxEncodeAminoRequest"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.TxEncodeAminoRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.TxEncodeAminoRequest".into() } } /// 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")] @@ -715,14 +770,16 @@ impl ::prost::Name for TxEncodeAminoResponse { const NAME: &'static str = "TxEncodeAminoResponse"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.TxEncodeAminoResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.TxEncodeAminoResponse".into() } } /// 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")] @@ -732,14 +789,16 @@ impl ::prost::Name for TxDecodeAminoRequest { const NAME: &'static str = "TxDecodeAminoRequest"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.TxDecodeAminoRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.TxDecodeAminoRequest".into() } } /// 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")] @@ -749,7 +808,10 @@ impl ::prost::Name for TxDecodeAminoResponse { const NAME: &'static str = "TxDecodeAminoResponse"; const PACKAGE: &'static str = "cosmos.tx.v1beta1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos.tx.v1beta1.{}", Self::NAME) + "cosmos.tx.v1beta1.TxDecodeAminoResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos.tx.v1beta1.TxDecodeAminoResponse".into() } } /// OrderBy defines the sorting order @@ -771,9 +833,9 @@ impl OrderBy { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - OrderBy::Unspecified => "ORDER_BY_UNSPECIFIED", - OrderBy::Asc => "ORDER_BY_ASC", - OrderBy::Desc => "ORDER_BY_DESC", + Self::Unspecified => "ORDER_BY_UNSPECIFIED", + Self::Asc => "ORDER_BY_ASC", + Self::Desc => "ORDER_BY_DESC", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -810,10 +872,10 @@ impl BroadcastMode { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - BroadcastMode::Unspecified => "BROADCAST_MODE_UNSPECIFIED", - BroadcastMode::Block => "BROADCAST_MODE_BLOCK", - BroadcastMode::Sync => "BROADCAST_MODE_SYNC", - BroadcastMode::Async => "BROADCAST_MODE_ASYNC", + Self::Unspecified => "BROADCAST_MODE_UNSPECIFIED", + Self::Block => "BROADCAST_MODE_BLOCK", + Self::Sync => "BROADCAST_MODE_SYNC", + Self::Async => "BROADCAST_MODE_ASYNC", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -830,7 +892,13 @@ impl BroadcastMode { /// Generated client implementations. #[cfg(feature = "rpc")] pub mod service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Service defines a gRPC service for interacting with transactions. @@ -853,8 +921,8 @@ pub mod service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -879,7 +947,7 @@ pub mod service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { ServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -926,8 +994,7 @@ pub mod service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -949,8 +1016,7 @@ pub mod service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -975,8 +1041,7 @@ pub mod service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1001,8 +1066,7 @@ pub mod service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1029,8 +1093,7 @@ pub mod service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1057,8 +1120,7 @@ pub mod service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1085,8 +1147,7 @@ pub mod service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1113,8 +1174,7 @@ pub mod service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1141,8 +1201,7 @@ pub mod service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1160,11 +1219,17 @@ pub mod service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with ServiceServer. #[async_trait] - pub trait Service: Send + Sync + 'static { + pub trait Service: std::marker::Send + std::marker::Sync + 'static { /// Simulate simulates executing a transaction for estimating gas usage. async fn simulate( &self, @@ -1247,20 +1312,18 @@ pub mod service_server { } /// Service defines a gRPC service for interacting with transactions. #[derive(Debug)] - pub struct ServiceServer { - inner: _Inner, + pub struct ServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl ServiceServer { + impl ServiceServer { 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(), @@ -1310,8 +1373,8 @@ pub mod service_server { impl tonic::codegen::Service> for ServiceServer where T: Service, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -1323,7 +1386,6 @@ pub mod service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/cosmos.tx.v1beta1.Service/Simulate" => { #[allow(non_camel_case_types)] @@ -1352,7 +1414,6 @@ pub mod service_server { 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 = SimulateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1396,7 +1457,6 @@ pub mod service_server { 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 = GetTxSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1442,7 +1502,6 @@ pub mod service_server { 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 = BroadcastTxSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1488,7 +1547,6 @@ pub mod service_server { 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 = GetTxsEventSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1534,7 +1592,6 @@ pub mod service_server { 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 = GetBlockWithTxsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1578,7 +1635,6 @@ pub mod service_server { 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) @@ -1622,7 +1678,6 @@ pub mod service_server { 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) @@ -1668,7 +1723,6 @@ pub mod service_server { 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) @@ -1714,7 +1768,6 @@ pub mod service_server { 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) @@ -1733,20 +1786,25 @@ pub mod service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for ServiceServer { + impl Clone for ServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1758,17 +1816,9 @@ pub mod service_server { } } } - 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 ServiceServer { - const NAME: &'static str = "cosmos.tx.v1beta1.Service"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "cosmos.tx.v1beta1.Service"; + impl tonic::server::NamedService for ServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/cosmos_proto.rs b/crates/proto/src/gen/cosmos_proto.rs index 053c6d5266..9057ec92dd 100644 --- a/crates/proto/src/gen/cosmos_proto.rs +++ b/crates/proto/src/gen/cosmos_proto.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// InterfaceDescriptor describes an interface type to be used with /// accepts_interface and implements_interface and declared by declare_interface. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct InterfaceDescriptor { /// name is the name of the interface. It should be a short-name (without @@ -18,7 +18,10 @@ impl ::prost::Name for InterfaceDescriptor { const NAME: &'static str = "InterfaceDescriptor"; const PACKAGE: &'static str = "cosmos_proto"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos_proto.{}", Self::NAME) + "cosmos_proto.InterfaceDescriptor".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos_proto.InterfaceDescriptor".into() } } /// ScalarDescriptor describes an scalar type to be used with @@ -28,7 +31,6 @@ impl ::prost::Name for InterfaceDescriptor { /// Scalars should ideally define an encoding such that there is only one /// valid syntactical representation for a given semantic meaning, /// i.e. the encoding should be deterministic. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ScalarDescriptor { /// name is the name of the scalar. It should be a short-name (without @@ -53,7 +55,10 @@ impl ::prost::Name for ScalarDescriptor { const NAME: &'static str = "ScalarDescriptor"; const PACKAGE: &'static str = "cosmos_proto"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("cosmos_proto.{}", Self::NAME) + "cosmos_proto.ScalarDescriptor".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/cosmos_proto.ScalarDescriptor".into() } } #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] @@ -70,9 +75,9 @@ impl ScalarType { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - ScalarType::Unspecified => "SCALAR_TYPE_UNSPECIFIED", - ScalarType::String => "SCALAR_TYPE_STRING", - ScalarType::Bytes => "SCALAR_TYPE_BYTES", + Self::Unspecified => "SCALAR_TYPE_UNSPECIFIED", + Self::String => "SCALAR_TYPE_STRING", + Self::Bytes => "SCALAR_TYPE_BYTES", } } /// Creates an enum from field names used in the ProtoBuf definition. diff --git a/crates/proto/src/gen/google.api.rs b/crates/proto/src/gen/google.api.rs index 6655a2b5d5..04c0f1fcf1 100644 --- a/crates/proto/src/gen/google.api.rs +++ b/crates/proto/src/gen/google.api.rs @@ -1,7 +1,7 @@ +// This file is @generated by prost-build. /// Defines the HTTP configuration for an API service. It contains a list of /// \[HttpRule\]\[google.api.HttpRule\], each specifying the mapping of an RPC method /// to one or more HTTP REST API methods. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Http { /// A list of HTTP configuration rules that apply to individual API methods. @@ -22,7 +22,10 @@ impl ::prost::Name for Http { const NAME: &'static str = "Http"; const PACKAGE: &'static str = "google.api"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("google.api.{}", Self::NAME) + "google.api.Http".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/google.api.Http".into() } } /// # gRPC Transcoding @@ -307,7 +310,6 @@ impl ::prost::Name for Http { /// If an API needs to use a JSON array for request or response body, it can map /// the request or response body to a repeated field. However, some gRPC /// Transcoding implementations may not support this feature. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct HttpRule { /// Selects a method to which this rule applies. @@ -347,7 +349,6 @@ pub mod http_rule { /// Determines the URL pattern is matched by this rules. This pattern can be /// used with any of the {get|put|post|delete|patch} methods. A custom method /// can be defined using the 'custom' field. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Pattern { /// Maps to HTTP GET. Used for listing and getting information about @@ -378,11 +379,13 @@ impl ::prost::Name for HttpRule { const NAME: &'static str = "HttpRule"; const PACKAGE: &'static str = "google.api"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("google.api.{}", Self::NAME) + "google.api.HttpRule".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/google.api.HttpRule".into() } } /// A custom pattern is used for defining custom HTTP verb. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CustomHttpPattern { /// The name of this custom HTTP verb. @@ -396,6 +399,9 @@ impl ::prost::Name for CustomHttpPattern { const NAME: &'static str = "CustomHttpPattern"; const PACKAGE: &'static str = "google.api"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("google.api.{}", Self::NAME) + "google.api.CustomHttpPattern".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/google.api.CustomHttpPattern".into() } } diff --git a/crates/proto/src/gen/ibc.applications.transfer.v1.rs b/crates/proto/src/gen/ibc.applications.transfer.v1.rs index eb7e290e45..efd11eb84c 100644 --- a/crates/proto/src/gen/ibc.applications.transfer.v1.rs +++ b/crates/proto/src/gen/ibc.applications.transfer.v1.rs @@ -1,7 +1,14 @@ +// This file is @generated by prost-build. /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query provides defines the gRPC querier service. @@ -24,8 +31,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -50,7 +57,7 @@ pub mod query_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -101,8 +108,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -133,8 +139,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -165,8 +170,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -195,8 +199,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -227,8 +230,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -262,8 +264,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -286,11 +287,17 @@ pub mod query_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + 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 { + pub trait Query: std::marker::Send + std::marker::Sync + 'static { /// DenomTrace queries a denomination trace information. async fn denom_trace( &self, @@ -366,20 +373,18 @@ pub mod query_server { } /// Query provides defines the gRPC querier service. #[derive(Debug)] - pub struct QueryServer { - inner: _Inner, + pub struct QueryServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServer { + 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(), @@ -429,8 +434,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -442,7 +447,6 @@ pub mod query_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/ibc.applications.transfer.v1.Query/DenomTrace" => { #[allow(non_camel_case_types)] @@ -476,7 +480,6 @@ pub mod query_server { 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 = DenomTraceSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -525,7 +528,6 @@ pub mod query_server { 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 = DenomTracesSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -574,7 +576,6 @@ pub mod query_server { 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 = ParamsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -623,7 +624,6 @@ pub mod query_server { 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 = DenomHashSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -672,7 +672,6 @@ pub mod query_server { 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 = EscrowAddressSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -721,7 +720,6 @@ pub mod query_server { 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) @@ -740,20 +738,25 @@ pub mod query_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -765,17 +768,9 @@ pub mod query_server { } } } - 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 = "ibc.applications.transfer.v1.Query"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "ibc.applications.transfer.v1.Query"; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/ibc.core.channel.v1.rs b/crates/proto/src/gen/ibc.core.channel.v1.rs index bfc483f8af..19af5dec15 100644 --- a/crates/proto/src/gen/ibc.core.channel.v1.rs +++ b/crates/proto/src/gen/ibc.core.channel.v1.rs @@ -1,7 +1,14 @@ +// This file is @generated by prost-build. /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query provides defines the gRPC querier service @@ -24,8 +31,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -50,7 +57,7 @@ pub mod query_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -99,8 +106,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -127,8 +133,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -158,8 +163,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -191,8 +195,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -224,8 +227,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -256,8 +258,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -289,8 +290,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -322,8 +322,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -352,8 +351,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -385,8 +383,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -421,8 +418,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -454,8 +450,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -484,8 +479,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -516,8 +510,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -537,11 +530,17 @@ pub mod query_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + 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 { + pub trait Query: std::marker::Send + std::marker::Sync + 'static { /// Channel queries an IBC Channel. async fn channel( &self, @@ -717,20 +716,18 @@ pub mod query_server { } /// Query provides defines the gRPC querier service #[derive(Debug)] - pub struct QueryServer { - inner: _Inner, + pub struct QueryServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServer { + 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(), @@ -780,8 +777,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -793,7 +790,6 @@ pub mod query_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/ibc.core.channel.v1.Query/Channel" => { #[allow(non_camel_case_types)] @@ -827,7 +823,6 @@ pub mod query_server { 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 = ChannelSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -876,7 +871,6 @@ pub mod query_server { 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 = ChannelsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -925,7 +919,6 @@ pub mod query_server { 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 = ConnectionChannelsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -974,7 +967,6 @@ pub mod query_server { 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 = ChannelClientStateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1023,7 +1015,6 @@ pub mod query_server { 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 = ChannelConsensusStateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1072,7 +1063,6 @@ pub mod query_server { 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 = PacketCommitmentSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1121,7 +1111,6 @@ pub mod query_server { 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 = PacketCommitmentsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1170,7 +1159,6 @@ pub mod query_server { 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 = PacketReceiptSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1219,7 +1207,6 @@ pub mod query_server { 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 = PacketAcknowledgementSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1268,7 +1255,6 @@ pub mod query_server { 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 = PacketAcknowledgementsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1317,7 +1303,6 @@ pub mod query_server { 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 = UnreceivedPacketsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1366,7 +1351,6 @@ pub mod query_server { 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 = UnreceivedAcksSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1415,7 +1399,6 @@ pub mod query_server { 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 = NextSequenceReceiveSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1464,7 +1447,6 @@ pub mod query_server { 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) @@ -1483,20 +1465,25 @@ pub mod query_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1508,17 +1495,9 @@ pub mod query_server { } } } - 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 = "ibc.core.channel.v1.Query"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "ibc.core.channel.v1.Query"; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/ibc.core.client.v1.rs b/crates/proto/src/gen/ibc.core.client.v1.rs index aa8983788e..091eb96dec 100644 --- a/crates/proto/src/gen/ibc.core.client.v1.rs +++ b/crates/proto/src/gen/ibc.core.client.v1.rs @@ -1,7 +1,14 @@ +// This file is @generated by prost-build. /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query provides defines the gRPC querier service @@ -24,8 +31,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -50,7 +57,7 @@ pub mod query_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -101,8 +108,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -131,8 +137,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -162,8 +167,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -193,8 +197,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -223,8 +226,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -255,8 +257,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -285,8 +286,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -315,8 +315,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -347,8 +346,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -368,11 +366,17 @@ pub mod query_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + 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 { + pub trait Query: std::marker::Send + std::marker::Sync + 'static { /// ClientState queries an IBC light client. async fn client_state( &self, @@ -486,20 +490,18 @@ pub mod query_server { } /// Query provides defines the gRPC querier service #[derive(Debug)] - pub struct QueryServer { - inner: _Inner, + pub struct QueryServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServer { + 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(), @@ -549,8 +551,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -562,7 +564,6 @@ pub mod query_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/ibc.core.client.v1.Query/ClientState" => { #[allow(non_camel_case_types)] @@ -596,7 +597,6 @@ pub mod query_server { 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 = ClientStateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -645,7 +645,6 @@ pub mod query_server { 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 = ClientStatesSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -694,7 +693,6 @@ pub mod query_server { 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 = ConsensusStateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -743,7 +741,6 @@ pub mod query_server { 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 = ConsensusStatesSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -792,7 +789,6 @@ pub mod query_server { 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 = ConsensusStateHeightsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -841,7 +837,6 @@ pub mod query_server { 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 = ClientStatusSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -890,7 +885,6 @@ pub mod query_server { 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 = ClientParamsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -939,7 +933,6 @@ pub mod query_server { 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 = UpgradedClientStateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -989,7 +982,6 @@ pub mod query_server { 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 = UpgradedConsensusStateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1008,20 +1000,25 @@ pub mod query_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1033,17 +1030,9 @@ pub mod query_server { } } } - 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 = "ibc.core.client.v1.Query"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "ibc.core.client.v1.Query"; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/ibc.core.connection.v1.rs b/crates/proto/src/gen/ibc.core.connection.v1.rs index a9e9ad151d..24f8f6d06e 100644 --- a/crates/proto/src/gen/ibc.core.connection.v1.rs +++ b/crates/proto/src/gen/ibc.core.connection.v1.rs @@ -1,7 +1,14 @@ +// This file is @generated by prost-build. /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query provides defines the gRPC querier service @@ -24,8 +31,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -50,7 +57,7 @@ pub mod query_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -101,8 +108,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -131,8 +137,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -162,8 +167,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -195,8 +199,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -231,8 +234,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -266,8 +268,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -287,11 +288,17 @@ pub mod query_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + 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 { + pub trait Query: std::marker::Send + std::marker::Sync + 'static { /// Connection queries an IBC connection end. async fn connection( &self, @@ -370,20 +377,18 @@ pub mod query_server { } /// Query provides defines the gRPC querier service #[derive(Debug)] - pub struct QueryServer { - inner: _Inner, + pub struct QueryServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServer { + 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(), @@ -433,8 +438,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -446,7 +451,6 @@ pub mod query_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/ibc.core.connection.v1.Query/Connection" => { #[allow(non_camel_case_types)] @@ -480,7 +484,6 @@ pub mod query_server { 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 = ConnectionSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -529,7 +532,6 @@ pub mod query_server { 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 = ConnectionsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -578,7 +580,6 @@ pub mod query_server { 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 = ClientConnectionsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -627,7 +628,6 @@ pub mod query_server { 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 = ConnectionClientStateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -677,7 +677,6 @@ pub mod query_server { 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 = ConnectionConsensusStateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -726,7 +725,6 @@ pub mod query_server { 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 = ConnectionParamsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -745,20 +743,25 @@ pub mod query_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -770,17 +773,9 @@ pub mod query_server { } } } - 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 = "ibc.core.connection.v1.Query"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "ibc.core.connection.v1.Query"; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/noble.forwarding.v1.rs b/crates/proto/src/gen/noble.forwarding.v1.rs index 1bfadd3576..2d327011c7 100644 --- a/crates/proto/src/gen/noble.forwarding.v1.rs +++ b/crates/proto/src/gen/noble.forwarding.v1.rs @@ -1,4 +1,4 @@ -#[allow(clippy::derive_partial_eq_without_eq)] +// This file is @generated by prost-build. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ForwardingAccount { #[prost(message, optional, tag = "1")] @@ -16,10 +16,12 @@ impl ::prost::Name for ForwardingAccount { const NAME: &'static str = "ForwardingAccount"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.ForwardingAccount".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.ForwardingAccount".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ForwardingPubKey { #[prost(bytes = "vec", tag = "1")] @@ -29,10 +31,12 @@ impl ::prost::Name for ForwardingPubKey { const NAME: &'static str = "ForwardingPubKey"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.ForwardingPubKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.ForwardingPubKey".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisState { #[prost(map = "string, uint64", tag = "1")] @@ -55,10 +59,12 @@ impl ::prost::Name for GenesisState { const NAME: &'static str = "GenesisState"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.GenesisState".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.GenesisState".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RegisterAccountData { #[prost(string, tag = "1")] @@ -70,10 +76,12 @@ impl ::prost::Name for RegisterAccountData { const NAME: &'static str = "RegisterAccountData"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.RegisterAccountData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.RegisterAccountData".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RegisterAccountMemo { #[prost(message, optional, tag = "1")] @@ -81,7 +89,6 @@ pub struct RegisterAccountMemo { } /// Nested message and enum types in `RegisterAccountMemo`. pub mod register_account_memo { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RegisterAccountDataWrapper { #[prost(message, optional, tag = "1")] @@ -91,9 +98,10 @@ pub mod register_account_memo { const NAME: &'static str = "RegisterAccountDataWrapper"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "noble.forwarding.v1.RegisterAccountMemo.{}", Self::NAME - ) + "noble.forwarding.v1.RegisterAccountMemo.RegisterAccountDataWrapper".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.RegisterAccountMemo.RegisterAccountDataWrapper".into() } } } @@ -101,10 +109,12 @@ impl ::prost::Name for RegisterAccountMemo { const NAME: &'static str = "RegisterAccountMemo"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.RegisterAccountMemo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.RegisterAccountMemo".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAddress { #[prost(string, tag = "1")] @@ -116,10 +126,12 @@ impl ::prost::Name for QueryAddress { const NAME: &'static str = "QueryAddress"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.QueryAddress".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.QueryAddress".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryAddressResponse { #[prost(string, tag = "1")] @@ -131,20 +143,24 @@ impl ::prost::Name for QueryAddressResponse { const NAME: &'static str = "QueryAddressResponse"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.QueryAddressResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.QueryAddressResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct QueryStats {} impl ::prost::Name for QueryStats { const NAME: &'static str = "QueryStats"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.QueryStats".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.QueryStats".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryStatsResponse { #[prost(map = "string, message", tag = "1")] @@ -154,10 +170,12 @@ impl ::prost::Name for QueryStatsResponse { const NAME: &'static str = "QueryStatsResponse"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.QueryStatsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.QueryStatsResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryStatsByChannel { #[prost(string, tag = "1")] @@ -167,10 +185,12 @@ impl ::prost::Name for QueryStatsByChannel { const NAME: &'static str = "QueryStatsByChannel"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.QueryStatsByChannel".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.QueryStatsByChannel".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryStatsByChannelResponse { #[prost(uint64, tag = "1")] @@ -186,10 +206,12 @@ impl ::prost::Name for QueryStatsByChannelResponse { const NAME: &'static str = "QueryStatsByChannelResponse"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.QueryStatsByChannelResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.QueryStatsByChannelResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Stats { #[prost(string, tag = "1")] @@ -207,13 +229,22 @@ impl ::prost::Name for Stats { const NAME: &'static str = "Stats"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.Stats".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.Stats".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; #[derive(Debug, Clone)] @@ -235,8 +266,8 @@ pub mod query_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -261,7 +292,7 @@ pub mod query_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryClient::new(InterceptedService::new(inner, interceptor)) } @@ -307,8 +338,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -332,8 +362,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -357,8 +386,7 @@ pub mod query_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -376,11 +404,17 @@ pub mod query_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + 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 { + pub trait Query: std::marker::Send + std::marker::Sync + 'static { async fn address( &self, request: tonic::Request, @@ -404,20 +438,18 @@ pub mod query_server { >; } #[derive(Debug)] - pub struct QueryServer { - inner: _Inner, + pub struct QueryServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServer { + 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(), @@ -467,8 +499,8 @@ pub mod query_server { impl tonic::codegen::Service> for QueryServer where T: Query, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -480,7 +512,6 @@ pub mod query_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/noble.forwarding.v1.Query/Address" => { #[allow(non_camel_case_types)] @@ -509,7 +540,6 @@ pub mod query_server { 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 = AddressSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -553,7 +583,6 @@ pub mod query_server { 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 = StatsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -599,7 +628,6 @@ pub mod query_server { 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 = StatsByChannelSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -618,20 +646,25 @@ pub mod query_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServer { + impl Clone for QueryServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -643,21 +676,12 @@ pub mod query_server { } } } - 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 = "noble.forwarding.v1.Query"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "noble.forwarding.v1.Query"; + impl tonic::server::NamedService for QueryServer { + const NAME: &'static str = SERVICE_NAME; } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRegisterAccount { #[prost(string, tag = "1")] @@ -671,10 +695,12 @@ impl ::prost::Name for MsgRegisterAccount { const NAME: &'static str = "MsgRegisterAccount"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.MsgRegisterAccount".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.MsgRegisterAccount".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgRegisterAccountResponse { #[prost(string, tag = "1")] @@ -684,10 +710,12 @@ impl ::prost::Name for MsgRegisterAccountResponse { const NAME: &'static str = "MsgRegisterAccountResponse"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.MsgRegisterAccountResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.MsgRegisterAccountResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MsgClearAccount { #[prost(string, tag = "1")] @@ -699,23 +727,34 @@ impl ::prost::Name for MsgClearAccount { const NAME: &'static str = "MsgClearAccount"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.MsgClearAccount".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.MsgClearAccount".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct MsgClearAccountResponse {} impl ::prost::Name for MsgClearAccountResponse { const NAME: &'static str = "MsgClearAccountResponse"; const PACKAGE: &'static str = "noble.forwarding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("noble.forwarding.v1.{}", Self::NAME) + "noble.forwarding.v1.MsgClearAccountResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/noble.forwarding.v1.MsgClearAccountResponse".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod msg_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; #[derive(Debug, Clone)] @@ -737,8 +776,8 @@ pub mod msg_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -763,7 +802,7 @@ pub mod msg_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { MsgClient::new(InterceptedService::new(inner, interceptor)) } @@ -809,8 +848,7 @@ pub mod msg_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -834,8 +872,7 @@ pub mod msg_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -853,11 +890,17 @@ pub mod msg_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod msg_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + 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 { + pub trait Msg: std::marker::Send + std::marker::Sync + 'static { async fn register_account( &self, request: tonic::Request, @@ -874,20 +917,18 @@ pub mod msg_server { >; } #[derive(Debug)] - pub struct MsgServer { - inner: _Inner, + pub struct MsgServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl MsgServer { + 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(), @@ -937,8 +978,8 @@ pub mod msg_server { impl tonic::codegen::Service> for MsgServer where T: Msg, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -950,7 +991,6 @@ pub mod msg_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/noble.forwarding.v1.Msg/RegisterAccount" => { #[allow(non_camel_case_types)] @@ -979,7 +1019,6 @@ pub mod msg_server { 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 = RegisterAccountSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1023,7 +1062,6 @@ pub mod msg_server { 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 = ClearAccountSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1042,20 +1080,25 @@ pub mod msg_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for MsgServer { + impl Clone for MsgServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1067,17 +1110,9 @@ pub mod msg_server { } } } - 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 = "noble.forwarding.v1.Msg"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "noble.forwarding.v1.Msg"; + impl tonic::server::NamedService for MsgServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.cnidarium.v1.rs b/crates/proto/src/gen/penumbra.cnidarium.v1.rs index 7a04181967..858be10601 100644 --- a/crates/proto/src/gen/penumbra.cnidarium.v1.rs +++ b/crates/proto/src/gen/penumbra.cnidarium.v1.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// Performs a key-value query against the nonverifiable storage, /// using a byte-encoded key. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NonVerifiableKeyValueRequest { #[prost(message, optional, tag = "1")] @@ -8,7 +8,6 @@ pub struct NonVerifiableKeyValueRequest { } /// Nested message and enum types in `NonVerifiableKeyValueRequest`. pub mod non_verifiable_key_value_request { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Key { #[prost(bytes = "vec", tag = "1")] @@ -18,9 +17,10 @@ pub mod non_verifiable_key_value_request { const NAME: &'static str = "Key"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.cnidarium.v1.NonVerifiableKeyValueRequest.{}", Self::NAME - ) + "penumbra.cnidarium.v1.NonVerifiableKeyValueRequest.Key".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.NonVerifiableKeyValueRequest.Key".into() } } } @@ -28,10 +28,12 @@ impl ::prost::Name for NonVerifiableKeyValueRequest { const NAME: &'static str = "NonVerifiableKeyValueRequest"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.NonVerifiableKeyValueRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.NonVerifiableKeyValueRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NonVerifiableKeyValueResponse { /// The value corresponding to the specified key, if it was found. @@ -40,7 +42,6 @@ pub struct NonVerifiableKeyValueResponse { } /// Nested message and enum types in `NonVerifiableKeyValueResponse`. pub mod non_verifiable_key_value_response { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Value { #[prost(bytes = "vec", tag = "1")] @@ -50,9 +51,10 @@ pub mod non_verifiable_key_value_response { const NAME: &'static str = "Value"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.cnidarium.v1.NonVerifiableKeyValueResponse.{}", Self::NAME - ) + "penumbra.cnidarium.v1.NonVerifiableKeyValueResponse.Value".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.NonVerifiableKeyValueResponse.Value".into() } } } @@ -60,13 +62,15 @@ impl ::prost::Name for NonVerifiableKeyValueResponse { const NAME: &'static str = "NonVerifiableKeyValueResponse"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.NonVerifiableKeyValueResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.NonVerifiableKeyValueResponse".into() } } /// Performs a key-value query against the JMT, either by key or by key hash. /// /// Proofs are only supported by key. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct KeyValueRequest { /// If set, the key to fetch from storage. @@ -80,10 +84,12 @@ impl ::prost::Name for KeyValueRequest { const NAME: &'static str = "KeyValueRequest"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.KeyValueRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.KeyValueRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct KeyValueResponse { /// The value corresponding to the specified key, if it was found. @@ -97,7 +103,6 @@ pub struct KeyValueResponse { } /// Nested message and enum types in `KeyValueResponse`. pub mod key_value_response { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Value { #[prost(bytes = "vec", tag = "1")] @@ -107,9 +112,10 @@ pub mod key_value_response { const NAME: &'static str = "Value"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.cnidarium.v1.KeyValueResponse.{}", Self::NAME - ) + "penumbra.cnidarium.v1.KeyValueResponse.Value".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.KeyValueResponse.Value".into() } } } @@ -117,11 +123,13 @@ impl ::prost::Name for KeyValueResponse { const NAME: &'static str = "KeyValueResponse"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.KeyValueResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.KeyValueResponse".into() } } /// Performs a prefixed key-value query, by string prefix. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PrefixValueRequest { /// The prefix to fetch subkeys from storage. @@ -132,10 +140,12 @@ impl ::prost::Name for PrefixValueRequest { const NAME: &'static str = "PrefixValueRequest"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.PrefixValueRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.PrefixValueRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PrefixValueResponse { #[prost(string, tag = "1")] @@ -147,11 +157,13 @@ impl ::prost::Name for PrefixValueResponse { const NAME: &'static str = "PrefixValueResponse"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.PrefixValueResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.PrefixValueResponse".into() } } /// Requests a stream of new key-value pairs that have been committed to the state. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WatchRequest { /// A regex for keys in the verifiable storage. @@ -173,11 +185,13 @@ impl ::prost::Name for WatchRequest { const NAME: &'static str = "WatchRequest"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.WatchRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.WatchRequest".into() } } /// A key-value pair that has been committed to the state. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WatchResponse { /// The state version the key-value pair was committed at. @@ -190,7 +204,6 @@ pub struct WatchResponse { /// Nested message and enum types in `WatchResponse`. pub mod watch_response { /// Elements of the verifiable storage have string keys. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct KeyValue { #[prost(string, tag = "1")] @@ -206,11 +219,13 @@ pub mod watch_response { const NAME: &'static str = "KeyValue"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.WatchResponse.{}", Self::NAME) + "penumbra.cnidarium.v1.WatchResponse.KeyValue".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.WatchResponse.KeyValue".into() } } /// Elements of the nonverifiable storage have byte keys. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NvKeyValue { #[prost(bytes = "vec", tag = "1")] @@ -226,11 +241,13 @@ pub mod watch_response { const NAME: &'static str = "NvKeyValue"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.WatchResponse.{}", Self::NAME) + "penumbra.cnidarium.v1.WatchResponse.NvKeyValue".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.WatchResponse.NvKeyValue".into() } } /// The entry that was committed. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Entry { #[prost(message, tag = "5")] @@ -243,13 +260,22 @@ impl ::prost::Name for WatchResponse { const NAME: &'static str = "WatchResponse"; const PACKAGE: &'static str = "penumbra.cnidarium.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.cnidarium.v1.{}", Self::NAME) + "penumbra.cnidarium.v1.WatchResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.cnidarium.v1.WatchResponse".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; #[derive(Debug, Clone)] @@ -271,8 +297,8 @@ pub mod query_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -297,7 +323,7 @@ pub mod query_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -345,8 +371,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -374,8 +399,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -406,8 +430,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -434,8 +457,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -453,11 +475,17 @@ pub mod query_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] - pub trait QueryService: Send + Sync + 'static { + pub trait QueryService: std::marker::Send + std::marker::Sync + 'static { /// General-purpose key-value state query API, that can be used to query /// arbitrary keys in the JMT storage. async fn key_value( @@ -480,7 +508,7 @@ pub mod query_service_server { type PrefixValueStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// General-purpose prefixed key-value state query API, that can be used to query /// arbitrary prefixes in the JMT storage. @@ -495,7 +523,7 @@ pub mod query_service_server { type WatchStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Subscribes to a stream of key-value updates, with regex filtering on keys. async fn watch( @@ -504,20 +532,18 @@ pub mod query_service_server { ) -> std::result::Result, tonic::Status>; } #[derive(Debug)] - pub struct QueryServiceServer { - inner: _Inner, + pub struct QueryServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServiceServer { + impl QueryServiceServer { 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(), @@ -567,8 +593,8 @@ pub mod query_service_server { impl tonic::codegen::Service> for QueryServiceServer where T: QueryService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -580,7 +606,6 @@ pub mod query_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.cnidarium.v1.QueryService/KeyValue" => { #[allow(non_camel_case_types)] @@ -611,7 +636,6 @@ pub mod query_service_server { 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 = KeyValueSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -661,7 +685,6 @@ pub mod query_service_server { 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 = NonVerifiableKeyValueSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -708,7 +731,6 @@ pub mod query_service_server { 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 = PrefixValueSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -755,7 +777,6 @@ pub mod query_service_server { 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 = WatchSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -774,20 +795,25 @@ pub mod query_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServiceServer { + impl Clone for QueryServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -799,17 +825,9 @@ pub mod query_service_server { } } } - 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 QueryServiceServer { - const NAME: &'static str = "penumbra.cnidarium.v1.QueryService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.cnidarium.v1.QueryService"; + impl tonic::server::NamedService for QueryServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.cnidarium.v1.serde.rs b/crates/proto/src/gen/penumbra.cnidarium.v1.serde.rs index 8751e80e6e..6eea278b57 100644 --- a/crates/proto/src/gen/penumbra.cnidarium.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.cnidarium.v1.serde.rs @@ -236,6 +236,7 @@ impl serde::Serialize for key_value_response::Value { let mut struct_ser = serializer.serialize_struct("penumbra.cnidarium.v1.KeyValueResponse.Value", len)?; if !self.value.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("value", pbjson::private::base64::encode(&self.value).as_str())?; } struct_ser.end() @@ -429,6 +430,7 @@ impl serde::Serialize for non_verifiable_key_value_request::Key { let mut struct_ser = serializer.serialize_struct("penumbra.cnidarium.v1.NonVerifiableKeyValueRequest.Key", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -622,6 +624,7 @@ impl serde::Serialize for non_verifiable_key_value_response::Value { let mut struct_ser = serializer.serialize_struct("penumbra.cnidarium.v1.NonVerifiableKeyValueResponse.Value", len)?; if !self.value.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("value", pbjson::private::base64::encode(&self.value).as_str())?; } struct_ser.end() @@ -821,6 +824,7 @@ impl serde::Serialize for PrefixValueResponse { } if !self.value.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("value", pbjson::private::base64::encode(&self.value).as_str())?; } struct_ser.end() @@ -1047,6 +1051,7 @@ impl serde::Serialize for WatchResponse { let mut struct_ser = serializer.serialize_struct("penumbra.cnidarium.v1.WatchResponse", len)?; if self.version != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("version", ToString::to_string(&self.version).as_str())?; } if let Some(v) = self.entry.as_ref() { @@ -1187,6 +1192,7 @@ impl serde::Serialize for watch_response::KeyValue { } if !self.value.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("value", pbjson::private::base64::encode(&self.value).as_str())?; } if self.deleted { @@ -1316,10 +1322,12 @@ impl serde::Serialize for watch_response::NvKeyValue { let mut struct_ser = serializer.serialize_struct("penumbra.cnidarium.v1.WatchResponse.NvKeyValue", len)?; if !self.key.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("key", pbjson::private::base64::encode(&self.key).as_str())?; } if !self.value.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("value", pbjson::private::base64::encode(&self.value).as_str())?; } if self.deleted { diff --git a/crates/proto/src/gen/penumbra.core.app.v1.rs b/crates/proto/src/gen/penumbra.core.app.v1.rs index ced7c4b31f..5030d31632 100644 --- a/crates/proto/src/gen/penumbra.core.app.v1.rs +++ b/crates/proto/src/gen/penumbra.core.app.v1.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// Requests the list of all transactions that occurred within a given block. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct TransactionsByHeightRequest { /// The block height to retrieve. #[prost(uint64, tag = "2")] @@ -10,11 +10,13 @@ impl ::prost::Name for TransactionsByHeightRequest { const NAME: &'static str = "TransactionsByHeightRequest"; const PACKAGE: &'static str = "penumbra.core.app.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.app.v1.{}", Self::NAME) + "penumbra.core.app.v1.TransactionsByHeightRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.app.v1.TransactionsByHeightRequest".into() } } /// A transaction that appeared within a given block. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionsByHeightResponse { /// The transactions. @@ -30,10 +32,12 @@ impl ::prost::Name for TransactionsByHeightResponse { const NAME: &'static str = "TransactionsByHeightResponse"; const PACKAGE: &'static str = "penumbra.core.app.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.app.v1.{}", Self::NAME) + "penumbra.core.app.v1.TransactionsByHeightResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.app.v1.TransactionsByHeightResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AppParameters { /// The chain identifier. @@ -99,21 +103,25 @@ impl ::prost::Name for AppParameters { const NAME: &'static str = "AppParameters"; const PACKAGE: &'static str = "penumbra.core.app.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.app.v1.{}", Self::NAME) + "penumbra.core.app.v1.AppParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.app.v1.AppParameters".into() } } /// Requests the global configuration data for the app. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct AppParametersRequest {} impl ::prost::Name for AppParametersRequest { const NAME: &'static str = "AppParametersRequest"; const PACKAGE: &'static str = "penumbra.core.app.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.app.v1.{}", Self::NAME) + "penumbra.core.app.v1.AppParametersRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.app.v1.AppParametersRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AppParametersResponse { #[prost(message, optional, tag = "1")] @@ -123,10 +131,12 @@ impl ::prost::Name for AppParametersResponse { const NAME: &'static str = "AppParametersResponse"; const PACKAGE: &'static str = "penumbra.core.app.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.app.v1.{}", Self::NAME) + "penumbra.core.app.v1.AppParametersResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.app.v1.AppParametersResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisAppState { #[prost(oneof = "genesis_app_state::GenesisAppState", tags = "1, 2")] @@ -134,7 +144,6 @@ pub struct GenesisAppState { } /// Nested message and enum types in `GenesisAppState`. pub mod genesis_app_state { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum GenesisAppState { #[prost(message, tag = "1")] @@ -147,10 +156,12 @@ impl ::prost::Name for GenesisAppState { const NAME: &'static str = "GenesisAppState"; const PACKAGE: &'static str = "penumbra.core.app.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.app.v1.{}", Self::NAME) + "penumbra.core.app.v1.GenesisAppState".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.app.v1.GenesisAppState".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisContent { /// The initial chain identifier. @@ -216,13 +227,22 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.app.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.app.v1.{}", Self::NAME) + "penumbra.core.app.v1.GenesisContent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.app.v1.GenesisContent".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query operations for the overall Penumbra application. @@ -245,8 +265,8 @@ pub mod query_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -271,7 +291,7 @@ pub mod query_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -318,8 +338,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -346,8 +365,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -370,11 +388,17 @@ pub mod query_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] - pub trait QueryService: Send + Sync + 'static { + pub trait QueryService: std::marker::Send + std::marker::Sync + 'static { /// Gets the app parameters. async fn app_parameters( &self, @@ -394,20 +418,18 @@ pub mod query_service_server { } /// Query operations for the overall Penumbra application. #[derive(Debug)] - pub struct QueryServiceServer { - inner: _Inner, + pub struct QueryServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServiceServer { + impl QueryServiceServer { 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(), @@ -457,8 +479,8 @@ pub mod query_service_server { impl tonic::codegen::Service> for QueryServiceServer where T: QueryService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -470,7 +492,6 @@ pub mod query_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.core.app.v1.QueryService/AppParameters" => { #[allow(non_camel_case_types)] @@ -501,7 +522,6 @@ pub mod query_service_server { 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 = AppParametersSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -548,7 +568,6 @@ pub mod query_service_server { 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 = TransactionsByHeightSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -567,20 +586,25 @@ pub mod query_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServiceServer { + impl Clone for QueryServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -592,17 +616,9 @@ pub mod query_service_server { } } } - 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 QueryServiceServer { - const NAME: &'static str = "penumbra.core.app.v1.QueryService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.core.app.v1.QueryService"; + impl tonic::server::NamedService for QueryServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.core.app.v1.serde.rs b/crates/proto/src/gen/penumbra.core.app.v1.serde.rs index 9b910dd7fe..8f8c1b398e 100644 --- a/crates/proto/src/gen/penumbra.core.app.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.app.v1.serde.rs @@ -479,6 +479,7 @@ impl serde::Serialize for GenesisAppState { } genesis_app_state::GenesisAppState::GenesisCheckpoint(v) => { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("genesisCheckpoint", pbjson::private::base64::encode(&v).as_str())?; } } @@ -883,6 +884,7 @@ impl serde::Serialize for TransactionsByHeightRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.app.v1.TransactionsByHeightRequest", len)?; if self.block_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("blockHeight", ToString::to_string(&self.block_height).as_str())?; } struct_ser.end() @@ -988,6 +990,7 @@ impl serde::Serialize for TransactionsByHeightResponse { } if self.block_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("blockHeight", ToString::to_string(&self.block_height).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.core.asset.v1.rs b/crates/proto/src/gen/penumbra.core.asset.v1.rs index 9ec732783c..d1c10d0507 100644 --- a/crates/proto/src/gen/penumbra.core.asset.v1.rs +++ b/crates/proto/src/gen/penumbra.core.asset.v1.rs @@ -1,4 +1,4 @@ -#[allow(clippy::derive_partial_eq_without_eq)] +// This file is @generated by prost-build. #[derive(Clone, PartialEq, ::prost::Message)] pub struct BalanceCommitment { #[prost(bytes = "vec", tag = "1")] @@ -8,11 +8,13 @@ impl ::prost::Name for BalanceCommitment { const NAME: &'static str = "BalanceCommitment"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.{}", Self::NAME) + "penumbra.core.asset.v1.BalanceCommitment".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.BalanceCommitment".into() } } /// A Penumbra asset ID. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AssetId { /// The bytes of the asset ID. @@ -40,10 +42,12 @@ impl ::prost::Name for AssetId { const NAME: &'static str = "AssetId"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.{}", Self::NAME) + "penumbra.core.asset.v1.AssetId".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.AssetId".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Denom { #[prost(string, tag = "1")] @@ -53,11 +57,13 @@ impl ::prost::Name for Denom { const NAME: &'static str = "Denom"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.{}", Self::NAME) + "penumbra.core.asset.v1.Denom".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.Denom".into() } } /// Describes metadata about a given asset. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Metadata { #[prost(string, tag = "1")] @@ -98,11 +104,13 @@ impl ::prost::Name for Metadata { const NAME: &'static str = "Metadata"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.{}", Self::NAME) + "penumbra.core.asset.v1.Metadata".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.Metadata".into() } } /// DenomUnit represents a struct that describes a given denomination unit of the basic token. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DenomUnit { /// denom represents the string name of the given denom unit (e.g uatom). @@ -123,10 +131,12 @@ impl ::prost::Name for DenomUnit { const NAME: &'static str = "DenomUnit"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.{}", Self::NAME) + "penumbra.core.asset.v1.DenomUnit".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.DenomUnit".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Value { #[prost(message, optional, tag = "1")] @@ -138,11 +148,13 @@ impl ::prost::Name for Value { const NAME: &'static str = "Value"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.{}", Self::NAME) + "penumbra.core.asset.v1.Value".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.Value".into() } } /// Represents a value of a known or unknown denomination. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValueView { #[prost(oneof = "value_view::ValueView", tags = "1, 2")] @@ -151,7 +163,6 @@ pub struct ValueView { /// Nested message and enum types in `ValueView`. pub mod value_view { /// A value whose asset ID is known and has metadata. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct KnownAssetId { /// The amount of the value. @@ -179,11 +190,13 @@ pub mod value_view { const NAME: &'static str = "KnownAssetId"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.ValueView.{}", Self::NAME) + "penumbra.core.asset.v1.ValueView.KnownAssetId".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.ValueView.KnownAssetId".into() } } /// A value whose asset ID is unknown, with no metadata. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UnknownAssetId { #[prost(message, optional, tag = "1")] @@ -195,10 +208,12 @@ pub mod value_view { const NAME: &'static str = "UnknownAssetId"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.ValueView.{}", Self::NAME) + "penumbra.core.asset.v1.ValueView.UnknownAssetId".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.ValueView.UnknownAssetId".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum ValueView { #[prost(message, tag = "1")] @@ -211,11 +226,13 @@ impl ::prost::Name for ValueView { const NAME: &'static str = "ValueView"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.{}", Self::NAME) + "penumbra.core.asset.v1.ValueView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.ValueView".into() } } /// An image related to an asset. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AssetImage { /// The URI of the image in PNG format. @@ -229,7 +246,6 @@ pub struct AssetImage { } /// Nested message and enum types in `AssetImage`. pub mod asset_image { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Theme { /// Should be in hex format, `^#\[0-9a-fA-F\]{6}$`. @@ -244,7 +260,10 @@ pub mod asset_image { const NAME: &'static str = "Theme"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.AssetImage.{}", Self::NAME) + "penumbra.core.asset.v1.AssetImage.Theme".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.AssetImage.Theme".into() } } } @@ -252,13 +271,15 @@ impl ::prost::Name for AssetImage { const NAME: &'static str = "AssetImage"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.{}", Self::NAME) + "penumbra.core.asset.v1.AssetImage".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.AssetImage".into() } } /// The estimated price of one asset in terms of a numeraire. /// /// This is used for generating "equivalent values" in ValueViews. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EstimatedPrice { #[prost(message, optional, tag = "1")] @@ -278,7 +299,10 @@ impl ::prost::Name for EstimatedPrice { const NAME: &'static str = "EstimatedPrice"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.{}", Self::NAME) + "penumbra.core.asset.v1.EstimatedPrice".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.EstimatedPrice".into() } } /// An "equivalent" value to a given value, in terms of a numeraire. @@ -287,7 +311,6 @@ impl ::prost::Name for EstimatedPrice { /// stablecoin, or an amount of the staking token, etc. A view server can /// optionally include this information to assist a frontend in displaying /// information about the value in a user-friendly way. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EquivalentValue { /// The equivalent amount of the parent Value in terms of the numeraire. @@ -304,6 +327,9 @@ impl ::prost::Name for EquivalentValue { const NAME: &'static str = "EquivalentValue"; const PACKAGE: &'static str = "penumbra.core.asset.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.asset.v1.{}", Self::NAME) + "penumbra.core.asset.v1.EquivalentValue".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.asset.v1.EquivalentValue".into() } } diff --git a/crates/proto/src/gen/penumbra.core.asset.v1.serde.rs b/crates/proto/src/gen/penumbra.core.asset.v1.serde.rs index bf0faaf4d8..0e5b2493e6 100644 --- a/crates/proto/src/gen/penumbra.core.asset.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.asset.v1.serde.rs @@ -18,6 +18,7 @@ impl serde::Serialize for AssetId { let mut struct_ser = serializer.serialize_struct("penumbra.core.asset.v1.AssetId", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } if !self.alt_bech32m.is_empty() { @@ -406,6 +407,7 @@ impl serde::Serialize for BalanceCommitment { let mut struct_ser = serializer.serialize_struct("penumbra.core.asset.v1.BalanceCommitment", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -742,6 +744,7 @@ impl serde::Serialize for EquivalentValue { } if self.as_of_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("asOfHeight", ToString::to_string(&self.as_of_height).as_str())?; } struct_ser.end() @@ -882,6 +885,7 @@ impl serde::Serialize for EstimatedPrice { } if self.as_of_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("asOfHeight", ToString::to_string(&self.as_of_height).as_str())?; } struct_ser.end() @@ -1069,6 +1073,7 @@ impl serde::Serialize for Metadata { } if self.priority_score != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("priorityScore", ToString::to_string(&self.priority_score).as_str())?; } if !self.badges.is_empty() { diff --git a/crates/proto/src/gen/penumbra.core.component.auction.v1.rs b/crates/proto/src/gen/penumbra.core.component.auction.v1.rs index e490a73599..b3655eaf63 100644 --- a/crates/proto/src/gen/penumbra.core.component.auction.v1.rs +++ b/crates/proto/src/gen/penumbra.core.component.auction.v1.rs @@ -1,17 +1,19 @@ +// This file is @generated by prost-build. /// The configuration parameters for the auction component. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct AuctionParameters {} impl ::prost::Name for AuctionParameters { const NAME: &'static str = "AuctionParameters"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.AuctionParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.AuctionParameters".into() } } /// Genesis data for the auction component. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct GenesisContent { /// The configuration parameters for the auction component at genesis. #[prost(message, optional, tag = "1")] @@ -21,10 +23,12 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.GenesisContent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.GenesisContent".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuctionStateByIdRequest { #[prost(message, optional, tag = "1")] @@ -34,10 +38,12 @@ impl ::prost::Name for AuctionStateByIdRequest { const NAME: &'static str = "AuctionStateByIdRequest"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.AuctionStateByIdRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.AuctionStateByIdRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuctionStateByIdResponse { /// If present, the state of the auction. If not present, no such auction is known. @@ -53,10 +59,12 @@ impl ::prost::Name for AuctionStateByIdResponse { const NAME: &'static str = "AuctionStateByIdResponse"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.AuctionStateByIdResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.AuctionStateByIdResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuctionStateByIdsRequest { /// The auction IDs to request. Only known IDs will be returned in the response. @@ -67,10 +75,12 @@ impl ::prost::Name for AuctionStateByIdsRequest { const NAME: &'static str = "AuctionStateByIdsRequest"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.AuctionStateByIdsRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.AuctionStateByIdsRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuctionStateByIdsResponse { /// The auction ID of the returned auction. @@ -89,12 +99,14 @@ impl ::prost::Name for AuctionStateByIdsResponse { const NAME: &'static str = "AuctionStateByIdsResponse"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.AuctionStateByIdsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.AuctionStateByIdsResponse".into() } } /// A unique identifier for an auction, obtained from hashing a domain separator /// along with the immutable part of an auction description. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuctionId { #[prost(bytes = "vec", tag = "1")] @@ -104,11 +116,13 @@ impl ::prost::Name for AuctionId { const NAME: &'static str = "AuctionId"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.AuctionId".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.AuctionId".into() } } /// A bearer NFT tracking ownership of an auction and its proceeds. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuctionNft { #[prost(message, optional, tag = "1")] @@ -120,11 +134,13 @@ impl ::prost::Name for AuctionNft { const NAME: &'static str = "AuctionNft"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.AuctionNft".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.AuctionNft".into() } } /// Describes a Dutch auction using programmatic liquidity on the DEX. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DutchAuctionDescription { /// The value the seller wishes to auction. @@ -168,10 +184,12 @@ impl ::prost::Name for DutchAuctionDescription { const NAME: &'static str = "DutchAuctionDescription"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.DutchAuctionDescription".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.DutchAuctionDescription".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DutchAuctionState { /// The sequence number of the auction state. @@ -203,10 +221,12 @@ impl ::prost::Name for DutchAuctionState { const NAME: &'static str = "DutchAuctionState"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.DutchAuctionState".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.DutchAuctionState".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DutchAuction { /// The immutable data describing the auction and its auction ID. @@ -220,11 +240,13 @@ impl ::prost::Name for DutchAuction { const NAME: &'static str = "DutchAuction"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.DutchAuction".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.DutchAuction".into() } } /// Initiates a Dutch auction using protocol-controlled liquidity. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActionDutchAuctionSchedule { #[prost(message, optional, tag = "1")] @@ -234,11 +256,13 @@ impl ::prost::Name for ActionDutchAuctionSchedule { const NAME: &'static str = "ActionDutchAuctionSchedule"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.ActionDutchAuctionSchedule".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.ActionDutchAuctionSchedule".into() } } /// Terminate the auction associated with the specified `auction_id` -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActionDutchAuctionEnd { /// The auction to end. @@ -249,11 +273,13 @@ impl ::prost::Name for ActionDutchAuctionEnd { const NAME: &'static str = "ActionDutchAuctionEnd"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.ActionDutchAuctionEnd".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.ActionDutchAuctionEnd".into() } } /// Withdraw funds from the ended auction associated with the specified `auction_id` -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActionDutchAuctionWithdraw { /// The auction to withdraw funds from. @@ -276,11 +302,13 @@ impl ::prost::Name for ActionDutchAuctionWithdraw { const NAME: &'static str = "ActionDutchAuctionWithdraw"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.ActionDutchAuctionWithdraw".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.ActionDutchAuctionWithdraw".into() } } /// A plan to a `ActionDutchAuctionWithdraw` which contains both private and public data. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActionDutchAuctionWithdrawPlan { #[prost(message, optional, tag = "1")] @@ -296,11 +324,13 @@ impl ::prost::Name for ActionDutchAuctionWithdrawPlan { const NAME: &'static str = "ActionDutchAuctionWithdrawPlan"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.ActionDutchAuctionWithdrawPlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.ActionDutchAuctionWithdrawPlan".into() } } /// An `ActionDutchAuctionSchedule` augmented with additional metadata. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActionDutchAuctionScheduleView { #[prost(message, optional, tag = "1")] @@ -318,11 +348,13 @@ impl ::prost::Name for ActionDutchAuctionScheduleView { const NAME: &'static str = "ActionDutchAuctionScheduleView"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.ActionDutchAuctionScheduleView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.ActionDutchAuctionScheduleView".into() } } /// An `ActionDutchAuctionWithdraw` augmented with additional metadata. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActionDutchAuctionWithdrawView { #[prost(message, optional, tag = "1")] @@ -336,10 +368,12 @@ impl ::prost::Name for ActionDutchAuctionWithdrawView { const NAME: &'static str = "ActionDutchAuctionWithdrawView"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.ActionDutchAuctionWithdrawView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.ActionDutchAuctionWithdrawView".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventDutchAuctionScheduled { #[prost(message, optional, tag = "1")] @@ -351,10 +385,12 @@ impl ::prost::Name for EventDutchAuctionScheduled { const NAME: &'static str = "EventDutchAuctionScheduled"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.EventDutchAuctionScheduled".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.EventDutchAuctionScheduled".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventDutchAuctionUpdated { #[prost(message, optional, tag = "1")] @@ -366,10 +402,12 @@ impl ::prost::Name for EventDutchAuctionUpdated { const NAME: &'static str = "EventDutchAuctionUpdated"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.EventDutchAuctionUpdated".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.EventDutchAuctionUpdated".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventDutchAuctionEnded { #[prost(message, optional, tag = "1")] @@ -410,10 +448,10 @@ pub mod event_dutch_auction_ended { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - Reason::Unspecified => "REASON_UNSPECIFIED", - Reason::Expired => "REASON_EXPIRED", - Reason::Filled => "REASON_FILLED", - Reason::ClosedByOwner => "REASON_CLOSED_BY_OWNER", + Self::Unspecified => "REASON_UNSPECIFIED", + Self::Expired => "REASON_EXPIRED", + Self::Filled => "REASON_FILLED", + Self::ClosedByOwner => "REASON_CLOSED_BY_OWNER", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -432,10 +470,12 @@ impl ::prost::Name for EventDutchAuctionEnded { const NAME: &'static str = "EventDutchAuctionEnded"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.EventDutchAuctionEnded".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.EventDutchAuctionEnded".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventDutchAuctionWithdrawn { #[prost(message, optional, tag = "1")] @@ -447,11 +487,13 @@ impl ::prost::Name for EventDutchAuctionWithdrawn { const NAME: &'static str = "EventDutchAuctionWithdrawn"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.EventDutchAuctionWithdrawn".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.EventDutchAuctionWithdrawn".into() } } /// A message emitted when value flows *into* the auction component. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventValueCircuitBreakerCredit { /// The asset ID being deposited into the Auction component. @@ -468,11 +510,13 @@ impl ::prost::Name for EventValueCircuitBreakerCredit { const NAME: &'static str = "EventValueCircuitBreakerCredit"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.EventValueCircuitBreakerCredit".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.EventValueCircuitBreakerCredit".into() } } /// A message emitted when value flows *out* of the auction component. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventValueCircuitBreakerDebit { /// The asset ID being deposited into the Auction component. @@ -489,13 +533,22 @@ impl ::prost::Name for EventValueCircuitBreakerDebit { const NAME: &'static str = "EventValueCircuitBreakerDebit"; const PACKAGE: &'static str = "penumbra.core.component.auction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.auction.v1.{}", Self::NAME) + "penumbra.core.component.auction.v1.EventValueCircuitBreakerDebit".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.auction.v1.EventValueCircuitBreakerDebit".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query operations for the auction component. @@ -518,8 +571,8 @@ pub mod query_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -544,7 +597,7 @@ pub mod query_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -591,8 +644,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -622,8 +674,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -646,11 +697,17 @@ pub mod query_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] - pub trait QueryService: Send + Sync + 'static { + pub trait QueryService: std::marker::Send + std::marker::Sync + 'static { /// Get the current state of an auction by ID. async fn auction_state_by_id( &self, @@ -666,7 +723,7 @@ pub mod query_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Get the current state of a group of auctions by ID. async fn auction_state_by_ids( @@ -679,20 +736,18 @@ pub mod query_service_server { } /// Query operations for the auction component. #[derive(Debug)] - pub struct QueryServiceServer { - inner: _Inner, + pub struct QueryServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServiceServer { + impl QueryServiceServer { 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(), @@ -742,8 +797,8 @@ pub mod query_service_server { impl tonic::codegen::Service> for QueryServiceServer where T: QueryService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -755,7 +810,6 @@ pub mod query_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.core.component.auction.v1.QueryService/AuctionStateById" => { #[allow(non_camel_case_types)] @@ -787,7 +841,6 @@ pub mod query_service_server { 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 = AuctionStateByIdSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -836,7 +889,6 @@ pub mod query_service_server { 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 = AuctionStateByIdsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -855,20 +907,25 @@ pub mod query_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServiceServer { + impl Clone for QueryServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -880,17 +937,9 @@ pub mod query_service_server { } } } - 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 QueryServiceServer { - const NAME: &'static str = "penumbra.core.component.auction.v1.QueryService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.core.component.auction.v1.QueryService"; + impl tonic::server::NamedService for QueryServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.core.component.auction.v1.serde.rs b/crates/proto/src/gen/penumbra.core.component.auction.v1.serde.rs index d9fa61ccf8..56aae8af10 100644 --- a/crates/proto/src/gen/penumbra.core.component.auction.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.auction.v1.serde.rs @@ -361,6 +361,7 @@ impl serde::Serialize for ActionDutchAuctionWithdraw { } if self.seq != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("seq", ToString::to_string(&self.seq).as_str())?; } if let Some(v) = self.reserves_commitment.as_ref() { @@ -498,6 +499,7 @@ impl serde::Serialize for ActionDutchAuctionWithdrawPlan { } if self.seq != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("seq", ToString::to_string(&self.seq).as_str())?; } if let Some(v) = self.reserves_input.as_ref() { @@ -750,6 +752,7 @@ impl serde::Serialize for AuctionId { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.auction.v1.AuctionId", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -854,6 +857,7 @@ impl serde::Serialize for AuctionNft { } if self.seq != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("seq", ToString::to_string(&self.seq).as_str())?; } struct_ser.end() @@ -1611,18 +1615,22 @@ impl serde::Serialize for DutchAuctionDescription { } if self.start_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startHeight", ToString::to_string(&self.start_height).as_str())?; } if self.end_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("endHeight", ToString::to_string(&self.end_height).as_str())?; } if self.step_count != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("stepCount", ToString::to_string(&self.step_count).as_str())?; } if !self.nonce.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("nonce", pbjson::private::base64::encode(&self.nonce).as_str())?; } struct_ser.end() @@ -1822,6 +1830,7 @@ impl serde::Serialize for DutchAuctionState { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.auction.v1.DutchAuctionState", len)?; if self.seq != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("seq", ToString::to_string(&self.seq).as_str())?; } if let Some(v) = self.current_position.as_ref() { @@ -1829,6 +1838,7 @@ impl serde::Serialize for DutchAuctionState { } if self.next_trigger != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("nextTrigger", ToString::to_string(&self.next_trigger).as_str())?; } if let Some(v) = self.input_reserves.as_ref() { diff --git a/crates/proto/src/gen/penumbra.core.component.community_pool.v1.rs b/crates/proto/src/gen/penumbra.core.component.community_pool.v1.rs index 98e2df1748..aa173ad4d0 100644 --- a/crates/proto/src/gen/penumbra.core.component.community_pool.v1.rs +++ b/crates/proto/src/gen/penumbra.core.component.community_pool.v1.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// CommunityPool parameter data. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct CommunityPoolParameters { /// Whether Community Pool spend proposals are enabled. #[prost(bool, tag = "1")] @@ -10,13 +10,13 @@ impl ::prost::Name for CommunityPoolParameters { const NAME: &'static str = "CommunityPoolParameters"; const PACKAGE: &'static str = "penumbra.core.component.community_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.community_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.community_pool.v1.CommunityPoolParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.community_pool.v1.CommunityPoolParameters".into() } } /// CommunityPool genesis state. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisContent { /// CommunityPool parameters. @@ -30,13 +30,13 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.component.community_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.community_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.community_pool.v1.GenesisContent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.community_pool.v1.GenesisContent".into() } } /// Requests the list of all asset balances associated with the Community Pool. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CommunityPoolAssetBalancesRequest { /// (Optional): The specific asset balances to retrieve, if excluded all will be returned. @@ -47,13 +47,15 @@ impl ::prost::Name for CommunityPoolAssetBalancesRequest { const NAME: &'static str = "CommunityPoolAssetBalancesRequest"; const PACKAGE: &'static str = "penumbra.core.component.community_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.community_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.community_pool.v1.CommunityPoolAssetBalancesRequest" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.community_pool.v1.CommunityPoolAssetBalancesRequest" + .into() } } /// The Community Pool's balance of a single asset. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CommunityPoolAssetBalancesResponse { /// The balance for a single asset. @@ -64,15 +66,24 @@ impl ::prost::Name for CommunityPoolAssetBalancesResponse { const NAME: &'static str = "CommunityPoolAssetBalancesResponse"; const PACKAGE: &'static str = "penumbra.core.component.community_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.community_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.community_pool.v1.CommunityPoolAssetBalancesResponse" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.community_pool.v1.CommunityPoolAssetBalancesResponse" + .into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query operations for the community_pool component. @@ -95,8 +106,8 @@ pub mod query_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -121,7 +132,7 @@ pub mod query_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -169,8 +180,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -193,11 +203,17 @@ pub mod query_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] - pub trait QueryService: Send + Sync + 'static { + pub trait QueryService: std::marker::Send + std::marker::Sync + 'static { /// Server streaming response type for the CommunityPoolAssetBalances method. type CommunityPoolAssetBalancesStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result< @@ -205,7 +221,7 @@ pub mod query_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; async fn community_pool_asset_balances( &self, @@ -217,20 +233,18 @@ pub mod query_service_server { } /// Query operations for the community_pool component. #[derive(Debug)] - pub struct QueryServiceServer { - inner: _Inner, + pub struct QueryServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServiceServer { + impl QueryServiceServer { 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(), @@ -280,8 +294,8 @@ pub mod query_service_server { impl tonic::codegen::Service> for QueryServiceServer where T: QueryService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -293,7 +307,6 @@ pub mod query_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.core.component.community_pool.v1.QueryService/CommunityPoolAssetBalances" => { #[allow(non_camel_case_types)] @@ -332,7 +345,6 @@ pub mod query_service_server { 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 = CommunityPoolAssetBalancesSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -351,20 +363,25 @@ pub mod query_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServiceServer { + impl Clone for QueryServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -376,17 +393,9 @@ pub mod query_service_server { } } } - 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 QueryServiceServer { - const NAME: &'static str = "penumbra.core.component.community_pool.v1.QueryService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.core.component.community_pool.v1.QueryService"; + impl tonic::server::NamedService for QueryServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.core.component.compact_block.v1.rs b/crates/proto/src/gen/penumbra.core.component.compact_block.v1.rs index 08d2c5abf6..4c637af38c 100644 --- a/crates/proto/src/gen/penumbra.core.component.compact_block.v1.rs +++ b/crates/proto/src/gen/penumbra.core.component.compact_block.v1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// Contains the minimum data needed to update client state. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CompactBlock { #[prost(uint64, tag = "1")] @@ -50,13 +50,13 @@ impl ::prost::Name for CompactBlock { const NAME: &'static str = "CompactBlock"; const PACKAGE: &'static str = "penumbra.core.component.compact_block.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.compact_block.v1.{}", Self::NAME - ) + "penumbra.core.component.compact_block.v1.CompactBlock".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.compact_block.v1.CompactBlock".into() } } /// An encrypted payload, corresponding to a single commitment in the state commitment tree. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct StatePayload { /// The source of the payload, if known. @@ -68,7 +68,6 @@ pub struct StatePayload { } /// Nested message and enum types in `StatePayload`. pub mod state_payload { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RolledUp { #[prost(message, optional, tag = "1")] @@ -80,12 +79,12 @@ pub mod state_payload { const NAME: &'static str = "RolledUp"; const PACKAGE: &'static str = "penumbra.core.component.compact_block.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.compact_block.v1.StatePayload.{}", Self::NAME - ) + "penumbra.core.component.compact_block.v1.StatePayload.RolledUp".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.compact_block.v1.StatePayload.RolledUp".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Note { #[prost(message, optional, tag = "2")] @@ -97,12 +96,12 @@ pub mod state_payload { const NAME: &'static str = "Note"; const PACKAGE: &'static str = "penumbra.core.component.compact_block.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.compact_block.v1.StatePayload.{}", Self::NAME - ) + "penumbra.core.component.compact_block.v1.StatePayload.Note".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.compact_block.v1.StatePayload.Note".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Swap { #[prost(message, optional, tag = "2")] @@ -112,13 +111,13 @@ pub mod state_payload { const NAME: &'static str = "Swap"; const PACKAGE: &'static str = "penumbra.core.component.compact_block.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.compact_block.v1.StatePayload.{}", Self::NAME - ) + "penumbra.core.component.compact_block.v1.StatePayload.Swap".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.compact_block.v1.StatePayload.Swap".into() } } /// The state payload itself. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum StatePayload { #[prost(message, tag = "2")] @@ -133,14 +132,14 @@ impl ::prost::Name for StatePayload { const NAME: &'static str = "StatePayload"; const PACKAGE: &'static str = "penumbra.core.component.compact_block.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.compact_block.v1.{}", Self::NAME - ) + "penumbra.core.component.compact_block.v1.StatePayload".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.compact_block.v1.StatePayload".into() } } /// Requests a range of compact block data. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct CompactBlockRangeRequest { /// The start height of the range. #[prost(uint64, tag = "2")] @@ -157,12 +156,12 @@ impl ::prost::Name for CompactBlockRangeRequest { const NAME: &'static str = "CompactBlockRangeRequest"; const PACKAGE: &'static str = "penumbra.core.component.compact_block.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.compact_block.v1.{}", Self::NAME - ) + "penumbra.core.component.compact_block.v1.CompactBlockRangeRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.compact_block.v1.CompactBlockRangeRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CompactBlockRangeResponse { #[prost(message, optional, tag = "1")] @@ -172,13 +171,13 @@ impl ::prost::Name for CompactBlockRangeResponse { const NAME: &'static str = "CompactBlockRangeResponse"; const PACKAGE: &'static str = "penumbra.core.component.compact_block.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.compact_block.v1.{}", Self::NAME - ) + "penumbra.core.component.compact_block.v1.CompactBlockRangeResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.compact_block.v1.CompactBlockRangeResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct CompactBlockRequest { #[prost(uint64, tag = "1")] pub height: u64, @@ -187,12 +186,12 @@ impl ::prost::Name for CompactBlockRequest { const NAME: &'static str = "CompactBlockRequest"; const PACKAGE: &'static str = "penumbra.core.component.compact_block.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.compact_block.v1.{}", Self::NAME - ) + "penumbra.core.component.compact_block.v1.CompactBlockRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.compact_block.v1.CompactBlockRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CompactBlockResponse { #[prost(message, optional, tag = "1")] @@ -202,15 +201,22 @@ impl ::prost::Name for CompactBlockResponse { const NAME: &'static str = "CompactBlockResponse"; const PACKAGE: &'static str = "penumbra.core.component.compact_block.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.compact_block.v1.{}", Self::NAME - ) + "penumbra.core.component.compact_block.v1.CompactBlockResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.compact_block.v1.CompactBlockResponse".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query operations for the compact block component. @@ -233,8 +239,8 @@ pub mod query_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -259,7 +265,7 @@ pub mod query_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -306,8 +312,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -339,8 +344,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -363,11 +367,17 @@ pub mod query_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] - pub trait QueryService: Send + Sync + 'static { + pub trait QueryService: std::marker::Send + std::marker::Sync + 'static { /// Server streaming response type for the CompactBlockRange method. type CompactBlockRangeStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result< @@ -375,7 +385,7 @@ pub mod query_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Returns a stream of compact blocks, optionally keeping the stream alive for push notifications. async fn compact_block_range( @@ -398,20 +408,18 @@ pub mod query_service_server { } /// Query operations for the compact block component. #[derive(Debug)] - pub struct QueryServiceServer { - inner: _Inner, + pub struct QueryServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServiceServer { + impl QueryServiceServer { 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(), @@ -461,8 +469,8 @@ pub mod query_service_server { impl tonic::codegen::Service> for QueryServiceServer where T: QueryService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -474,7 +482,6 @@ pub mod query_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.core.component.compact_block.v1.QueryService/CompactBlockRange" => { #[allow(non_camel_case_types)] @@ -508,7 +515,6 @@ pub mod query_service_server { 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 = CompactBlockRangeSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -554,7 +560,6 @@ pub mod query_service_server { 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 = CompactBlockSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -573,20 +578,25 @@ pub mod query_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServiceServer { + impl Clone for QueryServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -598,17 +608,9 @@ pub mod query_service_server { } } } - 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 QueryServiceServer { - const NAME: &'static str = "penumbra.core.component.compact_block.v1.QueryService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.core.component.compact_block.v1.QueryService"; + impl tonic::server::NamedService for QueryServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.core.component.compact_block.v1.serde.rs b/crates/proto/src/gen/penumbra.core.component.compact_block.v1.serde.rs index 0f4dee3282..70d2530169 100644 --- a/crates/proto/src/gen/penumbra.core.component.compact_block.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.compact_block.v1.serde.rs @@ -45,6 +45,7 @@ impl serde::Serialize for CompactBlock { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.compact_block.v1.CompactBlock", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } if !self.state_payloads.is_empty() { @@ -79,6 +80,7 @@ impl serde::Serialize for CompactBlock { } if self.epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epochIndex", ToString::to_string(&self.epoch_index).as_str())?; } struct_ser.end() @@ -316,10 +318,12 @@ impl serde::Serialize for CompactBlockRangeRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.compact_block.v1.CompactBlockRangeRequest", len)?; if self.start_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startHeight", ToString::to_string(&self.start_height).as_str())?; } if self.end_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("endHeight", ToString::to_string(&self.end_height).as_str())?; } if self.keep_alive { @@ -544,6 +548,7 @@ impl serde::Serialize for CompactBlockRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.compact_block.v1.CompactBlockRequest", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.core.component.dex.v1.rs b/crates/proto/src/gen/penumbra.core.component.dex.v1.rs index 3878535c9e..4b907234c2 100644 --- a/crates/proto/src/gen/penumbra.core.component.dex.v1.rs +++ b/crates/proto/src/gen/penumbra.core.component.dex.v1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// A Penumbra ZK swap proof. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ZkSwapProof { #[prost(bytes = "vec", tag = "1")] @@ -9,11 +9,13 @@ impl ::prost::Name for ZkSwapProof { const NAME: &'static str = "ZKSwapProof"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.ZKSwapProof".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.ZKSwapProof".into() } } /// A Penumbra ZK swap claim proof. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ZkSwapClaimProof { #[prost(bytes = "vec", tag = "1")] @@ -23,11 +25,13 @@ impl ::prost::Name for ZkSwapClaimProof { const NAME: &'static str = "ZKSwapClaimProof"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.ZKSwapClaimProof".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.ZKSwapClaimProof".into() } } /// A transaction action that submits a swap to the dex. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Swap { /// Contains the Swap proof. @@ -41,14 +45,16 @@ impl ::prost::Name for Swap { const NAME: &'static str = "Swap"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.Swap".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.Swap".into() } } /// A transaction action that obtains assets previously confirmed /// via a Swap transaction. Does not include a spend authorization /// signature, as it is only capable of consuming the NFT from a /// Swap transaction. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapClaim { /// Contains the SwapClaim proof. @@ -65,11 +71,13 @@ impl ::prost::Name for SwapClaim { const NAME: &'static str = "SwapClaim"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapClaim".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapClaim".into() } } /// Encapsulates the authorized fields of the SwapClaim action, used in signing. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapClaimBody { /// The nullifier for the Swap commitment to be consumed. @@ -96,11 +104,13 @@ impl ::prost::Name for SwapClaimBody { const NAME: &'static str = "SwapClaimBody"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapClaimBody".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapClaimBody".into() } } /// The authorized data of a Swap transaction. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapBody { /// The trading pair to swap. @@ -128,10 +138,12 @@ impl ::prost::Name for SwapBody { const NAME: &'static str = "SwapBody"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapBody".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapBody".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapPayload { #[prost(message, optional, tag = "1")] @@ -145,10 +157,12 @@ impl ::prost::Name for SwapPayload { const NAME: &'static str = "SwapPayload"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapPayload".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapPayload".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapPlaintext { /// The trading pair to swap. @@ -174,10 +188,12 @@ impl ::prost::Name for SwapPlaintext { const NAME: &'static str = "SwapPlaintext"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapPlaintext".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapPlaintext".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapPlan { /// The plaintext version of the swap to be performed. @@ -197,10 +213,12 @@ impl ::prost::Name for SwapPlan { const NAME: &'static str = "SwapPlan"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapPlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapPlan".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapClaimPlan { /// The plaintext version of the swap to be performed. @@ -226,10 +244,12 @@ impl ::prost::Name for SwapClaimPlan { const NAME: &'static str = "SwapClaimPlan"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapClaimPlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapClaimPlan".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapView { #[prost(oneof = "swap_view::SwapView", tags = "1, 2")] @@ -237,7 +257,6 @@ pub struct SwapView { } /// Nested message and enum types in `SwapView`. pub mod swap_view { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Visible { /// The underlying Swap action being viewed. @@ -295,12 +314,12 @@ pub mod swap_view { const NAME: &'static str = "Visible"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.dex.v1.SwapView.{}", Self::NAME - ) + "penumbra.core.component.dex.v1.SwapView.Visible".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapView.Visible".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Opaque { #[prost(message, optional, tag = "1")] @@ -345,12 +364,12 @@ pub mod swap_view { const NAME: &'static str = "Opaque"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.dex.v1.SwapView.{}", Self::NAME - ) + "penumbra.core.component.dex.v1.SwapView.Opaque".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapView.Opaque".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum SwapView { #[prost(message, tag = "1")] @@ -363,10 +382,12 @@ impl ::prost::Name for SwapView { const NAME: &'static str = "SwapView"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapView".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapClaimView { #[prost(oneof = "swap_claim_view::SwapClaimView", tags = "1, 2")] @@ -374,7 +395,6 @@ pub struct SwapClaimView { } /// Nested message and enum types in `SwapClaimView`. pub mod swap_claim_view { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Visible { #[prost(message, optional, tag = "1")] @@ -401,12 +421,12 @@ pub mod swap_claim_view { const NAME: &'static str = "Visible"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.dex.v1.SwapClaimView.{}", Self::NAME - ) + "penumbra.core.component.dex.v1.SwapClaimView.Visible".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapClaimView.Visible".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Opaque { #[prost(message, optional, tag = "1")] @@ -416,12 +436,12 @@ pub mod swap_claim_view { const NAME: &'static str = "Opaque"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.dex.v1.SwapClaimView.{}", Self::NAME - ) + "penumbra.core.component.dex.v1.SwapClaimView.Opaque".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapClaimView.Opaque".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum SwapClaimView { #[prost(message, tag = "1")] @@ -434,13 +454,15 @@ impl ::prost::Name for SwapClaimView { const NAME: &'static str = "SwapClaimView"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapClaimView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapClaimView".into() } } /// Holds two asset IDs. Ordering doesn't reflect trading direction. Instead, we /// require `asset_1 < asset_2` as field elements, to ensure a canonical /// representation of an unordered pair. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TradingPair { /// The first asset of the pair. @@ -454,12 +476,14 @@ impl ::prost::Name for TradingPair { const NAME: &'static str = "TradingPair"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.TradingPair".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.TradingPair".into() } } /// Encodes a trading pair starting from asset `start` /// and ending on asset `end`. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DirectedTradingPair { /// The start asset of the pair. @@ -473,14 +497,16 @@ impl ::prost::Name for DirectedTradingPair { const NAME: &'static str = "DirectedTradingPair"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.DirectedTradingPair".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.DirectedTradingPair".into() } } /// Records the result of a batch swap on-chain. /// /// Used as a public input to a swap claim proof, as it implies the effective /// clearing price for the batch. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BatchSwapOutputData { /// The total amount of asset 1 that was input to the batch swap. @@ -519,14 +545,16 @@ impl ::prost::Name for BatchSwapOutputData { const NAME: &'static str = "BatchSwapOutputData"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.BatchSwapOutputData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.BatchSwapOutputData".into() } } /// The trading function for a specific pair. /// For a pair (asset_1, asset_2), a trading function is defined by: /// `phi(R) = p*R_1 + q*R_2` and `gamma = 1 - fee`. /// The trading function is frequently referred to as "phi". -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TradingFunction { #[prost(message, optional, tag = "1")] @@ -538,7 +566,10 @@ impl ::prost::Name for TradingFunction { const NAME: &'static str = "TradingFunction"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.TradingFunction".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.TradingFunction".into() } } /// The minimum amount of data describing a trading function. @@ -546,8 +577,7 @@ impl ::prost::Name for TradingFunction { /// This implicitly treats the trading function as being between assets 1 and 2, /// without specifying what those assets are, to avoid duplicating data (each /// asset ID alone is twice the size of the trading function). -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct BareTradingFunction { #[prost(uint32, tag = "1")] pub fee: u32, @@ -562,7 +592,10 @@ impl ::prost::Name for BareTradingFunction { const NAME: &'static str = "BareTradingFunction"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.BareTradingFunction".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.BareTradingFunction".into() } } /// The reserves of a position. @@ -571,8 +604,7 @@ impl ::prost::Name for BareTradingFunction { /// between assets 1 and 2, without specifying what those assets are, to avoid /// duplicating data (each asset ID alone is four times the size of the /// reserves). -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Reserves { #[prost(message, optional, tag = "1")] pub r1: ::core::option::Option, @@ -583,11 +615,13 @@ impl ::prost::Name for Reserves { const NAME: &'static str = "Reserves"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.Reserves".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.Reserves".into() } } /// Data identifying a position. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Position { #[prost(message, optional, tag = "1")] @@ -612,11 +646,13 @@ impl ::prost::Name for Position { const NAME: &'static str = "Position"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.Position".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.Position".into() } } /// A hash of a `Position`. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PositionId { /// The bytes of the position ID. @@ -636,12 +672,14 @@ impl ::prost::Name for PositionId { const NAME: &'static str = "PositionId"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.PositionId".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.PositionId".into() } } /// The state of a position. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct PositionState { #[prost(enumeration = "position_state::PositionStateEnum", tag = "1")] pub state: i32, @@ -689,11 +727,11 @@ pub mod position_state { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - PositionStateEnum::Unspecified => "POSITION_STATE_ENUM_UNSPECIFIED", - PositionStateEnum::Opened => "POSITION_STATE_ENUM_OPENED", - PositionStateEnum::Closed => "POSITION_STATE_ENUM_CLOSED", - PositionStateEnum::Withdrawn => "POSITION_STATE_ENUM_WITHDRAWN", - PositionStateEnum::Claimed => "POSITION_STATE_ENUM_CLAIMED", + Self::Unspecified => "POSITION_STATE_ENUM_UNSPECIFIED", + Self::Opened => "POSITION_STATE_ENUM_OPENED", + Self::Closed => "POSITION_STATE_ENUM_CLOSED", + Self::Withdrawn => "POSITION_STATE_ENUM_WITHDRAWN", + Self::Claimed => "POSITION_STATE_ENUM_CLAIMED", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -713,7 +751,10 @@ impl ::prost::Name for PositionState { const NAME: &'static str = "PositionState"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.PositionState".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.PositionState".into() } } /// An LPNFT tracking both ownership and state of a position. @@ -731,7 +772,6 @@ impl ::prost::Name for PositionState { /// require any cryptographic implementation (proofs, signatures, etc), other /// than hooking into the value commitment mechanism used for transaction /// balances. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct LpNft { #[prost(message, optional, tag = "1")] @@ -743,14 +783,16 @@ impl ::prost::Name for LpNft { const NAME: &'static str = "LpNft"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.LpNft".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.LpNft".into() } } /// A transaction action that opens a new position. /// /// This action's contribution to the transaction's value balance is to consume /// the initial reserves and contribute an opened position NFT. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PositionOpen { /// Contains the data defining the position, sufficient to compute its `PositionId`. @@ -764,7 +806,10 @@ impl ::prost::Name for PositionOpen { const NAME: &'static str = "PositionOpen"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.PositionOpen".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.PositionOpen".into() } } /// A transaction action that closes a position. @@ -776,7 +821,6 @@ impl ::prost::Name for PositionOpen { /// transactions (like any ZK transaction model) are early-binding: the prover /// must know the state transition they prove knowledge of, and they cannot know /// the final reserves with certainty until after the position has been deactivated. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PositionClose { #[prost(message, optional, tag = "1")] @@ -786,7 +830,10 @@ impl ::prost::Name for PositionClose { const NAME: &'static str = "PositionClose"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.PositionClose".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.PositionClose".into() } } /// A transaction action that withdraws funds from a closed position. @@ -794,7 +841,6 @@ impl ::prost::Name for PositionClose { /// This action's contribution to the transaction's value balance is to consume a /// closed position NFT and contribute a withdrawn position NFT, as well as all /// of the funds that were in the position at the time of closing. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PositionWithdraw { #[prost(message, optional, tag = "1")] @@ -816,11 +862,13 @@ impl ::prost::Name for PositionWithdraw { const NAME: &'static str = "PositionWithdraw"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.PositionWithdraw".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.PositionWithdraw".into() } } /// Deprecated. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PositionRewardClaim { #[prost(message, optional, tag = "1")] @@ -834,11 +882,13 @@ impl ::prost::Name for PositionRewardClaim { const NAME: &'static str = "PositionRewardClaim"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.PositionRewardClaim".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.PositionRewardClaim".into() } } /// Contains the entire execution of a particular swap. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapExecution { #[prost(message, repeated, tag = "1")] @@ -853,7 +903,6 @@ pub struct SwapExecution { /// Nested message and enum types in `SwapExecution`. pub mod swap_execution { /// Contains all individual steps consisting of a trade trace. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Trace { /// Each step in the trade trace. @@ -866,9 +915,10 @@ pub mod swap_execution { const NAME: &'static str = "Trace"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.dex.v1.SwapExecution.{}", Self::NAME - ) + "penumbra.core.component.dex.v1.SwapExecution.Trace".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapExecution.Trace".into() } } } @@ -876,11 +926,13 @@ impl ::prost::Name for SwapExecution { const NAME: &'static str = "SwapExecution"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapExecution".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapExecution".into() } } /// Contains private and public data for withdrawing funds from a closed position. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PositionWithdrawPlan { #[prost(message, optional, tag = "1")] @@ -900,12 +952,14 @@ impl ::prost::Name for PositionWithdrawPlan { const NAME: &'static str = "PositionWithdrawPlan"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.PositionWithdrawPlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.PositionWithdrawPlan".into() } } /// Deprecated. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct PositionRewardClaimPlan { #[prost(message, optional, tag = "1")] pub reserves: ::core::option::Option, @@ -914,11 +968,13 @@ impl ::prost::Name for PositionRewardClaimPlan { const NAME: &'static str = "PositionRewardClaimPlan"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.PositionRewardClaimPlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.PositionRewardClaimPlan".into() } } /// Requests batch swap data associated with a given height and trading pair from the view service. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BatchSwapOutputDataRequest { #[prost(uint64, tag = "2")] @@ -930,10 +986,12 @@ impl ::prost::Name for BatchSwapOutputDataRequest { const NAME: &'static str = "BatchSwapOutputDataRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.BatchSwapOutputDataRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.BatchSwapOutputDataRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BatchSwapOutputDataResponse { #[prost(message, optional, tag = "1")] @@ -943,10 +1001,12 @@ impl ::prost::Name for BatchSwapOutputDataResponse { const NAME: &'static str = "BatchSwapOutputDataResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.BatchSwapOutputDataResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.BatchSwapOutputDataResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapExecutionRequest { #[prost(uint64, tag = "2")] @@ -958,10 +1018,12 @@ impl ::prost::Name for SwapExecutionRequest { const NAME: &'static str = "SwapExecutionRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapExecutionRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapExecutionRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapExecutionResponse { #[prost(message, optional, tag = "1")] @@ -971,11 +1033,13 @@ impl ::prost::Name for SwapExecutionResponse { const NAME: &'static str = "SwapExecutionResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapExecutionResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapExecutionResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ArbExecutionRequest { #[prost(uint64, tag = "2")] pub height: u64, @@ -984,10 +1048,12 @@ impl ::prost::Name for ArbExecutionRequest { const NAME: &'static str = "ArbExecutionRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.ArbExecutionRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.ArbExecutionRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ArbExecutionResponse { #[prost(message, optional, tag = "1")] @@ -999,10 +1065,12 @@ impl ::prost::Name for ArbExecutionResponse { const NAME: &'static str = "ArbExecutionResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.ArbExecutionResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.ArbExecutionResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapExecutionsRequest { /// If present, only return swap executions occurring after the given height. @@ -1019,10 +1087,12 @@ impl ::prost::Name for SwapExecutionsRequest { const NAME: &'static str = "SwapExecutionsRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapExecutionsRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapExecutionsRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapExecutionsResponse { #[prost(message, optional, tag = "1")] @@ -1036,11 +1106,13 @@ impl ::prost::Name for SwapExecutionsResponse { const NAME: &'static str = "SwapExecutionsResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SwapExecutionsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SwapExecutionsResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ArbExecutionsRequest { /// If present, only return arb executions occurring after the given height. #[prost(uint64, tag = "2")] @@ -1053,10 +1125,12 @@ impl ::prost::Name for ArbExecutionsRequest { const NAME: &'static str = "ArbExecutionsRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.ArbExecutionsRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.ArbExecutionsRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ArbExecutionsResponse { #[prost(message, optional, tag = "1")] @@ -1068,11 +1142,13 @@ impl ::prost::Name for ArbExecutionsResponse { const NAME: &'static str = "ArbExecutionsResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.ArbExecutionsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.ArbExecutionsResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct LiquidityPositionsRequest { /// If true, include closed and withdrawn positions. #[prost(bool, tag = "4")] @@ -1082,10 +1158,12 @@ impl ::prost::Name for LiquidityPositionsRequest { const NAME: &'static str = "LiquidityPositionsRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.LiquidityPositionsRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.LiquidityPositionsRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct LiquidityPositionsResponse { #[prost(message, optional, tag = "1")] @@ -1095,10 +1173,12 @@ impl ::prost::Name for LiquidityPositionsResponse { const NAME: &'static str = "LiquidityPositionsResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.LiquidityPositionsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.LiquidityPositionsResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct LiquidityPositionByIdRequest { #[prost(message, optional, tag = "2")] @@ -1108,10 +1188,12 @@ impl ::prost::Name for LiquidityPositionByIdRequest { const NAME: &'static str = "LiquidityPositionByIdRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.LiquidityPositionByIdRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.LiquidityPositionByIdRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct LiquidityPositionByIdResponse { #[prost(message, optional, tag = "1")] @@ -1121,10 +1203,12 @@ impl ::prost::Name for LiquidityPositionByIdResponse { const NAME: &'static str = "LiquidityPositionByIdResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.LiquidityPositionByIdResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.LiquidityPositionByIdResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct LiquidityPositionsByIdRequest { #[prost(message, repeated, tag = "2")] @@ -1134,10 +1218,12 @@ impl ::prost::Name for LiquidityPositionsByIdRequest { const NAME: &'static str = "LiquidityPositionsByIdRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.LiquidityPositionsByIdRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.LiquidityPositionsByIdRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct LiquidityPositionsByIdResponse { #[prost(message, optional, tag = "1")] @@ -1147,10 +1233,12 @@ impl ::prost::Name for LiquidityPositionsByIdResponse { const NAME: &'static str = "LiquidityPositionsByIdResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.LiquidityPositionsByIdResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.LiquidityPositionsByIdResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct LiquidityPositionsByPriceRequest { /// The directed trading pair to request positions for @@ -1164,10 +1252,12 @@ impl ::prost::Name for LiquidityPositionsByPriceRequest { const NAME: &'static str = "LiquidityPositionsByPriceRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.LiquidityPositionsByPriceRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.LiquidityPositionsByPriceRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct LiquidityPositionsByPriceResponse { #[prost(message, optional, tag = "1")] @@ -1179,10 +1269,12 @@ impl ::prost::Name for LiquidityPositionsByPriceResponse { const NAME: &'static str = "LiquidityPositionsByPriceResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.LiquidityPositionsByPriceResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.LiquidityPositionsByPriceResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SpreadRequest { #[prost(message, optional, tag = "2")] @@ -1192,10 +1284,12 @@ impl ::prost::Name for SpreadRequest { const NAME: &'static str = "SpreadRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SpreadRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SpreadRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SpreadResponse { /// The best position when trading 1 => 2. @@ -1215,10 +1309,12 @@ impl ::prost::Name for SpreadResponse { const NAME: &'static str = "SpreadResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SpreadResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SpreadResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SimulateTradeRequest { #[prost(message, optional, tag = "1")] @@ -1230,42 +1326,42 @@ pub struct SimulateTradeRequest { } /// Nested message and enum types in `SimulateTradeRequest`. pub mod simulate_trade_request { - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Routing { #[prost(oneof = "routing::Setting", tags = "1, 2")] pub setting: ::core::option::Option, } /// Nested message and enum types in `Routing`. pub mod routing { - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct SingleHop {} impl ::prost::Name for SingleHop { const NAME: &'static str = "SingleHop"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.dex.v1.SimulateTradeRequest.Routing.{}", - Self::NAME - ) + "penumbra.core.component.dex.v1.SimulateTradeRequest.Routing.SingleHop" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SimulateTradeRequest.Routing.SingleHop" + .into() } } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Default {} impl ::prost::Name for Default { const NAME: &'static str = "Default"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.dex.v1.SimulateTradeRequest.Routing.{}", - Self::NAME - ) + "penumbra.core.component.dex.v1.SimulateTradeRequest.Routing.Default" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SimulateTradeRequest.Routing.Default" + .into() } } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Oneof)] + #[derive(Clone, Copy, PartialEq, ::prost::Oneof)] pub enum Setting { #[prost(message, tag = "1")] Default(Default), @@ -1277,9 +1373,10 @@ pub mod simulate_trade_request { const NAME: &'static str = "Routing"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.dex.v1.SimulateTradeRequest.{}", Self::NAME - ) + "penumbra.core.component.dex.v1.SimulateTradeRequest.Routing".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SimulateTradeRequest.Routing".into() } } } @@ -1287,10 +1384,12 @@ impl ::prost::Name for SimulateTradeRequest { const NAME: &'static str = "SimulateTradeRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SimulateTradeRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SimulateTradeRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SimulateTradeResponse { #[prost(message, optional, tag = "1")] @@ -1303,10 +1402,12 @@ impl ::prost::Name for SimulateTradeResponse { const NAME: &'static str = "SimulateTradeResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.SimulateTradeResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.SimulateTradeResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventSwap { /// The trading pair to swap. @@ -1328,10 +1429,12 @@ impl ::prost::Name for EventSwap { const NAME: &'static str = "EventSwap"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.EventSwap".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.EventSwap".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventSwapClaim { /// The trading pair that is subject of the swap claim. @@ -1355,10 +1458,12 @@ impl ::prost::Name for EventSwapClaim { const NAME: &'static str = "EventSwapClaim"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.EventSwapClaim".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.EventSwapClaim".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventPositionOpen { /// Position ID. @@ -1387,10 +1492,12 @@ impl ::prost::Name for EventPositionOpen { const NAME: &'static str = "EventPositionOpen"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.EventPositionOpen".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.EventPositionOpen".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventPositionClose { /// The ID of the closed position @@ -1401,10 +1508,12 @@ impl ::prost::Name for EventPositionClose { const NAME: &'static str = "EventPositionClose"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.EventPositionClose".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.EventPositionClose".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventQueuePositionClose { /// The ID of the position queued that is closed for closure. @@ -1415,10 +1524,12 @@ impl ::prost::Name for EventQueuePositionClose { const NAME: &'static str = "EventQueuePositionClose"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.EventQueuePositionClose".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.EventQueuePositionClose".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventPositionWithdraw { /// The ID of the withdrawn position. @@ -1441,10 +1552,12 @@ impl ::prost::Name for EventPositionWithdraw { const NAME: &'static str = "EventPositionWithdraw"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.EventPositionWithdraw".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.EventPositionWithdraw".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventPositionExecution { /// The ID of the position executed against. @@ -1473,10 +1586,12 @@ impl ::prost::Name for EventPositionExecution { const NAME: &'static str = "EventPositionExecution"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.EventPositionExecution".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.EventPositionExecution".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventBatchSwap { /// The BatchSwapOutputData containing the results of the batch swap. @@ -1493,10 +1608,12 @@ impl ::prost::Name for EventBatchSwap { const NAME: &'static str = "EventBatchSwap"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.EventBatchSwap".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.EventBatchSwap".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventArbExecution { /// The height at which the arb execution occurred. @@ -1510,11 +1627,13 @@ impl ::prost::Name for EventArbExecution { const NAME: &'static str = "EventArbExecution"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.EventArbExecution".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.EventArbExecution".into() } } /// Indicates that value was added to the DEX. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventValueCircuitBreakerCredit { /// The asset ID being deposited into the DEX. @@ -1531,11 +1650,13 @@ impl ::prost::Name for EventValueCircuitBreakerCredit { const NAME: &'static str = "EventValueCircuitBreakerCredit"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.EventValueCircuitBreakerCredit".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.EventValueCircuitBreakerCredit".into() } } /// Indicates that value is leaving the DEX. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventValueCircuitBreakerDebit { /// The asset ID being deposited into the DEX. @@ -1552,14 +1673,16 @@ impl ::prost::Name for EventValueCircuitBreakerDebit { const NAME: &'static str = "EventValueCircuitBreakerDebit"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.EventValueCircuitBreakerDebit".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.EventValueCircuitBreakerDebit".into() } } /// Emitted whenever there's non-empty candlestick data for a particular pair. /// /// Beware: if there's no activity on a given pair, there's no guarantee /// that a candlestick will be emitted. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventCandlestickData { /// The pair the candlestick is for. @@ -1573,10 +1696,12 @@ impl ::prost::Name for EventCandlestickData { const NAME: &'static str = "EventCandlestickData"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.EventCandlestickData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.EventCandlestickData".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DexParameters { /// Whether or not the DEX is enabled. @@ -1604,10 +1729,12 @@ impl ::prost::Name for DexParameters { const NAME: &'static str = "DexParameters"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.DexParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.DexParameters".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisContent { /// The initial parameters for the DEX. @@ -1618,11 +1745,13 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.GenesisContent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.GenesisContent".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct CandlestickData { /// The height of the candlestick data. #[prost(uint64, tag = "1")] @@ -1650,10 +1779,12 @@ impl ::prost::Name for CandlestickData { const NAME: &'static str = "CandlestickData"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.CandlestickData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.CandlestickData".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CandlestickDataRequest { /// The directed trading pair to request candlestick data for. @@ -1678,10 +1809,12 @@ impl ::prost::Name for CandlestickDataRequest { const NAME: &'static str = "CandlestickDataRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.CandlestickDataRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.CandlestickDataRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CandlestickDataResponse { /// The candlestick data points. @@ -1692,10 +1825,12 @@ impl ::prost::Name for CandlestickDataResponse { const NAME: &'static str = "CandlestickDataResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.CandlestickDataResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.CandlestickDataResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CandlestickDataStreamRequest { /// The directed trading pair to subscribe to. @@ -1706,11 +1841,13 @@ impl ::prost::Name for CandlestickDataStreamRequest { const NAME: &'static str = "CandlestickDataStreamRequest"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.CandlestickDataStreamRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.CandlestickDataStreamRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct CandlestickDataStreamResponse { /// The candlestick data point. #[prost(message, optional, tag = "1")] @@ -1720,13 +1857,22 @@ impl ::prost::Name for CandlestickDataStreamResponse { const NAME: &'static str = "CandlestickDataStreamResponse"; const PACKAGE: &'static str = "penumbra.core.component.dex.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dex.v1.{}", Self::NAME) + "penumbra.core.component.dex.v1.CandlestickDataStreamResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.dex.v1.CandlestickDataStreamResponse".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query operations for the DEX component. @@ -1749,8 +1895,8 @@ pub mod query_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -1775,7 +1921,7 @@ pub mod query_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -1822,8 +1968,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1853,8 +1998,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1884,8 +2028,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1915,8 +2058,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1946,8 +2088,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1977,8 +2118,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2010,8 +2150,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2043,8 +2182,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2076,8 +2214,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2107,8 +2244,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2140,8 +2276,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2173,8 +2308,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2197,7 +2331,13 @@ pub mod query_service_client { /// Generated client implementations. #[cfg(feature = "rpc")] pub mod simulation_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Simulation for the DEX component. @@ -2224,8 +2364,8 @@ pub mod simulation_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -2250,7 +2390,7 @@ pub mod simulation_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { SimulationServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -2297,8 +2437,7 @@ pub mod simulation_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2321,11 +2460,17 @@ pub mod simulation_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] - pub trait QueryService: Send + Sync + 'static { + pub trait QueryService: std::marker::Send + std::marker::Sync + 'static { /// Get the batch clearing prices for a specific block height and trading pair. async fn batch_swap_output_data( &self, @@ -2354,7 +2499,7 @@ pub mod query_service_server { type SwapExecutionsStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Stream all swap executions over a range of heights, optionally subscribing to future executions. async fn swap_executions( @@ -2368,7 +2513,7 @@ pub mod query_service_server { type ArbExecutionsStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Stream all arbitrage executions over a range of heights, optionally subscribing to future executions. async fn arb_executions( @@ -2385,7 +2530,7 @@ pub mod query_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Query all liquidity positions on the DEX. async fn liquidity_positions( @@ -2412,7 +2557,7 @@ pub mod query_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Query multiple liquidity positions by ID. async fn liquidity_positions_by_id( @@ -2429,7 +2574,7 @@ pub mod query_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Query liquidity positions on a specific pair, sorted by effective price. async fn liquidity_positions_by_price( @@ -2464,7 +2609,7 @@ pub mod query_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Subscribe to candlestick data updates. async fn candlestick_data_stream( @@ -2477,20 +2622,18 @@ pub mod query_service_server { } /// Query operations for the DEX component. #[derive(Debug)] - pub struct QueryServiceServer { - inner: _Inner, + pub struct QueryServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServiceServer { + impl QueryServiceServer { 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(), @@ -2540,8 +2683,8 @@ pub mod query_service_server { impl tonic::codegen::Service> for QueryServiceServer where T: QueryService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -2553,7 +2696,6 @@ pub mod query_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.core.component.dex.v1.QueryService/BatchSwapOutputData" => { #[allow(non_camel_case_types)] @@ -2585,7 +2727,6 @@ pub mod query_service_server { 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 = BatchSwapOutputDataSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2631,7 +2772,6 @@ pub mod query_service_server { 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 = SwapExecutionSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2677,7 +2817,6 @@ pub mod query_service_server { 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 = ArbExecutionSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2724,7 +2863,6 @@ pub mod query_service_server { 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 = SwapExecutionsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2771,7 +2909,6 @@ pub mod query_service_server { 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 = ArbExecutionsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2820,7 +2957,6 @@ pub mod query_service_server { 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 = LiquidityPositionsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2870,7 +3006,6 @@ pub mod query_service_server { 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 = LiquidityPositionByIdSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2922,7 +3057,6 @@ pub mod query_service_server { 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 = LiquidityPositionsByIdSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2976,7 +3110,6 @@ pub mod query_service_server { 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 = LiquidityPositionsByPriceSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3022,7 +3155,6 @@ pub mod query_service_server { 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 = SpreadSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3068,7 +3200,6 @@ pub mod query_service_server { 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 = CandlestickDataSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3120,7 +3251,6 @@ pub mod query_service_server { 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 = CandlestickDataStreamSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3139,20 +3269,25 @@ pub mod query_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServiceServer { + impl Clone for QueryServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -3164,28 +3299,26 @@ pub mod query_service_server { } } } - 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 QueryServiceServer { - const NAME: &'static str = "penumbra.core.component.dex.v1.QueryService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.core.component.dex.v1.QueryService"; + impl tonic::server::NamedService for QueryServiceServer { + const NAME: &'static str = SERVICE_NAME; } } /// Generated server implementations. #[cfg(feature = "rpc")] pub mod simulation_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with SimulationServiceServer. #[async_trait] - pub trait SimulationService: Send + Sync + 'static { + pub trait SimulationService: std::marker::Send + std::marker::Sync + 'static { /// Simulate routing and trade execution. async fn simulate_trade( &self, @@ -3201,20 +3334,18 @@ pub mod simulation_service_server { /// simple read query from the state. Thus it poses greater DoS risks, and node /// operators may want to enable it separately. #[derive(Debug)] - pub struct SimulationServiceServer { - inner: _Inner, + pub struct SimulationServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl SimulationServiceServer { + impl SimulationServiceServer { 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(), @@ -3264,8 +3395,8 @@ pub mod simulation_service_server { impl tonic::codegen::Service> for SimulationServiceServer where T: SimulationService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -3277,7 +3408,6 @@ pub mod simulation_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.core.component.dex.v1.SimulationService/SimulateTrade" => { #[allow(non_camel_case_types)] @@ -3309,7 +3439,6 @@ pub mod simulation_service_server { 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 = SimulateTradeSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3328,20 +3457,25 @@ pub mod simulation_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for SimulationServiceServer { + impl Clone for SimulationServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -3353,18 +3487,9 @@ pub mod simulation_service_server { } } } - 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 SimulationServiceServer { - const NAME: &'static str = "penumbra.core.component.dex.v1.SimulationService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.core.component.dex.v1.SimulationService"; + impl tonic::server::NamedService for SimulationServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.core.component.dex.v1.serde.rs b/crates/proto/src/gen/penumbra.core.component.dex.v1.serde.rs index cb4fbff28d..e15c31793c 100644 --- a/crates/proto/src/gen/penumbra.core.component.dex.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.dex.v1.serde.rs @@ -12,6 +12,7 @@ impl serde::Serialize for ArbExecutionRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1.ArbExecutionRequest", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } struct_ser.end() @@ -116,6 +117,7 @@ impl serde::Serialize for ArbExecutionResponse { } if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } struct_ser.end() @@ -229,10 +231,12 @@ impl serde::Serialize for ArbExecutionsRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1.ArbExecutionsRequest", len)?; if self.start_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startHeight", ToString::to_string(&self.start_height).as_str())?; } if self.end_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("endHeight", ToString::to_string(&self.end_height).as_str())?; } struct_ser.end() @@ -352,6 +356,7 @@ impl serde::Serialize for ArbExecutionsResponse { } if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } struct_ser.end() @@ -638,6 +643,7 @@ impl serde::Serialize for BatchSwapOutputData { } if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } if let Some(v) = self.trading_pair.as_ref() { @@ -645,10 +651,12 @@ impl serde::Serialize for BatchSwapOutputData { } if self.epoch_starting_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epochStartingHeight", ToString::to_string(&self.epoch_starting_height).as_str())?; } if self.sct_position_prefix != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("sctPositionPrefix", ToString::to_string(&self.sct_position_prefix).as_str())?; } struct_ser.end() @@ -862,6 +870,7 @@ impl serde::Serialize for BatchSwapOutputDataRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1.BatchSwapOutputDataRequest", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } if let Some(v) = self.trading_pair.as_ref() { @@ -1088,6 +1097,7 @@ impl serde::Serialize for CandlestickData { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1.CandlestickData", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } if self.open != 0. { @@ -1293,10 +1303,12 @@ impl serde::Serialize for CandlestickDataRequest { } if self.limit != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("limit", ToString::to_string(&self.limit).as_str())?; } if self.start_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startHeight", ToString::to_string(&self.start_height).as_str())?; } struct_ser.end() @@ -1994,6 +2006,7 @@ impl serde::Serialize for EventArbExecution { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1.EventArbExecution", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } if let Some(v) = self.swap_execution.as_ref() { @@ -2861,6 +2874,7 @@ impl serde::Serialize for EventPositionWithdraw { } if self.sequence != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("sequence", ToString::to_string(&self.sequence).as_str())?; } struct_ser.end() @@ -4150,6 +4164,7 @@ impl serde::Serialize for LiquidityPositionsByPriceRequest { } if self.limit != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("limit", ToString::to_string(&self.limit).as_str())?; } struct_ser.end() @@ -4691,6 +4706,7 @@ impl serde::Serialize for Position { } if !self.nonce.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("nonce", pbjson::private::base64::encode(&self.nonce).as_str())?; } if let Some(v) = self.state.as_ref() { @@ -4942,6 +4958,7 @@ impl serde::Serialize for PositionId { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1.PositionId", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } if !self.alt_bech32m.is_empty() { @@ -5367,6 +5384,7 @@ impl serde::Serialize for PositionState { } if self.sequence != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("sequence", ToString::to_string(&self.sequence).as_str())?; } struct_ser.end() @@ -5568,6 +5586,7 @@ impl serde::Serialize for PositionWithdraw { } if self.sequence != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("sequence", ToString::to_string(&self.sequence).as_str())?; } struct_ser.end() @@ -5711,6 +5730,7 @@ impl serde::Serialize for PositionWithdrawPlan { } if self.sequence != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("sequence", ToString::to_string(&self.sequence).as_str())?; } if !self.rewards.is_empty() { @@ -7009,6 +7029,7 @@ impl serde::Serialize for SwapClaim { } if self.epoch_duration != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epochDuration", ToString::to_string(&self.epoch_duration).as_str())?; } struct_ser.end() @@ -7314,6 +7335,7 @@ impl serde::Serialize for SwapClaimPlan { } if self.position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("position", ToString::to_string(&self.position).as_str())?; } if let Some(v) = self.output_data.as_ref() { @@ -7321,14 +7343,17 @@ impl serde::Serialize for SwapClaimPlan { } if self.epoch_duration != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epochDuration", ToString::to_string(&self.epoch_duration).as_str())?; } if !self.proof_blinding_r.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofBlindingR", pbjson::private::base64::encode(&self.proof_blinding_r).as_str())?; } if !self.proof_blinding_s.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofBlindingS", pbjson::private::base64::encode(&self.proof_blinding_s).as_str())?; } struct_ser.end() @@ -8079,6 +8104,7 @@ impl serde::Serialize for SwapExecutionRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1.SwapExecutionRequest", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } if let Some(v) = self.trading_pair.as_ref() { @@ -8294,10 +8320,12 @@ impl serde::Serialize for SwapExecutionsRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1.SwapExecutionsRequest", len)?; if self.start_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startHeight", ToString::to_string(&self.start_height).as_str())?; } if self.end_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("endHeight", ToString::to_string(&self.end_height).as_str())?; } if let Some(v) = self.trading_pair.as_ref() { @@ -8435,6 +8463,7 @@ impl serde::Serialize for SwapExecutionsResponse { } if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } if let Some(v) = self.trading_pair.as_ref() { @@ -8566,6 +8595,7 @@ impl serde::Serialize for SwapPayload { } if !self.encrypted_swap.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("encryptedSwap", pbjson::private::base64::encode(&self.encrypted_swap).as_str())?; } struct_ser.end() @@ -8706,6 +8736,7 @@ impl serde::Serialize for SwapPlaintext { } if !self.rseed.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("rseed", pbjson::private::base64::encode(&self.rseed).as_str())?; } struct_ser.end() @@ -8876,14 +8907,17 @@ impl serde::Serialize for SwapPlan { } if !self.fee_blinding.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("feeBlinding", pbjson::private::base64::encode(&self.fee_blinding).as_str())?; } if !self.proof_blinding_r.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofBlindingR", pbjson::private::base64::encode(&self.proof_blinding_r).as_str())?; } if !self.proof_blinding_s.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofBlindingS", pbjson::private::base64::encode(&self.proof_blinding_s).as_str())?; } struct_ser.end() @@ -9768,6 +9802,7 @@ impl serde::Serialize for ZkSwapClaimProof { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1.ZKSwapClaimProof", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -9866,6 +9901,7 @@ impl serde::Serialize for ZkSwapProof { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1.ZKSwapProof", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.core.component.distributions.v1.rs b/crates/proto/src/gen/penumbra.core.component.distributions.v1.rs index 8e9c616aad..8ad924095d 100644 --- a/crates/proto/src/gen/penumbra.core.component.distributions.v1.rs +++ b/crates/proto/src/gen/penumbra.core.component.distributions.v1.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// Distribution configuration data. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct DistributionsParameters { /// The amount of staking token issued per block. #[prost(uint64, tag = "1")] @@ -10,14 +10,14 @@ impl ::prost::Name for DistributionsParameters { const NAME: &'static str = "DistributionsParameters"; const PACKAGE: &'static str = "penumbra.core.component.distributions.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.distributions.v1.{}", Self::NAME - ) + "penumbra.core.component.distributions.v1.DistributionsParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.distributions.v1.DistributionsParameters".into() } } /// Genesis data for the distributions module. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct GenesisContent { #[prost(message, optional, tag = "1")] pub distributions_params: ::core::option::Option, @@ -26,8 +26,9 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.component.distributions.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.distributions.v1.{}", Self::NAME - ) + "penumbra.core.component.distributions.v1.GenesisContent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.distributions.v1.GenesisContent".into() } } diff --git a/crates/proto/src/gen/penumbra.core.component.distributions.v1.serde.rs b/crates/proto/src/gen/penumbra.core.component.distributions.v1.serde.rs index 7571336852..efe1238b66 100644 --- a/crates/proto/src/gen/penumbra.core.component.distributions.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.distributions.v1.serde.rs @@ -12,6 +12,7 @@ impl serde::Serialize for DistributionsParameters { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.distributions.v1.DistributionsParameters", len)?; if self.staking_issuance_per_block != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("stakingIssuancePerBlock", ToString::to_string(&self.staking_issuance_per_block).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.core.component.fee.v1.rs b/crates/proto/src/gen/penumbra.core.component.fee.v1.rs index e3ae15a7b0..287db509e6 100644 --- a/crates/proto/src/gen/penumbra.core.component.fee.v1.rs +++ b/crates/proto/src/gen/penumbra.core.component.fee.v1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// Specifies fees paid by a transaction. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Fee { /// The amount of the token used to pay fees. @@ -14,14 +14,16 @@ impl ::prost::Name for Fee { const NAME: &'static str = "Fee"; const PACKAGE: &'static str = "penumbra.core.component.fee.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.fee.v1.{}", Self::NAME) + "penumbra.core.component.fee.v1.Fee".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.fee.v1.Fee".into() } } /// Gas usage for a transaction. /// /// Gas used is multiplied by `GasPrices` to determine a `Fee`. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Gas { /// The amount of block space used. #[prost(uint64, tag = "1")] @@ -40,10 +42,12 @@ impl ::prost::Name for Gas { const NAME: &'static str = "Gas"; const PACKAGE: &'static str = "penumbra.core.component.fee.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.fee.v1.{}", Self::NAME) + "penumbra.core.component.fee.v1.Gas".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.fee.v1.Gas".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GasPrices { /// The asset ID of the fee token these prices are for. @@ -68,11 +72,13 @@ impl ::prost::Name for GasPrices { const NAME: &'static str = "GasPrices"; const PACKAGE: &'static str = "penumbra.core.component.fee.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.fee.v1.{}", Self::NAME) + "penumbra.core.component.fee.v1.GasPrices".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.fee.v1.GasPrices".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct FeeTier { /// The selected fee tier. #[prost(enumeration = "fee_tier::Tier", tag = "1")] @@ -106,10 +112,10 @@ pub mod fee_tier { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - Tier::Unspecified => "TIER_UNSPECIFIED", - Tier::Low => "TIER_LOW", - Tier::Medium => "TIER_MEDIUM", - Tier::High => "TIER_HIGH", + Self::Unspecified => "TIER_UNSPECIFIED", + Self::Low => "TIER_LOW", + Self::Medium => "TIER_MEDIUM", + Self::High => "TIER_HIGH", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -128,11 +134,13 @@ impl ::prost::Name for FeeTier { const NAME: &'static str = "FeeTier"; const PACKAGE: &'static str = "penumbra.core.component.fee.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.fee.v1.{}", Self::NAME) + "penumbra.core.component.fee.v1.FeeTier".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.fee.v1.FeeTier".into() } } /// Fee component configuration data. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct FeeParameters { /// Fixed gas prices in the native token used to compute transactions' base @@ -157,11 +165,13 @@ impl ::prost::Name for FeeParameters { const NAME: &'static str = "FeeParameters"; const PACKAGE: &'static str = "penumbra.core.component.fee.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.fee.v1.{}", Self::NAME) + "penumbra.core.component.fee.v1.FeeParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.fee.v1.FeeParameters".into() } } /// Fee-specific genesis content. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisContent { /// The FeeParameters present at genesis. @@ -172,20 +182,24 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.component.fee.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.fee.v1.{}", Self::NAME) + "penumbra.core.component.fee.v1.GenesisContent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.fee.v1.GenesisContent".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct CurrentGasPricesRequest {} impl ::prost::Name for CurrentGasPricesRequest { const NAME: &'static str = "CurrentGasPricesRequest"; const PACKAGE: &'static str = "penumbra.core.component.fee.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.fee.v1.{}", Self::NAME) + "penumbra.core.component.fee.v1.CurrentGasPricesRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.fee.v1.CurrentGasPricesRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CurrentGasPricesResponse { /// The current gas prices, in the preferred (native) token. @@ -199,11 +213,13 @@ impl ::prost::Name for CurrentGasPricesResponse { const NAME: &'static str = "CurrentGasPricesResponse"; const PACKAGE: &'static str = "penumbra.core.component.fee.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.fee.v1.{}", Self::NAME) + "penumbra.core.component.fee.v1.CurrentGasPricesResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.fee.v1.CurrentGasPricesResponse".into() } } /// Emitted during fee payment. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventPaidFee { /// The fee paid. @@ -223,11 +239,13 @@ impl ::prost::Name for EventPaidFee { const NAME: &'static str = "EventPaidFee"; const PACKAGE: &'static str = "penumbra.core.component.fee.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.fee.v1.{}", Self::NAME) + "penumbra.core.component.fee.v1.EventPaidFee".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.fee.v1.EventPaidFee".into() } } /// Emitted as a summary of fees in the block. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventBlockFees { /// The total fees, after swapping to the native token. @@ -244,13 +262,22 @@ impl ::prost::Name for EventBlockFees { const NAME: &'static str = "EventBlockFees"; const PACKAGE: &'static str = "penumbra.core.component.fee.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.fee.v1.{}", Self::NAME) + "penumbra.core.component.fee.v1.EventBlockFees".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.fee.v1.EventBlockFees".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query operations for the fee component. @@ -273,8 +300,8 @@ pub mod query_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -299,7 +326,7 @@ pub mod query_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -346,8 +373,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -370,11 +396,17 @@ pub mod query_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] - pub trait QueryService: Send + Sync + 'static { + pub trait QueryService: std::marker::Send + std::marker::Sync + 'static { /// Get the current gas prices. async fn current_gas_prices( &self, @@ -386,20 +418,18 @@ pub mod query_service_server { } /// Query operations for the fee component. #[derive(Debug)] - pub struct QueryServiceServer { - inner: _Inner, + pub struct QueryServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServiceServer { + impl QueryServiceServer { 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(), @@ -449,8 +479,8 @@ pub mod query_service_server { impl tonic::codegen::Service> for QueryServiceServer where T: QueryService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -462,7 +492,6 @@ pub mod query_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.core.component.fee.v1.QueryService/CurrentGasPrices" => { #[allow(non_camel_case_types)] @@ -494,7 +523,6 @@ pub mod query_service_server { 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 = CurrentGasPricesSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -513,20 +541,25 @@ pub mod query_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServiceServer { + impl Clone for QueryServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -538,17 +571,9 @@ pub mod query_service_server { } } } - 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 QueryServiceServer { - const NAME: &'static str = "penumbra.core.component.fee.v1.QueryService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.core.component.fee.v1.QueryService"; + impl tonic::server::NamedService for QueryServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.core.component.fee.v1.serde.rs b/crates/proto/src/gen/penumbra.core.component.fee.v1.serde.rs index 2d9df3b9be..1d166c08f5 100644 --- a/crates/proto/src/gen/penumbra.core.component.fee.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.fee.v1.serde.rs @@ -889,18 +889,22 @@ impl serde::Serialize for Gas { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.fee.v1.Gas", len)?; if self.block_space != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("blockSpace", ToString::to_string(&self.block_space).as_str())?; } if self.compact_block_space != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("compactBlockSpace", ToString::to_string(&self.compact_block_space).as_str())?; } if self.verification != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("verification", ToString::to_string(&self.verification).as_str())?; } if self.execution != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("execution", ToString::to_string(&self.execution).as_str())?; } struct_ser.end() @@ -1055,18 +1059,22 @@ impl serde::Serialize for GasPrices { } if self.block_space_price != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("blockSpacePrice", ToString::to_string(&self.block_space_price).as_str())?; } if self.compact_block_space_price != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("compactBlockSpacePrice", ToString::to_string(&self.compact_block_space_price).as_str())?; } if self.verification_price != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("verificationPrice", ToString::to_string(&self.verification_price).as_str())?; } if self.execution_price != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("executionPrice", ToString::to_string(&self.execution_price).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.core.component.funding.v1.rs b/crates/proto/src/gen/penumbra.core.component.funding.v1.rs index 2db78e4ba8..d72e5db496 100644 --- a/crates/proto/src/gen/penumbra.core.component.funding.v1.rs +++ b/crates/proto/src/gen/penumbra.core.component.funding.v1.rs @@ -1,17 +1,19 @@ +// This file is @generated by prost-build. /// Funding component configuration data. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct FundingParameters {} impl ::prost::Name for FundingParameters { const NAME: &'static str = "FundingParameters"; const PACKAGE: &'static str = "penumbra.core.component.funding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.funding.v1.{}", Self::NAME) + "penumbra.core.component.funding.v1.FundingParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.funding.v1.FundingParameters".into() } } /// Genesis data for the funding component. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct GenesisContent { #[prost(message, optional, tag = "1")] pub funding_params: ::core::option::Option, @@ -20,11 +22,13 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.component.funding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.funding.v1.{}", Self::NAME) + "penumbra.core.component.funding.v1.GenesisContent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.funding.v1.GenesisContent".into() } } /// Indicates that a funding stream reward was paid. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventFundingStreamReward { /// The recipient of the funding stream reward. @@ -44,6 +48,9 @@ impl ::prost::Name for EventFundingStreamReward { const NAME: &'static str = "EventFundingStreamReward"; const PACKAGE: &'static str = "penumbra.core.component.funding.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.funding.v1.{}", Self::NAME) + "penumbra.core.component.funding.v1.EventFundingStreamReward".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.funding.v1.EventFundingStreamReward".into() } } diff --git a/crates/proto/src/gen/penumbra.core.component.funding.v1.serde.rs b/crates/proto/src/gen/penumbra.core.component.funding.v1.serde.rs index 833eeed457..827556590e 100644 --- a/crates/proto/src/gen/penumbra.core.component.funding.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.funding.v1.serde.rs @@ -21,6 +21,7 @@ impl serde::Serialize for EventFundingStreamReward { } if self.epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epochIndex", ToString::to_string(&self.epoch_index).as_str())?; } if let Some(v) = self.reward_amount.as_ref() { diff --git a/crates/proto/src/gen/penumbra.core.component.governance.v1.rs b/crates/proto/src/gen/penumbra.core.component.governance.v1.rs index 4c188cf312..d278363f49 100644 --- a/crates/proto/src/gen/penumbra.core.component.governance.v1.rs +++ b/crates/proto/src/gen/penumbra.core.component.governance.v1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// A Penumbra ZK delegator vote proof. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ZkDelegatorVoteProof { #[prost(bytes = "vec", tag = "1")] @@ -9,10 +9,12 @@ impl ::prost::Name for ZkDelegatorVoteProof { const NAME: &'static str = "ZKDelegatorVoteProof"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ZKDelegatorVoteProof".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ZKDelegatorVoteProof".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProposalSubmit { /// The proposal to be submitted. @@ -26,10 +28,12 @@ impl ::prost::Name for ProposalSubmit { const NAME: &'static str = "ProposalSubmit"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalSubmit".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalSubmit".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProposalWithdraw { /// The proposal to be withdrawn. @@ -43,10 +47,12 @@ impl ::prost::Name for ProposalWithdraw { const NAME: &'static str = "ProposalWithdraw"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalWithdraw".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalWithdraw".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProposalDepositClaim { /// The proposal to claim the deposit for. @@ -63,10 +69,12 @@ impl ::prost::Name for ProposalDepositClaim { const NAME: &'static str = "ProposalDepositClaim"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalDepositClaim".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalDepositClaim".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorVote { /// The effecting data for the vote. @@ -82,10 +90,12 @@ impl ::prost::Name for ValidatorVote { const NAME: &'static str = "ValidatorVote"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ValidatorVote".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ValidatorVote".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorVoteReason { #[prost(string, tag = "1")] @@ -95,10 +105,12 @@ impl ::prost::Name for ValidatorVoteReason { const NAME: &'static str = "ValidatorVoteReason"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ValidatorVoteReason".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ValidatorVoteReason".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorVoteBody { /// The proposal being voted on. @@ -123,10 +135,12 @@ impl ::prost::Name for ValidatorVoteBody { const NAME: &'static str = "ValidatorVoteBody"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ValidatorVoteBody".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ValidatorVoteBody".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DelegatorVote { /// The effecting data for the vote. @@ -145,10 +159,12 @@ impl ::prost::Name for DelegatorVote { const NAME: &'static str = "DelegatorVote"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.DelegatorVote".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.DelegatorVote".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DelegatorVoteBody { /// The proposal being voted on. @@ -179,10 +195,12 @@ impl ::prost::Name for DelegatorVoteBody { const NAME: &'static str = "DelegatorVoteBody"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.DelegatorVoteBody".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.DelegatorVoteBody".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DelegatorVoteView { #[prost(oneof = "delegator_vote_view::DelegatorVote", tags = "1, 2")] @@ -190,7 +208,6 @@ pub struct DelegatorVoteView { } /// Nested message and enum types in `DelegatorVoteView`. pub mod delegator_vote_view { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Visible { #[prost(message, optional, tag = "1")] @@ -204,12 +221,12 @@ pub mod delegator_vote_view { const NAME: &'static str = "Visible"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.DelegatorVoteView.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.DelegatorVoteView.Visible".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.DelegatorVoteView.Visible".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Opaque { #[prost(message, optional, tag = "1")] @@ -219,12 +236,12 @@ pub mod delegator_vote_view { const NAME: &'static str = "Opaque"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.DelegatorVoteView.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.DelegatorVoteView.Opaque".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.DelegatorVoteView.Opaque".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum DelegatorVote { #[prost(message, tag = "1")] @@ -237,10 +254,12 @@ impl ::prost::Name for DelegatorVoteView { const NAME: &'static str = "DelegatorVoteView"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.DelegatorVoteView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.DelegatorVoteView".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DelegatorVotePlan { /// The proposal to vote on. @@ -275,10 +294,12 @@ impl ::prost::Name for DelegatorVotePlan { const NAME: &'static str = "DelegatorVotePlan"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.DelegatorVotePlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.DelegatorVotePlan".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CommunityPoolDeposit { /// The value to deposit into the Community Pool. @@ -289,10 +310,12 @@ impl ::prost::Name for CommunityPoolDeposit { const NAME: &'static str = "CommunityPoolDeposit"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.CommunityPoolDeposit".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.CommunityPoolDeposit".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CommunityPoolSpend { /// The value to spend from the Community Pool. @@ -303,10 +326,12 @@ impl ::prost::Name for CommunityPoolSpend { const NAME: &'static str = "CommunityPoolSpend"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.CommunityPoolSpend".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.CommunityPoolSpend".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CommunityPoolOutput { /// The value to output from the Community Pool. @@ -320,12 +345,14 @@ impl ::prost::Name for CommunityPoolOutput { const NAME: &'static str = "CommunityPoolOutput"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.CommunityPoolOutput".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.CommunityPoolOutput".into() } } /// A vote on a proposal. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Vote { /// The vote. #[prost(enumeration = "vote::Vote", tag = "1")] @@ -359,10 +386,10 @@ pub mod vote { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - Vote::Unspecified => "VOTE_UNSPECIFIED", - Vote::Abstain => "VOTE_ABSTAIN", - Vote::Yes => "VOTE_YES", - Vote::No => "VOTE_NO", + Self::Unspecified => "VOTE_UNSPECIFIED", + Self::Abstain => "VOTE_ABSTAIN", + Self::Yes => "VOTE_YES", + Self::No => "VOTE_NO", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -381,11 +408,13 @@ impl ::prost::Name for Vote { const NAME: &'static str = "Vote"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.Vote".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.Vote".into() } } /// The current state of a proposal. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProposalState { /// The state of the proposal. @@ -395,20 +424,19 @@ pub struct ProposalState { /// Nested message and enum types in `ProposalState`. pub mod proposal_state { /// Voting is in progress and the proposal has not yet concluded voting or been withdrawn. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Voting {} impl ::prost::Name for Voting { const NAME: &'static str = "Voting"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.ProposalState.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.ProposalState.Voting".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalState.Voting".into() } } /// The proposal has been withdrawn but the voting period is not yet concluded. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Withdrawn { /// The reason for the withdrawal. @@ -419,13 +447,13 @@ pub mod proposal_state { const NAME: &'static str = "Withdrawn"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.ProposalState.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.ProposalState.Withdrawn".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalState.Withdrawn".into() } } /// The voting period has ended, and the proposal has been assigned an outcome. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Finished { #[prost(message, optional, tag = "1")] @@ -435,13 +463,13 @@ pub mod proposal_state { const NAME: &'static str = "Finished"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.ProposalState.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.ProposalState.Finished".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalState.Finished".into() } } /// The voting period has ended, and the original proposer has claimed their deposit. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Claimed { #[prost(message, optional, tag = "1")] @@ -451,13 +479,13 @@ pub mod proposal_state { const NAME: &'static str = "Claimed"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.ProposalState.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.ProposalState.Claimed".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalState.Claimed".into() } } /// The state of the proposal. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum State { #[prost(message, tag = "2")] @@ -474,11 +502,13 @@ impl ::prost::Name for ProposalState { const NAME: &'static str = "ProposalState"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalState".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalState".into() } } /// The outcome of a concluded proposal. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProposalOutcome { #[prost(oneof = "proposal_outcome::Outcome", tags = "1, 2, 3")] @@ -487,7 +517,6 @@ pub struct ProposalOutcome { /// Nested message and enum types in `ProposalOutcome`. pub mod proposal_outcome { /// Whether or not the proposal was withdrawn. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Withdrawn { /// The reason for withdrawing the proposal during the voting period. @@ -498,26 +527,26 @@ pub mod proposal_outcome { const NAME: &'static str = "Withdrawn"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.ProposalOutcome.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.ProposalOutcome.Withdrawn".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalOutcome.Withdrawn".into() } } /// The proposal was passed. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Passed {} impl ::prost::Name for Passed { const NAME: &'static str = "Passed"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.ProposalOutcome.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.ProposalOutcome.Passed".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalOutcome.Passed".into() } } /// The proposal did not pass. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Failed { /// Present if the proposal was withdrawn during the voting period. @@ -528,13 +557,13 @@ pub mod proposal_outcome { const NAME: &'static str = "Failed"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.ProposalOutcome.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.ProposalOutcome.Failed".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalOutcome.Failed".into() } } /// The proposal did not pass, and was slashed. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Slashed { /// Present if the proposal was withdrawn during the voting period. @@ -545,12 +574,12 @@ pub mod proposal_outcome { const NAME: &'static str = "Slashed"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.ProposalOutcome.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.ProposalOutcome.Slashed".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalOutcome.Slashed".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Outcome { #[prost(message, tag = "1")] @@ -565,12 +594,14 @@ impl ::prost::Name for ProposalOutcome { const NAME: &'static str = "ProposalOutcome"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalOutcome".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalOutcome".into() } } /// A tally of votes on a proposal. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Tally { /// The number of votes in favor of the proposal. #[prost(uint64, tag = "1")] @@ -586,11 +617,13 @@ impl ::prost::Name for Tally { const NAME: &'static str = "Tally"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.Tally".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.Tally".into() } } /// A proposal to be voted upon. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Proposal { /// The unique identifier of the proposal. @@ -612,7 +645,6 @@ pub mod proposal { /// effect when passed. /// /// It optionally contains a reference to a commit which contains code to upgrade the chain. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Signaling { /// The commit to be voted upon, if any is relevant. @@ -623,9 +655,10 @@ pub mod proposal { const NAME: &'static str = "Signaling"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.Proposal.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.Proposal.Signaling".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.Proposal.Signaling".into() } } /// An emergency proposal can be passed instantaneously by a 1/3 majority of validators, without @@ -633,8 +666,7 @@ pub mod proposal { /// /// If the boolean `halt_chain` is set to `true`, then the chain will halt immediately when the /// proposal is passed. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Emergency { /// If `true`, the chain will halt immediately when the proposal is passed. #[prost(bool, tag = "1")] @@ -644,14 +676,14 @@ pub mod proposal { const NAME: &'static str = "Emergency"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.Proposal.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.Proposal.Emergency".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.Proposal.Emergency".into() } } /// A parameter change proposal describes a replacement of the app parameters, which should take /// effect when the proposal is passed. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ParameterChange { /// DEPRECATED @@ -678,15 +710,15 @@ pub mod proposal { const NAME: &'static str = "ParameterChange"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.Proposal.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.Proposal.ParameterChange".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.Proposal.ParameterChange".into() } } /// A Community Pool spend proposal describes zero or more transactions to execute on behalf of the Community Pool, with /// access to its funds, and zero or more scheduled transactions from previous passed proposals to /// cancel. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CommunityPoolSpend { /// The transaction plan to be executed at the time the proposal is passed. This must be a @@ -699,15 +731,15 @@ pub mod proposal { const NAME: &'static str = "CommunityPoolSpend"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.Proposal.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.Proposal.CommunityPoolSpend".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.Proposal.CommunityPoolSpend".into() } } /// An upgrade plan describes a candidate upgrade to be executed at a certain height. If passed, the chain /// will halt at the specified height. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct UpgradePlan { #[prost(uint64, tag = "1")] pub height: u64, @@ -716,15 +748,15 @@ pub mod proposal { const NAME: &'static str = "UpgradePlan"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.Proposal.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.Proposal.UpgradePlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.Proposal.UpgradePlan".into() } } /// Freeze an existing IBC client. /// Like `Emergency` proposals, it is enacted immediately after receiving /// +2/3 of validator votes. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct FreezeIbcClient { #[prost(string, tag = "1")] @@ -734,15 +766,15 @@ pub mod proposal { const NAME: &'static str = "FreezeIbcClient"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.Proposal.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.Proposal.FreezeIbcClient".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.Proposal.FreezeIbcClient".into() } } /// Unfreeze an existing IBC client. /// Like `Emergency` proposals, it is enacted immediately after receiving /// +2/3 of validator votes. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UnfreezeIbcClient { #[prost(string, tag = "1")] @@ -752,13 +784,13 @@ pub mod proposal { const NAME: &'static str = "UnfreezeIbcClient"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1.Proposal.{}", Self::NAME - ) + "penumbra.core.component.governance.v1.Proposal.UnfreezeIbcClient".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.Proposal.UnfreezeIbcClient".into() } } /// The proposal's payload. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Payload { #[prost(message, tag = "5")] @@ -781,11 +813,13 @@ impl ::prost::Name for Proposal { const NAME: &'static str = "Proposal"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.Proposal".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.Proposal".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ProposalInfoRequest { /// The proposal id to request information on. #[prost(uint64, tag = "2")] @@ -795,11 +829,13 @@ impl ::prost::Name for ProposalInfoRequest { const NAME: &'static str = "ProposalInfoRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalInfoRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalInfoRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ProposalInfoResponse { /// The block height at which the proposal started voting. #[prost(uint64, tag = "1")] @@ -812,11 +848,13 @@ impl ::prost::Name for ProposalInfoResponse { const NAME: &'static str = "ProposalInfoResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalInfoResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalInfoResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ProposalDataRequest { /// The proposal id to request information on. #[prost(uint64, tag = "2")] @@ -826,10 +864,12 @@ impl ::prost::Name for ProposalDataRequest { const NAME: &'static str = "ProposalDataRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalDataRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalDataRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProposalDataResponse { /// The proposal metadata. @@ -857,12 +897,14 @@ impl ::prost::Name for ProposalDataResponse { const NAME: &'static str = "ProposalDataResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalDataResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalDataResponse".into() } } /// Requests the validator rate data for a proposal. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ProposalRateDataRequest { /// The proposal id to request information on. #[prost(uint64, tag = "2")] @@ -872,11 +914,13 @@ impl ::prost::Name for ProposalRateDataRequest { const NAME: &'static str = "ProposalRateDataRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalRateDataRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalRateDataRequest".into() } } /// The rate data for a single validator. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProposalRateDataResponse { #[prost(message, optional, tag = "1")] @@ -886,12 +930,14 @@ impl ::prost::Name for ProposalRateDataResponse { const NAME: &'static str = "ProposalRateDataResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalRateDataResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalRateDataResponse".into() } } /// Requests the list of all proposals. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ProposalListRequest { /// Whether to include proposals that are no longer active.; /// @@ -903,11 +949,13 @@ impl ::prost::Name for ProposalListRequest { const NAME: &'static str = "ProposalListRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalListRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalListRequest".into() } } /// The data for a single proposal. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProposalListResponse { /// The proposal metadata. @@ -930,12 +978,14 @@ impl ::prost::Name for ProposalListResponse { const NAME: &'static str = "ProposalListResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ProposalListResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ProposalListResponse".into() } } /// Requests the list of all validator votes for a given proposal. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ValidatorVotesRequest { /// The proposal id to request information on. #[prost(uint64, tag = "2")] @@ -945,11 +995,13 @@ impl ::prost::Name for ValidatorVotesRequest { const NAME: &'static str = "ValidatorVotesRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ValidatorVotesRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ValidatorVotesRequest".into() } } /// The data for a single validator vote. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorVotesResponse { /// The vote. @@ -963,11 +1015,13 @@ impl ::prost::Name for ValidatorVotesResponse { const NAME: &'static str = "ValidatorVotesResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ValidatorVotesResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ValidatorVotesResponse".into() } } /// Governance configuration data. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GovernanceParameters { /// The number of blocks during which a proposal is voted on. @@ -994,11 +1048,13 @@ impl ::prost::Name for GovernanceParameters { const NAME: &'static str = "GovernanceParameters"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.GovernanceParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.GovernanceParameters".into() } } /// Governance genesis state. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisContent { /// Governance parameters. @@ -1009,10 +1065,12 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.GenesisContent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.GenesisContent".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EncodedParameter { /// The component name in the `AppParameters`. @@ -1035,11 +1093,13 @@ impl ::prost::Name for EncodedParameter { const NAME: &'static str = "EncodedParameter"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.EncodedParameter".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.EncodedParameter".into() } } /// DEPRECATED -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ChangedAppParameters { /// Sct module parameters. @@ -1090,11 +1150,13 @@ impl ::prost::Name for ChangedAppParameters { const NAME: &'static str = "ChangedAppParameters"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ChangedAppParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ChangedAppParameters".into() } } /// DEPRECATED -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ChangedAppParametersSet { /// The set of app parameters at the time the proposal was submitted. @@ -1108,10 +1170,12 @@ impl ::prost::Name for ChangedAppParametersSet { const NAME: &'static str = "ChangedAppParametersSet"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.ChangedAppParametersSet".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.ChangedAppParametersSet".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct VotingPowerAtProposalStartRequest { /// The proposal id to request information on. @@ -1125,11 +1189,13 @@ impl ::prost::Name for VotingPowerAtProposalStartRequest { const NAME: &'static str = "VotingPowerAtProposalStartRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.VotingPowerAtProposalStartRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.VotingPowerAtProposalStartRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct VotingPowerAtProposalStartResponse { /// The voting power for the given identity key at the start of the proposal. /// TODO: since we don't support optional fields in our protos any more, @@ -1142,11 +1208,14 @@ impl ::prost::Name for VotingPowerAtProposalStartResponse { const NAME: &'static str = "VotingPowerAtProposalStartResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.VotingPowerAtProposalStartResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.VotingPowerAtProposalStartResponse" + .into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct AllTalliedDelegatorVotesForProposalRequest { /// The proposal id to request information on. #[prost(uint64, tag = "2")] @@ -1156,10 +1225,14 @@ impl ::prost::Name for AllTalliedDelegatorVotesForProposalRequest { const NAME: &'static str = "AllTalliedDelegatorVotesForProposalRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.AllTalliedDelegatorVotesForProposalRequest" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.AllTalliedDelegatorVotesForProposalRequest" + .into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AllTalliedDelegatorVotesForProposalResponse { /// The tally of delegator votes for a given validator for the proposal. @@ -1173,21 +1246,27 @@ impl ::prost::Name for AllTalliedDelegatorVotesForProposalResponse { const NAME: &'static str = "AllTalliedDelegatorVotesForProposalResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.AllTalliedDelegatorVotesForProposalResponse" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.AllTalliedDelegatorVotesForProposalResponse" + .into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct NextProposalIdRequest {} impl ::prost::Name for NextProposalIdRequest { const NAME: &'static str = "NextProposalIdRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.NextProposalIdRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.NextProposalIdRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct NextProposalIdResponse { /// The next proposal ID. #[prost(uint64, tag = "1")] @@ -1197,12 +1276,14 @@ impl ::prost::Name for NextProposalIdResponse { const NAME: &'static str = "NextProposalIdResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.NextProposalIdResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.NextProposalIdResponse".into() } } /// The ratio between two numbers, used in governance to describe vote thresholds and quorums. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Ratio { /// The numerator. #[prost(uint64, tag = "1")] @@ -1215,10 +1296,12 @@ impl ::prost::Name for Ratio { const NAME: &'static str = "Ratio"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.Ratio".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.Ratio".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventDelegatorVote { /// The delegator vote. @@ -1234,10 +1317,12 @@ impl ::prost::Name for EventDelegatorVote { const NAME: &'static str = "EventDelegatorVote"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.EventDelegatorVote".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.EventDelegatorVote".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventProposalDepositClaim { /// The deposit claim body. @@ -1248,10 +1333,12 @@ impl ::prost::Name for EventProposalDepositClaim { const NAME: &'static str = "EventProposalDepositClaim"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.EventProposalDepositClaim".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.EventProposalDepositClaim".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventValidatorVote { /// The validator vote. @@ -1265,10 +1352,12 @@ impl ::prost::Name for EventValidatorVote { const NAME: &'static str = "EventValidatorVote"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.EventValidatorVote".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.EventValidatorVote".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventProposalWithdraw { /// Details on the withdrawn proposal. @@ -1279,10 +1368,12 @@ impl ::prost::Name for EventProposalWithdraw { const NAME: &'static str = "EventProposalWithdraw"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.EventProposalWithdraw".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.EventProposalWithdraw".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventProposalSubmit { /// Details on the submitted proposal. @@ -1299,10 +1390,12 @@ impl ::prost::Name for EventProposalSubmit { const NAME: &'static str = "EventProposalSubmit"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.EventProposalSubmit".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.EventProposalSubmit".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventProposalPassed { /// The passed proposal. @@ -1313,10 +1406,12 @@ impl ::prost::Name for EventProposalPassed { const NAME: &'static str = "EventProposalPassed"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.EventProposalPassed".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.EventProposalPassed".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventProposalFailed { /// The failed proposal. @@ -1327,10 +1422,12 @@ impl ::prost::Name for EventProposalFailed { const NAME: &'static str = "EventProposalFailed"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.EventProposalFailed".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.EventProposalFailed".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventProposalSlashed { /// The slashed proposal. @@ -1341,7 +1438,10 @@ impl ::prost::Name for EventProposalSlashed { const NAME: &'static str = "EventProposalSlashed"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.governance.v1.{}", Self::NAME) + "penumbra.core.component.governance.v1.EventProposalSlashed".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.governance.v1.EventProposalSlashed".into() } } /// All the different kinds of proposals. @@ -1365,14 +1465,14 @@ impl ProposalKind { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - ProposalKind::Unspecified => "PROPOSAL_KIND_UNSPECIFIED", - ProposalKind::Signaling => "PROPOSAL_KIND_SIGNALING", - ProposalKind::Emergency => "PROPOSAL_KIND_EMERGENCY", - ProposalKind::ParameterChange => "PROPOSAL_KIND_PARAMETER_CHANGE", - ProposalKind::CommunityPoolSpend => "PROPOSAL_KIND_COMMUNITY_POOL_SPEND", - ProposalKind::UpgradePlan => "PROPOSAL_KIND_UPGRADE_PLAN", - ProposalKind::FreezeIbcClient => "PROPOSAL_KIND_FREEZE_IBC_CLIENT", - ProposalKind::UnfreezeIbcClient => "PROPOSAL_KIND_UNFREEZE_IBC_CLIENT", + Self::Unspecified => "PROPOSAL_KIND_UNSPECIFIED", + Self::Signaling => "PROPOSAL_KIND_SIGNALING", + Self::Emergency => "PROPOSAL_KIND_EMERGENCY", + Self::ParameterChange => "PROPOSAL_KIND_PARAMETER_CHANGE", + Self::CommunityPoolSpend => "PROPOSAL_KIND_COMMUNITY_POOL_SPEND", + Self::UpgradePlan => "PROPOSAL_KIND_UPGRADE_PLAN", + Self::FreezeIbcClient => "PROPOSAL_KIND_FREEZE_IBC_CLIENT", + Self::UnfreezeIbcClient => "PROPOSAL_KIND_UNFREEZE_IBC_CLIENT", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -1393,7 +1493,13 @@ impl ProposalKind { /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query operations for the governance component. @@ -1416,8 +1522,8 @@ pub mod query_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -1442,7 +1548,7 @@ pub mod query_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -1488,8 +1594,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1518,8 +1623,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1548,8 +1652,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1578,8 +1681,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1608,8 +1710,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1638,8 +1739,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1674,8 +1774,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1705,8 +1804,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1729,11 +1827,17 @@ pub mod query_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] - pub trait QueryService: Send + Sync + 'static { + pub trait QueryService: std::marker::Send + std::marker::Sync + 'static { async fn proposal_info( &self, request: tonic::Request, @@ -1745,7 +1849,7 @@ pub mod query_service_server { type ProposalListStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; async fn proposal_list( &self, @@ -1772,7 +1876,7 @@ pub mod query_service_server { type ValidatorVotesStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; async fn validator_votes( &self, @@ -1795,7 +1899,7 @@ pub mod query_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; async fn all_tallied_delegator_votes_for_proposal( &self, @@ -1811,7 +1915,7 @@ pub mod query_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Used for computing voting power ? async fn proposal_rate_data( @@ -1824,20 +1928,18 @@ pub mod query_service_server { } /// Query operations for the governance component. #[derive(Debug)] - pub struct QueryServiceServer { - inner: _Inner, + pub struct QueryServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServiceServer { + impl QueryServiceServer { 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(), @@ -1887,8 +1989,8 @@ pub mod query_service_server { impl tonic::codegen::Service> for QueryServiceServer where T: QueryService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -1900,7 +2002,6 @@ pub mod query_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.core.component.governance.v1.QueryService/ProposalInfo" => { #[allow(non_camel_case_types)] @@ -1931,7 +2032,6 @@ pub mod query_service_server { 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 = ProposalInfoSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1978,7 +2078,6 @@ pub mod query_service_server { 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 = ProposalListSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2024,7 +2123,6 @@ pub mod query_service_server { 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 = ProposalDataSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2070,7 +2168,6 @@ pub mod query_service_server { 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 = NextProposalIdSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2117,7 +2214,6 @@ pub mod query_service_server { 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 = ValidatorVotesSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2170,7 +2266,6 @@ pub mod query_service_server { 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 = VotingPowerAtProposalStartSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2226,7 +2321,6 @@ pub mod query_service_server { 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 = AllTalliedDelegatorVotesForProposalSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2275,7 +2369,6 @@ pub mod query_service_server { 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 = ProposalRateDataSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2294,20 +2387,25 @@ pub mod query_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServiceServer { + impl Clone for QueryServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -2319,17 +2417,9 @@ pub mod query_service_server { } } } - 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 QueryServiceServer { - const NAME: &'static str = "penumbra.core.component.governance.v1.QueryService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.core.component.governance.v1.QueryService"; + impl tonic::server::NamedService for QueryServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.core.component.governance.v1.serde.rs b/crates/proto/src/gen/penumbra.core.component.governance.v1.serde.rs index e5a2731256..e7467a0f7f 100644 --- a/crates/proto/src/gen/penumbra.core.component.governance.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.governance.v1.serde.rs @@ -12,6 +12,7 @@ impl serde::Serialize for AllTalliedDelegatorVotesForProposalRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.AllTalliedDelegatorVotesForProposalRequest", len)?; if self.proposal_id != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposalId", ToString::to_string(&self.proposal_id).as_str())?; } struct_ser.end() @@ -1062,10 +1063,12 @@ impl serde::Serialize for DelegatorVoteBody { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.DelegatorVoteBody", len)?; if self.proposal != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposal", ToString::to_string(&self.proposal).as_str())?; } if self.start_position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startPosition", ToString::to_string(&self.start_position).as_str())?; } if let Some(v) = self.vote.as_ref() { @@ -1273,10 +1276,12 @@ impl serde::Serialize for DelegatorVotePlan { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.DelegatorVotePlan", len)?; if self.proposal != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposal", ToString::to_string(&self.proposal).as_str())?; } if self.start_position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startPosition", ToString::to_string(&self.start_position).as_str())?; } if let Some(v) = self.vote.as_ref() { @@ -1287,6 +1292,7 @@ impl serde::Serialize for DelegatorVotePlan { } if self.staked_note_position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("stakedNotePosition", ToString::to_string(&self.staked_note_position).as_str())?; } if let Some(v) = self.unbonded_amount.as_ref() { @@ -1294,14 +1300,17 @@ impl serde::Serialize for DelegatorVotePlan { } if !self.randomizer.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("randomizer", pbjson::private::base64::encode(&self.randomizer).as_str())?; } if !self.proof_blinding_r.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofBlindingR", pbjson::private::base64::encode(&self.proof_blinding_r).as_str())?; } if !self.proof_blinding_s.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofBlindingS", pbjson::private::base64::encode(&self.proof_blinding_s).as_str())?; } struct_ser.end() @@ -2458,10 +2467,12 @@ impl serde::Serialize for EventProposalSubmit { } if self.start_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startHeight", ToString::to_string(&self.start_height).as_str())?; } if self.end_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("endHeight", ToString::to_string(&self.end_height).as_str())?; } struct_ser.end() @@ -2687,6 +2698,7 @@ impl serde::Serialize for EventValidatorVote { } if self.voting_power != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("votingPower", ToString::to_string(&self.voting_power).as_str())?; } struct_ser.end() @@ -2905,6 +2917,7 @@ impl serde::Serialize for GovernanceParameters { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.GovernanceParameters", len)?; if self.proposal_voting_blocks != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposalVotingBlocks", ToString::to_string(&self.proposal_voting_blocks).as_str())?; } if let Some(v) = self.proposal_deposit_amount.as_ref() { @@ -3136,6 +3149,7 @@ impl serde::Serialize for NextProposalIdResponse { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.NextProposalIdResponse", len)?; if self.next_proposal_id != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("nextProposalId", ToString::to_string(&self.next_proposal_id).as_str())?; } struct_ser.end() @@ -3244,6 +3258,7 @@ impl serde::Serialize for Proposal { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.Proposal", len)?; if self.id != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("id", ToString::to_string(&self.id).as_str())?; } if !self.title.is_empty() { @@ -4099,6 +4114,7 @@ impl serde::Serialize for proposal::UpgradePlan { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.Proposal.UpgradePlan", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } struct_ser.end() @@ -4197,6 +4213,7 @@ impl serde::Serialize for ProposalDataRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.ProposalDataRequest", len)?; if self.proposal_id != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposalId", ToString::to_string(&self.proposal_id).as_str())?; } struct_ser.end() @@ -4314,14 +4331,17 @@ impl serde::Serialize for ProposalDataResponse { } if self.start_block_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startBlockHeight", ToString::to_string(&self.start_block_height).as_str())?; } if self.end_block_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("endBlockHeight", ToString::to_string(&self.end_block_height).as_str())?; } if self.start_position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startPosition", ToString::to_string(&self.start_position).as_str())?; } if let Some(v) = self.state.as_ref() { @@ -4495,6 +4515,7 @@ impl serde::Serialize for ProposalDepositClaim { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.ProposalDepositClaim", len)?; if self.proposal != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposal", ToString::to_string(&self.proposal).as_str())?; } if let Some(v) = self.deposit_amount.as_ref() { @@ -4622,6 +4643,7 @@ impl serde::Serialize for ProposalInfoRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.ProposalInfoRequest", len)?; if self.proposal_id != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposalId", ToString::to_string(&self.proposal_id).as_str())?; } struct_ser.end() @@ -4724,10 +4746,12 @@ impl serde::Serialize for ProposalInfoResponse { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.ProposalInfoResponse", len)?; if self.start_block_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startBlockHeight", ToString::to_string(&self.start_block_height).as_str())?; } if self.start_position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startPosition", ToString::to_string(&self.start_position).as_str())?; } struct_ser.end() @@ -5040,14 +5064,17 @@ impl serde::Serialize for ProposalListResponse { } if self.start_block_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startBlockHeight", ToString::to_string(&self.start_block_height).as_str())?; } if self.end_block_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("endBlockHeight", ToString::to_string(&self.end_block_height).as_str())?; } if self.start_position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startPosition", ToString::to_string(&self.start_position).as_str())?; } if let Some(v) = self.state.as_ref() { @@ -5683,6 +5710,7 @@ impl serde::Serialize for ProposalRateDataRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.ProposalRateDataRequest", len)?; if self.proposal_id != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposalId", ToString::to_string(&self.proposal_id).as_str())?; } struct_ser.end() @@ -6490,6 +6518,7 @@ impl serde::Serialize for ProposalWithdraw { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.ProposalWithdraw", len)?; if self.proposal != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposal", ToString::to_string(&self.proposal).as_str())?; } if !self.reason.is_empty() { @@ -6605,10 +6634,12 @@ impl serde::Serialize for Ratio { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.Ratio", len)?; if self.numerator != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("numerator", ToString::to_string(&self.numerator).as_str())?; } if self.denominator != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("denominator", ToString::to_string(&self.denominator).as_str())?; } struct_ser.end() @@ -6726,14 +6757,17 @@ impl serde::Serialize for Tally { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.Tally", len)?; if self.yes != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("yes", ToString::to_string(&self.yes).as_str())?; } if self.no != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("no", ToString::to_string(&self.no).as_str())?; } if self.abstain != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("abstain", ToString::to_string(&self.abstain).as_str())?; } struct_ser.end() @@ -6983,6 +7017,7 @@ impl serde::Serialize for ValidatorVoteBody { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.ValidatorVoteBody", len)?; if self.proposal != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposal", ToString::to_string(&self.proposal).as_str())?; } if let Some(v) = self.vote.as_ref() { @@ -7234,6 +7269,7 @@ impl serde::Serialize for ValidatorVotesRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.ValidatorVotesRequest", len)?; if self.proposal_id != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposalId", ToString::to_string(&self.proposal_id).as_str())?; } struct_ser.end() @@ -7623,6 +7659,7 @@ impl serde::Serialize for VotingPowerAtProposalStartRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.VotingPowerAtProposalStartRequest", len)?; if self.proposal_id != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposalId", ToString::to_string(&self.proposal_id).as_str())?; } if let Some(v) = self.identity_key.as_ref() { @@ -7737,6 +7774,7 @@ impl serde::Serialize for VotingPowerAtProposalStartResponse { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.VotingPowerAtProposalStartResponse", len)?; if self.voting_power != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("votingPower", ToString::to_string(&self.voting_power).as_str())?; } struct_ser.end() @@ -7836,6 +7874,7 @@ impl serde::Serialize for ZkDelegatorVoteProof { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1.ZKDelegatorVoteProof", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.core.component.ibc.v1.rs b/crates/proto/src/gen/penumbra.core.component.ibc.v1.rs index 320e259a47..27b13737af 100644 --- a/crates/proto/src/gen/penumbra.core.component.ibc.v1.rs +++ b/crates/proto/src/gen/penumbra.core.component.ibc.v1.rs @@ -1,4 +1,4 @@ -#[allow(clippy::derive_partial_eq_without_eq)] +// This file is @generated by prost-build. #[derive(Clone, PartialEq, ::prost::Message)] pub struct IbcRelay { #[prost(message, optional, tag = "1")] @@ -8,13 +8,15 @@ impl ::prost::Name for IbcRelay { const NAME: &'static str = "IbcRelay"; const PACKAGE: &'static str = "penumbra.core.component.ibc.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.ibc.v1.{}", Self::NAME) + "penumbra.core.component.ibc.v1.IbcRelay".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.ibc.v1.IbcRelay".into() } } /// FungibleTokenPacketData defines a struct for the packet payload /// See FungibleTokenPacketData spec: /// -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct FungibleTokenPacketData { /// the token denomination to be transferred @@ -37,11 +39,13 @@ impl ::prost::Name for FungibleTokenPacketData { const NAME: &'static str = "FungibleTokenPacketData"; const PACKAGE: &'static str = "penumbra.core.component.ibc.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.ibc.v1.{}", Self::NAME) + "penumbra.core.component.ibc.v1.FungibleTokenPacketData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.ibc.v1.FungibleTokenPacketData".into() } } /// A Penumbra transaction action requesting an ICS20 transfer. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Ics20Withdrawal { #[prost(message, optional, tag = "1")] @@ -78,10 +82,12 @@ impl ::prost::Name for Ics20Withdrawal { const NAME: &'static str = "Ics20Withdrawal"; const PACKAGE: &'static str = "penumbra.core.component.ibc.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.ibc.v1.{}", Self::NAME) + "penumbra.core.component.ibc.v1.Ics20Withdrawal".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.ibc.v1.Ics20Withdrawal".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientData { #[prost(string, tag = "1")] @@ -98,11 +104,13 @@ impl ::prost::Name for ClientData { const NAME: &'static str = "ClientData"; const PACKAGE: &'static str = "penumbra.core.component.ibc.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.ibc.v1.{}", Self::NAME) + "penumbra.core.component.ibc.v1.ClientData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.ibc.v1.ClientData".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ClientCounter { #[prost(uint64, tag = "1")] pub counter: u64, @@ -111,10 +119,12 @@ impl ::prost::Name for ClientCounter { const NAME: &'static str = "ClientCounter"; const PACKAGE: &'static str = "penumbra.core.component.ibc.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.ibc.v1.{}", Self::NAME) + "penumbra.core.component.ibc.v1.ClientCounter".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.ibc.v1.ClientCounter".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsensusState { #[prost(message, optional, tag = "1")] @@ -124,10 +134,12 @@ impl ::prost::Name for ConsensusState { const NAME: &'static str = "ConsensusState"; const PACKAGE: &'static str = "penumbra.core.component.ibc.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.ibc.v1.{}", Self::NAME) + "penumbra.core.component.ibc.v1.ConsensusState".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.ibc.v1.ConsensusState".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct VerifiedHeights { #[prost(message, repeated, tag = "1")] @@ -137,11 +149,13 @@ impl ::prost::Name for VerifiedHeights { const NAME: &'static str = "VerifiedHeights"; const PACKAGE: &'static str = "penumbra.core.component.ibc.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.ibc.v1.{}", Self::NAME) + "penumbra.core.component.ibc.v1.VerifiedHeights".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.ibc.v1.VerifiedHeights".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ConnectionCounter { #[prost(uint64, tag = "1")] pub counter: u64, @@ -150,10 +164,12 @@ impl ::prost::Name for ConnectionCounter { const NAME: &'static str = "ConnectionCounter"; const PACKAGE: &'static str = "penumbra.core.component.ibc.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.ibc.v1.{}", Self::NAME) + "penumbra.core.component.ibc.v1.ConnectionCounter".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.ibc.v1.ConnectionCounter".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ClientConnections { #[prost(string, repeated, tag = "1")] @@ -163,12 +179,14 @@ impl ::prost::Name for ClientConnections { const NAME: &'static str = "ClientConnections"; const PACKAGE: &'static str = "penumbra.core.component.ibc.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.ibc.v1.{}", Self::NAME) + "penumbra.core.component.ibc.v1.ClientConnections".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.ibc.v1.ClientConnections".into() } } /// IBC configuration data. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct IbcParameters { /// Whether IBC (forming connections, processing IBC packets) is enabled. #[prost(bool, tag = "1")] @@ -184,12 +202,14 @@ impl ::prost::Name for IbcParameters { const NAME: &'static str = "IbcParameters"; const PACKAGE: &'static str = "penumbra.core.component.ibc.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.ibc.v1.{}", Self::NAME) + "penumbra.core.component.ibc.v1.IbcParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.ibc.v1.IbcParameters".into() } } /// IBC genesis state. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct GenesisContent { /// IBC parameters. #[prost(message, optional, tag = "1")] @@ -199,6 +219,9 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.component.ibc.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.ibc.v1.{}", Self::NAME) + "penumbra.core.component.ibc.v1.GenesisContent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.ibc.v1.GenesisContent".into() } } diff --git a/crates/proto/src/gen/penumbra.core.component.ibc.v1.serde.rs b/crates/proto/src/gen/penumbra.core.component.ibc.v1.serde.rs index b4bcbf3624..f65a67810b 100644 --- a/crates/proto/src/gen/penumbra.core.component.ibc.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.ibc.v1.serde.rs @@ -107,6 +107,7 @@ impl serde::Serialize for ClientCounter { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.ibc.v1.ClientCounter", len)?; if self.counter != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("counter", ToString::to_string(&self.counter).as_str())?; } struct_ser.end() @@ -223,6 +224,7 @@ impl serde::Serialize for ClientData { } if self.processed_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("processedHeight", ToString::to_string(&self.processed_height).as_str())?; } struct_ser.end() @@ -358,6 +360,7 @@ impl serde::Serialize for ConnectionCounter { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.ibc.v1.ConnectionCounter", len)?; if self.counter != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("counter", ToString::to_string(&self.counter).as_str())?; } struct_ser.end() @@ -1075,6 +1078,7 @@ impl serde::Serialize for Ics20Withdrawal { } if self.timeout_time != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("timeoutTime", ToString::to_string(&self.timeout_time).as_str())?; } if !self.source_channel.is_empty() { diff --git a/crates/proto/src/gen/penumbra.core.component.sct.v1.rs b/crates/proto/src/gen/penumbra.core.component.sct.v1.rs index 24724a4047..3d111b51d0 100644 --- a/crates/proto/src/gen/penumbra.core.component.sct.v1.rs +++ b/crates/proto/src/gen/penumbra.core.component.sct.v1.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// Configuration data for the SCT component. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct SctParameters { /// The default duration of each epoch, in number of blocks. #[prost(uint64, tag = "1")] @@ -10,12 +10,14 @@ impl ::prost::Name for SctParameters { const NAME: &'static str = "SctParameters"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.SctParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.SctParameters".into() } } /// Sct-specific genesis content. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct GenesisContent { /// The SctParameters present at genesis. #[prost(message, optional, tag = "1")] @@ -25,12 +27,14 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.GenesisContent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.GenesisContent".into() } } /// An epoch is a sequentially numbered collection of contiguous blocks. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Epoch { /// The unique index of the epoch. #[prost(uint64, tag = "1")] @@ -43,14 +47,16 @@ impl ::prost::Name for Epoch { const NAME: &'static str = "Epoch"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.Epoch".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.Epoch".into() } } /// Metadata describing the source of a commitment in the state commitment tree. /// /// This message allows clients to track provenance of state commitments, and to /// decide whether or not to download block data. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CommitmentSource { #[prost(oneof = "commitment_source::Source", tags = "1, 2, 20, 30, 40")] @@ -59,16 +65,16 @@ pub struct CommitmentSource { /// Nested message and enum types in `CommitmentSource`. pub mod commitment_source { /// The state commitment was included in the genesis state. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Genesis {} impl ::prost::Name for Genesis { const NAME: &'static str = "Genesis"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.sct.v1.CommitmentSource.{}", Self::NAME - ) + "penumbra.core.component.sct.v1.CommitmentSource.Genesis".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.CommitmentSource.Genesis".into() } } /// The commitment was created by a transaction. @@ -76,7 +82,6 @@ pub mod commitment_source { /// When included in a `CompactBlock` via a `StatePayload`, the transaction source is "dehydrated" /// by stripping the `id` field and putting empty bytes in its place. When clients perform extended /// transaction fetch, they should match up transaction hashes to "rehydrate" the source info. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Transaction { /// The transaction ID, if specified. @@ -90,14 +95,14 @@ pub mod commitment_source { const NAME: &'static str = "Transaction"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.sct.v1.CommitmentSource.{}", Self::NAME - ) + "penumbra.core.component.sct.v1.CommitmentSource.Transaction".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.CommitmentSource.Transaction".into() } } /// The commitment was created through a validator's funding stream. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct FundingStreamReward { /// The epoch index the rewards were issued in. #[prost(uint64, tag = "1")] @@ -107,26 +112,26 @@ pub mod commitment_source { const NAME: &'static str = "FundingStreamReward"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.sct.v1.CommitmentSource.{}", Self::NAME - ) + "penumbra.core.component.sct.v1.CommitmentSource.FundingStreamReward".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.CommitmentSource.FundingStreamReward".into() } } /// The commitment was created through a `CommunityPoolOutput` in a governance-initated transaction. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct CommunityPoolOutput {} impl ::prost::Name for CommunityPoolOutput { const NAME: &'static str = "CommunityPoolOutput"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.sct.v1.CommitmentSource.{}", Self::NAME - ) + "penumbra.core.component.sct.v1.CommitmentSource.CommunityPoolOutput".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.CommitmentSource.CommunityPoolOutput".into() } } /// The commitment was created by an inbound ICS20 transfer. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Ics20Transfer { /// The sequence number of the packet that triggered the transfer @@ -143,12 +148,12 @@ pub mod commitment_source { const NAME: &'static str = "Ics20Transfer"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.sct.v1.CommitmentSource.{}", Self::NAME - ) + "penumbra.core.component.sct.v1.CommitmentSource.Ics20Transfer".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.CommitmentSource.Ics20Transfer".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Source { #[prost(message, tag = "1")] @@ -167,10 +172,12 @@ impl ::prost::Name for CommitmentSource { const NAME: &'static str = "CommitmentSource"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.CommitmentSource".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.CommitmentSource".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Nullifier { #[prost(bytes = "vec", tag = "1")] @@ -180,11 +187,13 @@ impl ::prost::Name for Nullifier { const NAME: &'static str = "Nullifier"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.Nullifier".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.Nullifier".into() } } /// Records information about what transaction spent a nullifier. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NullificationInfo { #[prost(bytes = "vec", tag = "1")] @@ -196,11 +205,13 @@ impl ::prost::Name for NullificationInfo { const NAME: &'static str = "NullificationInfo"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.NullificationInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.NullificationInfo".into() } } /// Event recording a new commitment added to the SCT. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventCommitment { #[prost(message, optional, tag = "1")] @@ -216,11 +227,13 @@ impl ::prost::Name for EventCommitment { const NAME: &'static str = "EventCommitment"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.EventCommitment".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.EventCommitment".into() } } /// Event recording an SCT anchor (global root). -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventAnchor { #[prost(message, optional, tag = "1")] @@ -236,11 +249,13 @@ impl ::prost::Name for EventAnchor { const NAME: &'static str = "EventAnchor"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.EventAnchor".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.EventAnchor".into() } } /// Event recording an SCT epoch root. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventEpochRoot { #[prost(message, optional, tag = "1")] @@ -256,11 +271,13 @@ impl ::prost::Name for EventEpochRoot { const NAME: &'static str = "EventEpochRoot"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.EventEpochRoot".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.EventEpochRoot".into() } } /// Event recording an SCT block root. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventBlockRoot { #[prost(message, optional, tag = "1")] @@ -276,11 +293,13 @@ impl ::prost::Name for EventBlockRoot { const NAME: &'static str = "EventBlockRoot"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.EventBlockRoot".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.EventBlockRoot".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct EpochByHeightRequest { #[prost(uint64, tag = "1")] pub height: u64, @@ -289,11 +308,13 @@ impl ::prost::Name for EpochByHeightRequest { const NAME: &'static str = "EpochByHeightRequest"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.EpochByHeightRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.EpochByHeightRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct EpochByHeightResponse { #[prost(message, optional, tag = "1")] pub epoch: ::core::option::Option, @@ -302,11 +323,13 @@ impl ::prost::Name for EpochByHeightResponse { const NAME: &'static str = "EpochByHeightResponse"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.EpochByHeightResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.EpochByHeightResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct AnchorByHeightRequest { #[prost(uint64, tag = "1")] pub height: u64, @@ -315,10 +338,12 @@ impl ::prost::Name for AnchorByHeightRequest { const NAME: &'static str = "AnchorByHeightRequest"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.AnchorByHeightRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.AnchorByHeightRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AnchorByHeightResponse { #[prost(message, optional, tag = "1")] @@ -330,11 +355,13 @@ impl ::prost::Name for AnchorByHeightResponse { const NAME: &'static str = "AnchorByHeightResponse"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.AnchorByHeightResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.AnchorByHeightResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct TimestampByHeightRequest { #[prost(uint64, tag = "1")] pub height: u64, @@ -343,11 +370,13 @@ impl ::prost::Name for TimestampByHeightRequest { const NAME: &'static str = "TimestampByHeightRequest"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.TimestampByHeightRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.TimestampByHeightRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct TimestampByHeightResponse { #[prost(message, optional, tag = "1")] pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>, @@ -356,13 +385,22 @@ impl ::prost::Name for TimestampByHeightResponse { const NAME: &'static str = "TimestampByHeightResponse"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.sct.v1.{}", Self::NAME) + "penumbra.core.component.sct.v1.TimestampByHeightResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.sct.v1.TimestampByHeightResponse".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query operations for the SCT component. @@ -385,8 +423,8 @@ pub mod query_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -411,7 +449,7 @@ pub mod query_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -457,8 +495,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -487,8 +524,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -517,8 +553,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -541,11 +576,17 @@ pub mod query_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] - pub trait QueryService: Send + Sync + 'static { + pub trait QueryService: std::marker::Send + std::marker::Sync + 'static { async fn anchor_by_height( &self, request: tonic::Request, @@ -570,20 +611,18 @@ pub mod query_service_server { } /// Query operations for the SCT component. #[derive(Debug)] - pub struct QueryServiceServer { - inner: _Inner, + pub struct QueryServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServiceServer { + impl QueryServiceServer { 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(), @@ -633,8 +672,8 @@ pub mod query_service_server { impl tonic::codegen::Service> for QueryServiceServer where T: QueryService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -646,7 +685,6 @@ pub mod query_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.core.component.sct.v1.QueryService/AnchorByHeight" => { #[allow(non_camel_case_types)] @@ -677,7 +715,6 @@ pub mod query_service_server { 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 = AnchorByHeightSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -723,7 +760,6 @@ pub mod query_service_server { 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 = EpochByHeightSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -770,7 +806,6 @@ pub mod query_service_server { 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 = TimestampByHeightSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -789,20 +824,25 @@ pub mod query_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServiceServer { + impl Clone for QueryServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -814,17 +854,9 @@ pub mod query_service_server { } } } - 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 QueryServiceServer { - const NAME: &'static str = "penumbra.core.component.sct.v1.QueryService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.core.component.sct.v1.QueryService"; + impl tonic::server::NamedService for QueryServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.core.component.sct.v1.serde.rs b/crates/proto/src/gen/penumbra.core.component.sct.v1.serde.rs index 773dcedfea..064ca3d29f 100644 --- a/crates/proto/src/gen/penumbra.core.component.sct.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.sct.v1.serde.rs @@ -12,6 +12,7 @@ impl serde::Serialize for AnchorByHeightRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1.AnchorByHeightRequest", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } struct_ser.end() @@ -432,6 +433,7 @@ impl serde::Serialize for commitment_source::FundingStreamReward { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1.CommitmentSource.FundingStreamReward", len)?; if self.epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epochIndex", ToString::to_string(&self.epoch_index).as_str())?; } struct_ser.end() @@ -609,6 +611,7 @@ impl serde::Serialize for commitment_source::Ics20Transfer { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1.CommitmentSource.Ics20Transfer", len)?; if self.packet_seq != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("packetSeq", ToString::to_string(&self.packet_seq).as_str())?; } if !self.channel_id.is_empty() { @@ -737,6 +740,7 @@ impl serde::Serialize for commitment_source::Transaction { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1.CommitmentSource.Transaction", len)?; if !self.id.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("id", pbjson::private::base64::encode(&self.id).as_str())?; } struct_ser.end() @@ -838,10 +842,12 @@ impl serde::Serialize for Epoch { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1.Epoch", len)?; if self.index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("index", ToString::to_string(&self.index).as_str())?; } if self.start_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startHeight", ToString::to_string(&self.start_height).as_str())?; } struct_ser.end() @@ -954,6 +960,7 @@ impl serde::Serialize for EpochByHeightRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1.EpochByHeightRequest", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } struct_ser.end() @@ -1156,6 +1163,7 @@ impl serde::Serialize for EventAnchor { } if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } if let Some(v) = self.timestamp.as_ref() { @@ -1288,6 +1296,7 @@ impl serde::Serialize for EventBlockRoot { } if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } if let Some(v) = self.timestamp.as_ref() { @@ -1420,6 +1429,7 @@ impl serde::Serialize for EventCommitment { } if self.position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("position", ToString::to_string(&self.position).as_str())?; } if let Some(v) = self.source.as_ref() { @@ -1552,6 +1562,7 @@ impl serde::Serialize for EventEpochRoot { } if self.index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("index", ToString::to_string(&self.index).as_str())?; } if let Some(v) = self.timestamp.as_ref() { @@ -1774,10 +1785,12 @@ impl serde::Serialize for NullificationInfo { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1.NullificationInfo", len)?; if !self.id.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("id", pbjson::private::base64::encode(&self.id).as_str())?; } if self.spend_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("spendHeight", ToString::to_string(&self.spend_height).as_str())?; } struct_ser.end() @@ -1890,6 +1903,7 @@ impl serde::Serialize for Nullifier { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1.Nullifier", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -1988,6 +2002,7 @@ impl serde::Serialize for SctParameters { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1.SctParameters", len)?; if self.epoch_duration != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epochDuration", ToString::to_string(&self.epoch_duration).as_str())?; } struct_ser.end() @@ -2087,6 +2102,7 @@ impl serde::Serialize for TimestampByHeightRequest { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1.TimestampByHeightRequest", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1.rs b/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1.rs index 1362033de8..3e98d27a90 100644 --- a/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1.rs +++ b/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// Configuration data for the shielded pool component. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ShieldedPoolParameters { #[deprecated] #[prost(message, optional, tag = "1")] @@ -12,13 +12,13 @@ impl ::prost::Name for ShieldedPoolParameters { const NAME: &'static str = "ShieldedPoolParameters"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.ShieldedPoolParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.ShieldedPoolParameters".into() } } /// Genesis data for the shielded pool component. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisContent { #[prost(message, optional, tag = "1")] @@ -29,7 +29,6 @@ pub struct GenesisContent { } /// Nested message and enum types in `GenesisContent`. pub mod genesis_content { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Allocation { #[prost(message, optional, tag = "1")] @@ -45,9 +44,10 @@ pub mod genesis_content { const NAME: &'static str = "Allocation"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.GenesisContent.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.GenesisContent.Allocation".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.GenesisContent.Allocation".into() } } } @@ -55,14 +55,14 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.GenesisContent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.GenesisContent".into() } } /// The parameters which control how the FMD parameters evolve over time. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct FmdMetaParameters { /// How much time users have to transition to new parameters. #[prost(uint64, tag = "1")] @@ -74,8 +74,7 @@ pub struct FmdMetaParameters { /// Nested message and enum types in `FmdMetaParameters`. pub mod fmd_meta_parameters { /// A sliding window algorithm for updating the parameters. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct AlgorithmSlidingWindow { /// The window size, in terms of the number of update periods. /// @@ -90,15 +89,16 @@ pub mod fmd_meta_parameters { const NAME: &'static str = "AlgorithmSlidingWindow"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.FmdMetaParameters.{}", - Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.FmdMetaParameters.AlgorithmSlidingWindow" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.FmdMetaParameters.AlgorithmSlidingWindow" + .into() } } /// The algorithm governing how the parameters change. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Oneof)] + #[derive(Clone, Copy, PartialEq, ::prost::Oneof)] pub enum Algorithm { #[prost(uint32, tag = "2")] FixedPrecisionBits(u32), @@ -110,14 +110,14 @@ impl ::prost::Name for FmdMetaParameters { const NAME: &'static str = "FmdMetaParameters"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.FmdMetaParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.FmdMetaParameters".into() } } /// Used to potentially store state for the FMD Meta Parameters algorithm. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct FmdMetaParametersAlgorithmState { #[prost(oneof = "fmd_meta_parameters_algorithm_state::State", tags = "1, 2")] pub state: ::core::option::Option, @@ -125,22 +125,22 @@ pub struct FmdMetaParametersAlgorithmState { /// Nested message and enum types in `FmdMetaParametersAlgorithmState`. pub mod fmd_meta_parameters_algorithm_state { /// The state used for the fixed algorithm. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct FixedState {} impl ::prost::Name for FixedState { const NAME: &'static str = "FixedState"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.FmdMetaParametersAlgorithmState.{}", - Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.FmdMetaParametersAlgorithmState.FixedState" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.FmdMetaParametersAlgorithmState.FixedState" + .into() } } /// The state used for the sliding window algorithm. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct SlidingWindowState { /// The number of clues previously observed, approximately. #[prost(uint32, tag = "1")] @@ -150,14 +150,15 @@ pub mod fmd_meta_parameters_algorithm_state { const NAME: &'static str = "SlidingWindowState"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.FmdMetaParametersAlgorithmState.{}", - Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.FmdMetaParametersAlgorithmState.SlidingWindowState" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.FmdMetaParametersAlgorithmState.SlidingWindowState" + .into() } } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Oneof)] + #[derive(Clone, Copy, PartialEq, ::prost::Oneof)] pub enum State { #[prost(message, tag = "1")] Fixed(FixedState), @@ -169,14 +170,15 @@ impl ::prost::Name for FmdMetaParametersAlgorithmState { const NAME: &'static str = "FmdMetaParametersAlgorithmState"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.FmdMetaParametersAlgorithmState".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.FmdMetaParametersAlgorithmState" + .into() } } /// Parameters for Fuzzy Message Detection -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct FmdParameters { #[prost(uint32, tag = "1")] pub precision_bits: u32, @@ -187,12 +189,12 @@ impl ::prost::Name for FmdParameters { const NAME: &'static str = "FmdParameters"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.FmdParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.FmdParameters".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Note { #[prost(message, optional, tag = "1")] @@ -206,12 +208,12 @@ impl ::prost::Name for Note { const NAME: &'static str = "Note"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.Note".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.Note".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NoteView { #[prost(message, optional, tag = "1")] @@ -225,14 +227,14 @@ impl ::prost::Name for NoteView { const NAME: &'static str = "NoteView"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.NoteView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.NoteView".into() } } /// An encrypted note. /// 176 = 80(address) + 16(amount) + 32(asset ID) + 32(rseed) + 16(MAC) bytes. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NoteCiphertext { #[prost(bytes = "vec", tag = "1")] @@ -242,14 +244,14 @@ impl ::prost::Name for NoteCiphertext { const NAME: &'static str = "NoteCiphertext"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.NoteCiphertext".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.NoteCiphertext".into() } } /// The body of an output description, including only the minimal /// data required to scan and process the output. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NotePayload { /// The note commitment for the output note. 32 bytes. @@ -269,13 +271,13 @@ impl ::prost::Name for NotePayload { const NAME: &'static str = "NotePayload"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.NotePayload".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.NotePayload".into() } } /// A Penumbra ZK output proof. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ZkOutputProof { #[prost(bytes = "vec", tag = "1")] @@ -285,13 +287,13 @@ impl ::prost::Name for ZkOutputProof { const NAME: &'static str = "ZKOutputProof"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.ZKOutputProof".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.ZKOutputProof".into() } } /// A Penumbra ZK spend proof. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ZkSpendProof { #[prost(bytes = "vec", tag = "1")] @@ -301,13 +303,13 @@ impl ::prost::Name for ZkSpendProof { const NAME: &'static str = "ZKSpendProof"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.ZKSpendProof".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.ZKSpendProof".into() } } /// A Penumbra ZK nullifier derivation proof. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ZkNullifierDerivationProof { #[prost(bytes = "vec", tag = "1")] @@ -317,13 +319,13 @@ impl ::prost::Name for ZkNullifierDerivationProof { const NAME: &'static str = "ZKNullifierDerivationProof"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.ZKNullifierDerivationProof".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.ZKNullifierDerivationProof".into() } } /// Spends a shielded note. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Spend { /// The effecting data of the spend. @@ -342,13 +344,13 @@ impl ::prost::Name for Spend { const NAME: &'static str = "Spend"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.Spend".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.Spend".into() } } /// ABCI Event recording a spend. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventSpend { #[prost(message, optional, tag = "1")] @@ -358,13 +360,13 @@ impl ::prost::Name for EventSpend { const NAME: &'static str = "EventSpend"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.EventSpend".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.EventSpend".into() } } /// ABCI Event recording an output. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventOutput { #[prost(message, optional, tag = "1")] @@ -376,13 +378,13 @@ impl ::prost::Name for EventOutput { const NAME: &'static str = "EventOutput"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.EventOutput".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.EventOutput".into() } } /// ABCI Event recording a clue. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventBroadcastClue { #[prost(message, optional, tag = "1")] @@ -396,15 +398,15 @@ impl ::prost::Name for EventBroadcastClue { const NAME: &'static str = "EventBroadcastClue"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.EventBroadcastClue".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.EventBroadcastClue".into() } } /// The body of a spend description, containing only the effecting data /// describing changes to the ledger, and not the authorizing data that allows /// those changes to be performed. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SpendBody { /// A commitment to the value of the input note. @@ -425,12 +427,12 @@ impl ::prost::Name for SpendBody { const NAME: &'static str = "SpendBody"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.SpendBody".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.SpendBody".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SpendView { #[prost(oneof = "spend_view::SpendView", tags = "1, 2")] @@ -438,7 +440,6 @@ pub struct SpendView { } /// Nested message and enum types in `SpendView`. pub mod spend_view { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Visible { #[prost(message, optional, tag = "1")] @@ -450,12 +451,12 @@ pub mod spend_view { const NAME: &'static str = "Visible"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.SpendView.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.SpendView.Visible".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.SpendView.Visible".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Opaque { #[prost(message, optional, tag = "1")] @@ -465,12 +466,12 @@ pub mod spend_view { const NAME: &'static str = "Opaque"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.SpendView.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.SpendView.Opaque".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.SpendView.Opaque".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum SpendView { #[prost(message, tag = "1")] @@ -483,12 +484,12 @@ impl ::prost::Name for SpendView { const NAME: &'static str = "SpendView"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.SpendView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.SpendView".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SpendPlan { /// The plaintext note we plan to spend. @@ -514,13 +515,13 @@ impl ::prost::Name for SpendPlan { const NAME: &'static str = "SpendPlan"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.SpendPlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.SpendPlan".into() } } /// Creates a new shielded note. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Output { /// The effecting data for the output. @@ -534,15 +535,15 @@ impl ::prost::Name for Output { const NAME: &'static str = "Output"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.Output".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.Output".into() } } /// The body of an output description, containing only the effecting data /// describing changes to the ledger, and not the authorizing data that allows /// those changes to be performed. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct OutputBody { /// The minimal data required to scan and process the new output note. @@ -565,12 +566,12 @@ impl ::prost::Name for OutputBody { const NAME: &'static str = "OutputBody"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.OutputBody".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.OutputBody".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct OutputView { #[prost(oneof = "output_view::OutputView", tags = "1, 2")] @@ -578,7 +579,6 @@ pub struct OutputView { } /// Nested message and enum types in `OutputView`. pub mod output_view { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Visible { #[prost(message, optional, tag = "1")] @@ -594,12 +594,12 @@ pub mod output_view { const NAME: &'static str = "Visible"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.OutputView.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.OutputView.Visible".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.OutputView.Visible".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Opaque { #[prost(message, optional, tag = "1")] @@ -609,12 +609,12 @@ pub mod output_view { const NAME: &'static str = "Opaque"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.OutputView.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.OutputView.Opaque".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.OutputView.Opaque".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum OutputView { #[prost(message, tag = "1")] @@ -627,12 +627,12 @@ impl ::prost::Name for OutputView { const NAME: &'static str = "OutputView"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.OutputView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.OutputView".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct OutputPlan { /// The value to send to this output. @@ -658,13 +658,13 @@ impl ::prost::Name for OutputPlan { const NAME: &'static str = "OutputPlan"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.OutputPlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.OutputPlan".into() } } /// Requests information on an asset by asset id -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AssetMetadataByIdRequest { /// The asset id to request information on. @@ -675,12 +675,12 @@ impl ::prost::Name for AssetMetadataByIdRequest { const NAME: &'static str = "AssetMetadataByIdRequest"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.AssetMetadataByIdRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.AssetMetadataByIdRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AssetMetadataByIdResponse { /// If present, information on the requested asset. @@ -693,13 +693,13 @@ impl ::prost::Name for AssetMetadataByIdResponse { const NAME: &'static str = "AssetMetadataByIdResponse"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.AssetMetadataByIdResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.AssetMetadataByIdResponse".into() } } /// Requests information on an asset by multiple asset ids -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AssetMetadataByIdsRequest { /// The asset IDs to request information on. Note that node is neither required @@ -711,12 +711,12 @@ impl ::prost::Name for AssetMetadataByIdsRequest { const NAME: &'static str = "AssetMetadataByIdsRequest"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.AssetMetadataByIdsRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.AssetMetadataByIdsRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AssetMetadataByIdsResponse { /// A single asset metadata streamed from the node. @@ -727,16 +727,16 @@ impl ::prost::Name for AssetMetadataByIdsResponse { const NAME: &'static str = "AssetMetadataByIdsResponse"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.AssetMetadataByIdsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.AssetMetadataByIdsResponse".into() } } /// Metadata about the packet associated with the transfer. /// /// This allows identifying which specific packet is associated with the transfer. /// Implicitly, both ports are going to be "transfer". -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct FungibleTokenTransferPacketMetadata { /// The identifier for the channel on *this* chain. @@ -750,12 +750,14 @@ impl ::prost::Name for FungibleTokenTransferPacketMetadata { const NAME: &'static str = "FungibleTokenTransferPacketMetadata"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.FungibleTokenTransferPacketMetadata" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.FungibleTokenTransferPacketMetadata" + .into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventOutboundFungibleTokenTransfer { /// The value being transferred out of the chain. @@ -774,12 +776,14 @@ impl ::prost::Name for EventOutboundFungibleTokenTransfer { const NAME: &'static str = "EventOutboundFungibleTokenTransfer"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.EventOutboundFungibleTokenTransfer" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.EventOutboundFungibleTokenTransfer" + .into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventOutboundFungibleTokenRefund { /// The value being refunded. @@ -829,9 +833,9 @@ pub mod event_outbound_fungible_token_refund { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - Reason::Unspecified => "REASON_UNSPECIFIED", - Reason::Timeout => "REASON_TIMEOUT", - Reason::Error => "REASON_ERROR", + Self::Unspecified => "REASON_UNSPECIFIED", + Self::Timeout => "REASON_TIMEOUT", + Self::Error => "REASON_ERROR", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -849,12 +853,14 @@ impl ::prost::Name for EventOutboundFungibleTokenRefund { const NAME: &'static str = "EventOutboundFungibleTokenRefund"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.EventOutboundFungibleTokenRefund" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.EventOutboundFungibleTokenRefund" + .into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventInboundFungibleTokenTransfer { /// The value being transferred in. @@ -873,15 +879,24 @@ impl ::prost::Name for EventInboundFungibleTokenTransfer { const NAME: &'static str = "EventInboundFungibleTokenTransfer"; const PACKAGE: &'static str = "penumbra.core.component.shielded_pool.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.shielded_pool.v1.{}", Self::NAME - ) + "penumbra.core.component.shielded_pool.v1.EventInboundFungibleTokenTransfer" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.shielded_pool.v1.EventInboundFungibleTokenTransfer" + .into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query operations for the shielded pool component. @@ -904,8 +919,8 @@ pub mod query_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -930,7 +945,7 @@ pub mod query_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -976,8 +991,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1011,8 +1025,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1035,11 +1048,17 @@ pub mod query_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] - pub trait QueryService: Send + Sync + 'static { + pub trait QueryService: std::marker::Send + std::marker::Sync + 'static { async fn asset_metadata_by_id( &self, request: tonic::Request, @@ -1054,7 +1073,7 @@ pub mod query_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Requests a stream of asset metadata, given an array of asset IDs. Responses /// may be streamed in a different order from that of the asset IDs in the @@ -1071,20 +1090,18 @@ pub mod query_service_server { } /// Query operations for the shielded pool component. #[derive(Debug)] - pub struct QueryServiceServer { - inner: _Inner, + pub struct QueryServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServiceServer { + impl QueryServiceServer { 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(), @@ -1134,8 +1151,8 @@ pub mod query_service_server { impl tonic::codegen::Service> for QueryServiceServer where T: QueryService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -1147,7 +1164,6 @@ pub mod query_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.core.component.shielded_pool.v1.QueryService/AssetMetadataById" => { #[allow(non_camel_case_types)] @@ -1179,7 +1195,6 @@ pub mod query_service_server { 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 = AssetMetadataByIdSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1228,7 +1243,6 @@ pub mod query_service_server { 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 = AssetMetadataByIdsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1247,20 +1261,25 @@ pub mod query_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServiceServer { + impl Clone for QueryServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1272,17 +1291,9 @@ pub mod query_service_server { } } } - 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 QueryServiceServer { - const NAME: &'static str = "penumbra.core.component.shielded_pool.v1.QueryService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.core.component.shielded_pool.v1.QueryService"; + impl tonic::server::NamedService for QueryServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1.serde.rs b/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1.serde.rs index 85e3edf22e..7ae78e1046 100644 --- a/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1.serde.rs @@ -1233,6 +1233,7 @@ impl serde::Serialize for FmdMetaParameters { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1.FmdMetaParameters", len)?; if self.fmd_grace_period_blocks != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("fmdGracePeriodBlocks", ToString::to_string(&self.fmd_grace_period_blocks).as_str())?; } if let Some(v) = self.algorithm.as_ref() { @@ -1773,6 +1774,7 @@ impl serde::Serialize for FmdParameters { } if self.as_of_block_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("asOfBlockHeight", ToString::to_string(&self.as_of_block_height).as_str())?; } struct_ser.end() @@ -1892,6 +1894,7 @@ impl serde::Serialize for FungibleTokenTransferPacketMetadata { } if self.sequence != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("sequence", ToString::to_string(&self.sequence).as_str())?; } struct_ser.end() @@ -2252,6 +2255,7 @@ impl serde::Serialize for Note { } if !self.rseed.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("rseed", pbjson::private::base64::encode(&self.rseed).as_str())?; } if let Some(v) = self.address.as_ref() { @@ -2375,6 +2379,7 @@ impl serde::Serialize for NoteCiphertext { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1.NoteCiphertext", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -2482,6 +2487,7 @@ impl serde::Serialize for NotePayload { } if !self.ephemeral_key.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("ephemeralKey", pbjson::private::base64::encode(&self.ephemeral_key).as_str())?; } if let Some(v) = self.encrypted_note.as_ref() { @@ -2617,6 +2623,7 @@ impl serde::Serialize for NoteView { } if !self.rseed.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("rseed", pbjson::private::base64::encode(&self.rseed).as_str())?; } if let Some(v) = self.address.as_ref() { @@ -2867,10 +2874,12 @@ impl serde::Serialize for OutputBody { } if !self.wrapped_memo_key.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("wrappedMemoKey", pbjson::private::base64::encode(&self.wrapped_memo_key).as_str())?; } if !self.ovk_wrapped_key.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("ovkWrappedKey", pbjson::private::base64::encode(&self.ovk_wrapped_key).as_str())?; } struct_ser.end() @@ -3029,18 +3038,22 @@ impl serde::Serialize for OutputPlan { } if !self.rseed.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("rseed", pbjson::private::base64::encode(&self.rseed).as_str())?; } if !self.value_blinding.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("valueBlinding", pbjson::private::base64::encode(&self.value_blinding).as_str())?; } if !self.proof_blinding_r.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofBlindingR", pbjson::private::base64::encode(&self.proof_blinding_r).as_str())?; } if !self.proof_blinding_s.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofBlindingS", pbjson::private::base64::encode(&self.proof_blinding_s).as_str())?; } struct_ser.end() @@ -3934,22 +3947,27 @@ impl serde::Serialize for SpendPlan { } if self.position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("position", ToString::to_string(&self.position).as_str())?; } if !self.randomizer.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("randomizer", pbjson::private::base64::encode(&self.randomizer).as_str())?; } if !self.value_blinding.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("valueBlinding", pbjson::private::base64::encode(&self.value_blinding).as_str())?; } if !self.proof_blinding_r.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofBlindingR", pbjson::private::base64::encode(&self.proof_blinding_r).as_str())?; } if !self.proof_blinding_s.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofBlindingS", pbjson::private::base64::encode(&self.proof_blinding_s).as_str())?; } struct_ser.end() @@ -4434,6 +4452,7 @@ impl serde::Serialize for ZkNullifierDerivationProof { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1.ZKNullifierDerivationProof", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -4532,6 +4551,7 @@ impl serde::Serialize for ZkOutputProof { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1.ZKOutputProof", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -4630,6 +4650,7 @@ impl serde::Serialize for ZkSpendProof { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1.ZKSpendProof", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.core.component.stake.v1.rs b/crates/proto/src/gen/penumbra.core.component.stake.v1.rs index 27b7ffe457..46531b65a3 100644 --- a/crates/proto/src/gen/penumbra.core.component.stake.v1.rs +++ b/crates/proto/src/gen/penumbra.core.component.stake.v1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// A Penumbra ZK undelegate claim proof. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ZkUndelegateClaimProof { #[prost(bytes = "vec", tag = "1")] @@ -9,11 +9,13 @@ impl ::prost::Name for ZkUndelegateClaimProof { const NAME: &'static str = "ZKUndelegateClaimProof"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ZKUndelegateClaimProof".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ZKUndelegateClaimProof".into() } } /// Describes a validator's configuration data. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Validator { /// The validator's identity verification key. @@ -54,11 +56,13 @@ impl ::prost::Name for Validator { const NAME: &'static str = "Validator"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.Validator".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.Validator".into() } } /// For storing the list of keys of known validators. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorList { #[prost(message, repeated, tag = "1")] @@ -70,11 +74,13 @@ impl ::prost::Name for ValidatorList { const NAME: &'static str = "ValidatorList"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorList".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorList".into() } } /// A portion of a validator's commission. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct FundingStream { /// The recipient of the funding stream. @@ -83,7 +89,6 @@ pub struct FundingStream { } /// Nested message and enum types in `FundingStream`. pub mod funding_stream { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ToAddress { /// The destination address for the funding stream. @@ -98,13 +103,13 @@ pub mod funding_stream { const NAME: &'static str = "ToAddress"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.stake.v1.FundingStream.{}", Self::NAME - ) + "penumbra.core.component.stake.v1.FundingStream.ToAddress".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.FundingStream.ToAddress".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ToCommunityPool { /// The portion of the staking reward for the entire delegation pool /// allocated to this funding stream, specified in basis points. @@ -115,13 +120,13 @@ pub mod funding_stream { const NAME: &'static str = "ToCommunityPool"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.stake.v1.FundingStream.{}", Self::NAME - ) + "penumbra.core.component.stake.v1.FundingStream.ToCommunityPool".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.FundingStream.ToCommunityPool".into() } } /// The recipient of the funding stream. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Recipient { #[prost(message, tag = "1")] @@ -134,11 +139,13 @@ impl ::prost::Name for FundingStream { const NAME: &'static str = "FundingStream"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.FundingStream".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.FundingStream".into() } } /// Describes the reward and exchange rates and voting power for a validator in some epoch. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RateData { #[prost(message, optional, tag = "1")] @@ -163,12 +170,14 @@ impl ::prost::Name for RateData { const NAME: &'static str = "RateData"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.RateData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.RateData".into() } } /// Describes the base reward and exchange rates in some epoch. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct BaseRateData { #[prost(uint64, tag = "1")] pub epoch_index: u64, @@ -181,11 +190,13 @@ impl ::prost::Name for BaseRateData { const NAME: &'static str = "BaseRateData"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.BaseRateData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.BaseRateData".into() } } /// Describes the current state of a validator on-chain -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorStatus { #[prost(message, optional, tag = "1")] @@ -201,12 +212,14 @@ impl ::prost::Name for ValidatorStatus { const NAME: &'static str = "ValidatorStatus"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorStatus".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorStatus".into() } } /// Describes the unbonding state of a validator's stake pool. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct BondingState { #[prost(enumeration = "bonding_state::BondingStateEnum", tag = "1")] pub state: i32, @@ -243,10 +256,10 @@ pub mod bonding_state { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - BondingStateEnum::Unspecified => "BONDING_STATE_ENUM_UNSPECIFIED", - BondingStateEnum::Bonded => "BONDING_STATE_ENUM_BONDED", - BondingStateEnum::Unbonding => "BONDING_STATE_ENUM_UNBONDING", - BondingStateEnum::Unbonded => "BONDING_STATE_ENUM_UNBONDED", + Self::Unspecified => "BONDING_STATE_ENUM_UNSPECIFIED", + Self::Bonded => "BONDING_STATE_ENUM_BONDED", + Self::Unbonding => "BONDING_STATE_ENUM_UNBONDING", + Self::Unbonded => "BONDING_STATE_ENUM_UNBONDED", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -265,12 +278,14 @@ impl ::prost::Name for BondingState { const NAME: &'static str = "BondingState"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.BondingState".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.BondingState".into() } } /// Describes the state of a validator -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ValidatorState { #[prost(enumeration = "validator_state::ValidatorStateEnum", tag = "1")] pub state: i32, @@ -305,13 +320,13 @@ pub mod validator_state { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - ValidatorStateEnum::Unspecified => "VALIDATOR_STATE_ENUM_UNSPECIFIED", - ValidatorStateEnum::Defined => "VALIDATOR_STATE_ENUM_DEFINED", - ValidatorStateEnum::Inactive => "VALIDATOR_STATE_ENUM_INACTIVE", - ValidatorStateEnum::Active => "VALIDATOR_STATE_ENUM_ACTIVE", - ValidatorStateEnum::Jailed => "VALIDATOR_STATE_ENUM_JAILED", - ValidatorStateEnum::Tombstoned => "VALIDATOR_STATE_ENUM_TOMBSTONED", - ValidatorStateEnum::Disabled => "VALIDATOR_STATE_ENUM_DISABLED", + Self::Unspecified => "VALIDATOR_STATE_ENUM_UNSPECIFIED", + Self::Defined => "VALIDATOR_STATE_ENUM_DEFINED", + Self::Inactive => "VALIDATOR_STATE_ENUM_INACTIVE", + Self::Active => "VALIDATOR_STATE_ENUM_ACTIVE", + Self::Jailed => "VALIDATOR_STATE_ENUM_JAILED", + Self::Tombstoned => "VALIDATOR_STATE_ENUM_TOMBSTONED", + Self::Disabled => "VALIDATOR_STATE_ENUM_DISABLED", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -333,11 +348,13 @@ impl ::prost::Name for ValidatorState { const NAME: &'static str = "ValidatorState"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorState".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorState".into() } } /// Combines all validator info into a single packet. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorInfo { #[prost(message, optional, tag = "1")] @@ -351,11 +368,13 @@ impl ::prost::Name for ValidatorInfo { const NAME: &'static str = "ValidatorInfo"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorInfo".into() } } /// A transaction action (re)defining a validator. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorDefinition { /// The configuration data for the validator. @@ -369,11 +388,13 @@ impl ::prost::Name for ValidatorDefinition { const NAME: &'static str = "ValidatorDefinition"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorDefinition".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorDefinition".into() } } /// A transaction action adding stake to a validator's delegation pool. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Delegate { /// The identity key of the validator to delegate to. @@ -401,11 +422,13 @@ impl ::prost::Name for Delegate { const NAME: &'static str = "Delegate"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.Delegate".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.Delegate".into() } } /// A transaction action withdrawing stake from a validator's delegation pool. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Undelegate { /// The identity key of the validator to undelegate from. @@ -435,12 +458,14 @@ impl ::prost::Name for Undelegate { const NAME: &'static str = "Undelegate"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.Undelegate".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.Undelegate".into() } } /// A transaction action finishing an undelegation, converting (slashable) /// "unbonding tokens" to (unslashable) staking tokens. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UndelegateClaim { #[prost(message, optional, tag = "1")] @@ -452,10 +477,12 @@ impl ::prost::Name for UndelegateClaim { const NAME: &'static str = "UndelegateClaim"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.UndelegateClaim".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.UndelegateClaim".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UndelegateClaimBody { /// The identity key of the validator to finish undelegating from. @@ -484,10 +511,12 @@ impl ::prost::Name for UndelegateClaimBody { const NAME: &'static str = "UndelegateClaimBody"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.UndelegateClaimBody".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.UndelegateClaimBody".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UndelegateClaimPlan { /// The identity key of the validator to finish undelegating from. @@ -524,11 +553,13 @@ impl ::prost::Name for UndelegateClaimPlan { const NAME: &'static str = "UndelegateClaimPlan"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.UndelegateClaimPlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.UndelegateClaimPlan".into() } } /// A list of pending delegations and undelegations. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DelegationChanges { #[prost(message, repeated, tag = "1")] @@ -540,11 +571,13 @@ impl ::prost::Name for DelegationChanges { const NAME: &'static str = "DelegationChanges"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.DelegationChanges".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.DelegationChanges".into() } } /// Track's a validator's uptime. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Uptime { #[prost(uint64, tag = "1")] @@ -558,12 +591,14 @@ impl ::prost::Name for Uptime { const NAME: &'static str = "Uptime"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.Uptime".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.Uptime".into() } } /// Tracks our view of Tendermint's view of the validator set, so we can keep it /// from getting confused. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CurrentConsensusKeys { #[prost(message, repeated, tag = "1")] @@ -575,11 +610,13 @@ impl ::prost::Name for CurrentConsensusKeys { const NAME: &'static str = "CurrentConsensusKeys"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.CurrentConsensusKeys".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.CurrentConsensusKeys".into() } } /// Tracks slashing penalties applied to a validator in some epoch. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Penalty { #[prost(bytes = "vec", tag = "1")] @@ -589,11 +626,13 @@ impl ::prost::Name for Penalty { const NAME: &'static str = "Penalty"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.Penalty".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.Penalty".into() } } /// Requests information about a specific validator. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetValidatorInfoRequest { /// The identity key of the validator. @@ -604,10 +643,12 @@ impl ::prost::Name for GetValidatorInfoRequest { const NAME: &'static str = "GetValidatorInfoRequest"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.GetValidatorInfoRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.GetValidatorInfoRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetValidatorInfoResponse { #[prost(message, optional, tag = "1")] @@ -617,12 +658,14 @@ impl ::prost::Name for GetValidatorInfoResponse { const NAME: &'static str = "GetValidatorInfoResponse"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.GetValidatorInfoResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.GetValidatorInfoResponse".into() } } /// Requests information on the chain's validators. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ValidatorInfoRequest { /// Whether or not to return inactive validators #[prost(bool, tag = "2")] @@ -632,10 +675,12 @@ impl ::prost::Name for ValidatorInfoRequest { const NAME: &'static str = "ValidatorInfoRequest"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorInfoRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorInfoRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorInfoResponse { #[prost(message, optional, tag = "1")] @@ -645,10 +690,12 @@ impl ::prost::Name for ValidatorInfoResponse { const NAME: &'static str = "ValidatorInfoResponse"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorInfoResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorInfoResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorStatusRequest { #[prost(message, optional, tag = "2")] @@ -658,10 +705,12 @@ impl ::prost::Name for ValidatorStatusRequest { const NAME: &'static str = "ValidatorStatusRequest"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorStatusRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorStatusRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorStatusResponse { #[prost(message, optional, tag = "1")] @@ -671,11 +720,13 @@ impl ::prost::Name for ValidatorStatusResponse { const NAME: &'static str = "ValidatorStatusResponse"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorStatusResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorStatusResponse".into() } } /// Requests the compounded penalty for a validator over a range of epochs. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorPenaltyRequest { #[prost(message, optional, tag = "2")] @@ -689,10 +740,12 @@ impl ::prost::Name for ValidatorPenaltyRequest { const NAME: &'static str = "ValidatorPenaltyRequest"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorPenaltyRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorPenaltyRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorPenaltyResponse { #[prost(message, optional, tag = "1")] @@ -702,10 +755,12 @@ impl ::prost::Name for ValidatorPenaltyResponse { const NAME: &'static str = "ValidatorPenaltyResponse"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorPenaltyResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorPenaltyResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CurrentValidatorRateRequest { #[prost(message, optional, tag = "2")] @@ -715,10 +770,12 @@ impl ::prost::Name for CurrentValidatorRateRequest { const NAME: &'static str = "CurrentValidatorRateRequest"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.CurrentValidatorRateRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.CurrentValidatorRateRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CurrentValidatorRateResponse { #[prost(message, optional, tag = "1")] @@ -728,10 +785,12 @@ impl ::prost::Name for CurrentValidatorRateResponse { const NAME: &'static str = "CurrentValidatorRateResponse"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.CurrentValidatorRateResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.CurrentValidatorRateResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorUptimeRequest { #[prost(message, optional, tag = "2")] @@ -741,10 +800,12 @@ impl ::prost::Name for ValidatorUptimeRequest { const NAME: &'static str = "ValidatorUptimeRequest"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorUptimeRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorUptimeRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorUptimeResponse { #[prost(message, optional, tag = "1")] @@ -754,12 +815,14 @@ impl ::prost::Name for ValidatorUptimeResponse { const NAME: &'static str = "ValidatorUptimeResponse"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.ValidatorUptimeResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.ValidatorUptimeResponse".into() } } /// Staking configuration data. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct StakeParameters { /// The number of epochs an unbonding note for before being released. #[deprecated] @@ -797,11 +860,13 @@ impl ::prost::Name for StakeParameters { const NAME: &'static str = "StakeParameters"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.StakeParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.StakeParameters".into() } } /// Genesis data for the staking component. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisContent { /// The configuration parameters for the staking component present at genesis @@ -815,10 +880,12 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.GenesisContent".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.GenesisContent".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventTombstoneValidator { /// The height at which the offense occurred. @@ -841,10 +908,12 @@ impl ::prost::Name for EventTombstoneValidator { const NAME: &'static str = "EventTombstoneValidator"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.EventTombstoneValidator".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.EventTombstoneValidator".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventValidatorStateChange { /// The validator's identity key. @@ -858,10 +927,12 @@ impl ::prost::Name for EventValidatorStateChange { const NAME: &'static str = "EventValidatorStateChange"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.EventValidatorStateChange".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.EventValidatorStateChange".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventValidatorVotingPowerChange { /// The validator's identity key. @@ -875,10 +946,12 @@ impl ::prost::Name for EventValidatorVotingPowerChange { const NAME: &'static str = "EventValidatorVotingPowerChange"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.EventValidatorVotingPowerChange".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.EventValidatorVotingPowerChange".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventValidatorBondingStateChange { /// The validator's identity key. @@ -892,10 +965,12 @@ impl ::prost::Name for EventValidatorBondingStateChange { const NAME: &'static str = "EventValidatorBondingStateChange"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.EventValidatorBondingStateChange".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.EventValidatorBondingStateChange".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventRateDataChange { /// The validator's identity key. @@ -909,10 +984,12 @@ impl ::prost::Name for EventRateDataChange { const NAME: &'static str = "EventRateDataChange"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.EventRateDataChange".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.EventRateDataChange".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventValidatorDefinitionUpload { /// The validator definition. @@ -923,10 +1000,12 @@ impl ::prost::Name for EventValidatorDefinitionUpload { const NAME: &'static str = "EventValidatorDefinitionUpload"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.EventValidatorDefinitionUpload".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.EventValidatorDefinitionUpload".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventValidatorMissedBlock { /// The validator's identity key. @@ -937,10 +1016,12 @@ impl ::prost::Name for EventValidatorMissedBlock { const NAME: &'static str = "EventValidatorMissedBlock"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.EventValidatorMissedBlock".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.EventValidatorMissedBlock".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventDelegate { /// The validator's identity key. @@ -954,10 +1035,12 @@ impl ::prost::Name for EventDelegate { const NAME: &'static str = "EventDelegate"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.EventDelegate".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.EventDelegate".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventUndelegate { /// The validator's identity key. @@ -971,11 +1054,13 @@ impl ::prost::Name for EventUndelegate { const NAME: &'static str = "EventUndelegate"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.EventUndelegate".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.EventUndelegate".into() } } /// Indicates a slashing penalty was applied to a validator's reward rates. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventSlashingPenaltyApplied { /// The validator's identity key. @@ -992,13 +1077,22 @@ impl ::prost::Name for EventSlashingPenaltyApplied { const NAME: &'static str = "EventSlashingPenaltyApplied"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.stake.v1.{}", Self::NAME) + "penumbra.core.component.stake.v1.EventSlashingPenaltyApplied".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.component.stake.v1.EventSlashingPenaltyApplied".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Query operations for the staking component. @@ -1021,8 +1115,8 @@ pub mod query_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -1047,7 +1141,7 @@ pub mod query_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -1094,8 +1188,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1125,8 +1218,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1155,8 +1247,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1185,8 +1276,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1215,8 +1305,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1245,8 +1334,7 @@ pub mod query_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1269,11 +1357,17 @@ pub mod query_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod query_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] - pub trait QueryService: Send + Sync + 'static { + pub trait QueryService: std::marker::Send + std::marker::Sync + 'static { /// Queries for information about a specific validator. async fn get_validator_info( &self, @@ -1286,7 +1380,7 @@ pub mod query_service_server { type ValidatorInfoStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Queries the current validator set, with filtering. async fn validator_info( @@ -1327,20 +1421,18 @@ pub mod query_service_server { } /// Query operations for the staking component. #[derive(Debug)] - pub struct QueryServiceServer { - inner: _Inner, + pub struct QueryServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl QueryServiceServer { + impl QueryServiceServer { 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(), @@ -1390,8 +1482,8 @@ pub mod query_service_server { impl tonic::codegen::Service> for QueryServiceServer where T: QueryService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -1403,7 +1495,6 @@ pub mod query_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.core.component.stake.v1.QueryService/GetValidatorInfo" => { #[allow(non_camel_case_types)] @@ -1435,7 +1526,6 @@ pub mod query_service_server { 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 = GetValidatorInfoSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1482,7 +1572,6 @@ pub mod query_service_server { 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 = ValidatorInfoSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1528,7 +1617,6 @@ pub mod query_service_server { 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 = ValidatorStatusSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1575,7 +1663,6 @@ pub mod query_service_server { 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 = ValidatorPenaltySvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1622,7 +1709,6 @@ pub mod query_service_server { 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 = CurrentValidatorRateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1668,7 +1754,6 @@ pub mod query_service_server { 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 = ValidatorUptimeSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1687,20 +1772,25 @@ pub mod query_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for QueryServiceServer { + impl Clone for QueryServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1712,17 +1802,9 @@ pub mod query_service_server { } } } - 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 QueryServiceServer { - const NAME: &'static str = "penumbra.core.component.stake.v1.QueryService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.core.component.stake.v1.QueryService"; + impl tonic::server::NamedService for QueryServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.core.component.stake.v1.serde.rs b/crates/proto/src/gen/penumbra.core.component.stake.v1.serde.rs index e3f0f42615..64e228715c 100644 --- a/crates/proto/src/gen/penumbra.core.component.stake.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.stake.v1.serde.rs @@ -18,6 +18,7 @@ impl serde::Serialize for BaseRateData { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1.BaseRateData", len)?; if self.epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epochIndex", ToString::to_string(&self.epoch_index).as_str())?; } if let Some(v) = self.base_reward_rate.as_ref() { @@ -158,10 +159,12 @@ impl serde::Serialize for BondingState { } if self.unbonds_at_epoch != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("unbondsAtEpoch", ToString::to_string(&self.unbonds_at_epoch).as_str())?; } if self.unbonds_at_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("unbondsAtHeight", ToString::to_string(&self.unbonds_at_height).as_str())?; } struct_ser.end() @@ -662,6 +665,7 @@ impl serde::Serialize for Delegate { } if self.epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epochIndex", ToString::to_string(&self.epoch_index).as_str())?; } if let Some(v) = self.unbonded_amount.as_ref() { @@ -1151,6 +1155,7 @@ impl serde::Serialize for EventSlashingPenaltyApplied { } if self.epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epochIndex", ToString::to_string(&self.epoch_index).as_str())?; } if let Some(v) = self.new_penalty.as_ref() { @@ -1289,10 +1294,12 @@ impl serde::Serialize for EventTombstoneValidator { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1.EventTombstoneValidator", len)?; if self.evidence_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("evidenceHeight", ToString::to_string(&self.evidence_height).as_str())?; } if self.current_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("currentHeight", ToString::to_string(&self.current_height).as_str())?; } if let Some(v) = self.identity_key.as_ref() { @@ -1300,10 +1307,12 @@ impl serde::Serialize for EventTombstoneValidator { } if !self.address.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("address", pbjson::private::base64::encode(&self.address).as_str())?; } if self.voting_power != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("votingPower", ToString::to_string(&self.voting_power).as_str())?; } struct_ser.end() @@ -2734,6 +2743,7 @@ impl serde::Serialize for Penalty { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1.Penalty", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -2844,6 +2854,7 @@ impl serde::Serialize for RateData { } if self.epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epochIndex", ToString::to_string(&self.epoch_index).as_str())?; } if let Some(v) = self.validator_reward_rate.as_ref() { @@ -3009,30 +3020,37 @@ impl serde::Serialize for StakeParameters { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1.StakeParameters", len)?; if self.unbonding_epochs != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("unbondingEpochs", ToString::to_string(&self.unbonding_epochs).as_str())?; } if self.active_validator_limit != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("activeValidatorLimit", ToString::to_string(&self.active_validator_limit).as_str())?; } if self.base_reward_rate != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("baseRewardRate", ToString::to_string(&self.base_reward_rate).as_str())?; } if self.slashing_penalty_misbehavior != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("slashingPenaltyMisbehavior", ToString::to_string(&self.slashing_penalty_misbehavior).as_str())?; } if self.slashing_penalty_downtime != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("slashingPenaltyDowntime", ToString::to_string(&self.slashing_penalty_downtime).as_str())?; } if self.signed_blocks_window_len != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("signedBlocksWindowLen", ToString::to_string(&self.signed_blocks_window_len).as_str())?; } if self.missed_blocks_maximum != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("missedBlocksMaximum", ToString::to_string(&self.missed_blocks_maximum).as_str())?; } if let Some(v) = self.min_validator_stake.as_ref() { @@ -3040,6 +3058,7 @@ impl serde::Serialize for StakeParameters { } if self.unbonding_delay != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("unbondingDelay", ToString::to_string(&self.unbonding_delay).as_str())?; } struct_ser.end() @@ -3264,6 +3283,7 @@ impl serde::Serialize for Undelegate { } if self.start_epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startEpochIndex", ToString::to_string(&self.start_epoch_index).as_str())?; } if let Some(v) = self.unbonded_amount.as_ref() { @@ -3426,6 +3446,7 @@ impl serde::Serialize for UndelegateClaim { } if !self.proof.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proof", pbjson::private::base64::encode(&self.proof).as_str())?; } struct_ser.end() @@ -3550,6 +3571,7 @@ impl serde::Serialize for UndelegateClaimBody { } if self.start_epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startEpochIndex", ToString::to_string(&self.start_epoch_index).as_str())?; } if let Some(v) = self.penalty.as_ref() { @@ -3560,6 +3582,7 @@ impl serde::Serialize for UndelegateClaimBody { } if self.unbonding_start_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("unbondingStartHeight", ToString::to_string(&self.unbonding_start_height).as_str())?; } struct_ser.end() @@ -3732,6 +3755,7 @@ impl serde::Serialize for UndelegateClaimPlan { } if self.start_epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startEpochIndex", ToString::to_string(&self.start_epoch_index).as_str())?; } if let Some(v) = self.penalty.as_ref() { @@ -3742,18 +3766,22 @@ impl serde::Serialize for UndelegateClaimPlan { } if !self.balance_blinding.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("balanceBlinding", pbjson::private::base64::encode(&self.balance_blinding).as_str())?; } if !self.proof_blinding_r.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofBlindingR", pbjson::private::base64::encode(&self.proof_blinding_r).as_str())?; } if !self.proof_blinding_s.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofBlindingS", pbjson::private::base64::encode(&self.proof_blinding_s).as_str())?; } if self.unbonding_start_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("unbondingStartHeight", ToString::to_string(&self.unbonding_start_height).as_str())?; } struct_ser.end() @@ -3950,6 +3978,7 @@ impl serde::Serialize for Uptime { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1.Uptime", len)?; if self.as_of_block_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("asOfBlockHeight", ToString::to_string(&self.as_of_block_height).as_str())?; } if self.window_len != 0 { @@ -3957,6 +3986,7 @@ impl serde::Serialize for Uptime { } if !self.bitvec.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("bitvec", pbjson::private::base64::encode(&self.bitvec).as_str())?; } struct_ser.end() @@ -4110,6 +4140,7 @@ impl serde::Serialize for Validator { } if !self.consensus_key.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("consensusKey", pbjson::private::base64::encode(&self.consensus_key).as_str())?; } if !self.name.is_empty() { @@ -4330,6 +4361,7 @@ impl serde::Serialize for ValidatorDefinition { } if !self.auth_sig.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("authSig", pbjson::private::base64::encode(&self.auth_sig).as_str())?; } struct_ser.end() @@ -4867,10 +4899,12 @@ impl serde::Serialize for ValidatorPenaltyRequest { } if self.start_epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startEpochIndex", ToString::to_string(&self.start_epoch_index).as_str())?; } if self.end_epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("endEpochIndex", ToString::to_string(&self.end_epoch_index).as_str())?; } struct_ser.end() @@ -5805,6 +5839,7 @@ impl serde::Serialize for ZkUndelegateClaimProof { let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1.ZKUndelegateClaimProof", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.core.keys.v1.rs b/crates/proto/src/gen/penumbra.core.keys.v1.rs index 6ba8e5c292..c59d5084e7 100644 --- a/crates/proto/src/gen/penumbra.core.keys.v1.rs +++ b/crates/proto/src/gen/penumbra.core.keys.v1.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// A Penumbra address. An address in Penumbra is a Bech32m-encoded /// string, with the human-readable prefix (HRP) `penumbrav2t`. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Address { /// The bytes of the address. Must be represented as a series of @@ -21,10 +21,12 @@ impl ::prost::Name for Address { const NAME: &'static str = "Address"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.{}", Self::NAME) + "penumbra.core.keys.v1.Address".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.Address".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AddressView { #[prost(oneof = "address_view::AddressView", tags = "1, 2")] @@ -33,7 +35,6 @@ pub struct AddressView { /// Nested message and enum types in `AddressView`. pub mod address_view { /// A decoded address, with information about the address index and wallet ID visible. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Decoded { #[prost(message, optional, tag = "1")] @@ -47,11 +48,13 @@ pub mod address_view { const NAME: &'static str = "Decoded"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.AddressView.{}", Self::NAME) + "penumbra.core.keys.v1.AddressView.Decoded".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.AddressView.Decoded".into() } } /// An opaque address, with no information about the address index or wallet ID visible. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Opaque { #[prost(message, optional, tag = "1")] @@ -61,10 +64,12 @@ pub mod address_view { const NAME: &'static str = "Opaque"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.AddressView.{}", Self::NAME) + "penumbra.core.keys.v1.AddressView.Opaque".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.AddressView.Opaque".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum AddressView { #[prost(message, tag = "1")] @@ -77,10 +82,12 @@ impl ::prost::Name for AddressView { const NAME: &'static str = "AddressView"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.{}", Self::NAME) + "penumbra.core.keys.v1.AddressView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.AddressView".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PayloadKey { #[prost(bytes = "vec", tag = "1")] @@ -90,10 +97,12 @@ impl ::prost::Name for PayloadKey { const NAME: &'static str = "PayloadKey"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.{}", Self::NAME) + "penumbra.core.keys.v1.PayloadKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.PayloadKey".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SpendKey { #[prost(bytes = "vec", tag = "1")] @@ -103,10 +112,12 @@ impl ::prost::Name for SpendKey { const NAME: &'static str = "SpendKey"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.{}", Self::NAME) + "penumbra.core.keys.v1.SpendKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.SpendKey".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct FullViewingKey { #[prost(bytes = "vec", tag = "1")] @@ -116,10 +127,12 @@ impl ::prost::Name for FullViewingKey { const NAME: &'static str = "FullViewingKey"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.{}", Self::NAME) + "penumbra.core.keys.v1.FullViewingKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.FullViewingKey".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WalletId { #[prost(bytes = "vec", tag = "1")] @@ -129,10 +142,12 @@ impl ::prost::Name for WalletId { const NAME: &'static str = "WalletId"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.{}", Self::NAME) + "penumbra.core.keys.v1.WalletId".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.WalletId".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Diversifier { #[prost(bytes = "vec", tag = "1")] @@ -142,10 +157,12 @@ impl ::prost::Name for Diversifier { const NAME: &'static str = "Diversifier"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.{}", Self::NAME) + "penumbra.core.keys.v1.Diversifier".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.Diversifier".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AddressIndex { #[prost(uint32, tag = "2")] @@ -157,11 +174,13 @@ impl ::prost::Name for AddressIndex { const NAME: &'static str = "AddressIndex"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.{}", Self::NAME) + "penumbra.core.keys.v1.AddressIndex".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.AddressIndex".into() } } /// A validator's identity key (decaf377-rdsa spendauth verification key). -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IdentityKey { #[prost(bytes = "vec", tag = "1")] @@ -171,11 +190,13 @@ impl ::prost::Name for IdentityKey { const NAME: &'static str = "IdentityKey"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.{}", Self::NAME) + "penumbra.core.keys.v1.IdentityKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.IdentityKey".into() } } /// A validator's governance key (decaf377-rdsa spendauth verification key). -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GovernanceKey { #[prost(bytes = "vec", tag = "1")] @@ -185,10 +206,12 @@ impl ::prost::Name for GovernanceKey { const NAME: &'static str = "GovernanceKey"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.{}", Self::NAME) + "penumbra.core.keys.v1.GovernanceKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.GovernanceKey".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsensusKey { #[prost(bytes = "vec", tag = "1")] @@ -198,6 +221,9 @@ impl ::prost::Name for ConsensusKey { const NAME: &'static str = "ConsensusKey"; const PACKAGE: &'static str = "penumbra.core.keys.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.keys.v1.{}", Self::NAME) + "penumbra.core.keys.v1.ConsensusKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.keys.v1.ConsensusKey".into() } } diff --git a/crates/proto/src/gen/penumbra.core.keys.v1.serde.rs b/crates/proto/src/gen/penumbra.core.keys.v1.serde.rs index 3413390f9f..273b9fa030 100644 --- a/crates/proto/src/gen/penumbra.core.keys.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.keys.v1.serde.rs @@ -15,6 +15,7 @@ impl serde::Serialize for Address { let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1.Address", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } if !self.alt_bech32m.is_empty() { @@ -134,6 +135,7 @@ impl serde::Serialize for AddressIndex { } if !self.randomizer.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("randomizer", pbjson::private::base64::encode(&self.randomizer).as_str())?; } struct_ser.end() @@ -583,6 +585,7 @@ impl serde::Serialize for ConsensusKey { let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1.ConsensusKey", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -681,6 +684,7 @@ impl serde::Serialize for Diversifier { let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1.Diversifier", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -779,6 +783,7 @@ impl serde::Serialize for FullViewingKey { let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1.FullViewingKey", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -877,6 +882,7 @@ impl serde::Serialize for GovernanceKey { let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1.GovernanceKey", len)?; if !self.gk.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("gk", pbjson::private::base64::encode(&self.gk).as_str())?; } struct_ser.end() @@ -975,6 +981,7 @@ impl serde::Serialize for IdentityKey { let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1.IdentityKey", len)?; if !self.ik.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("ik", pbjson::private::base64::encode(&self.ik).as_str())?; } struct_ser.end() @@ -1073,6 +1080,7 @@ impl serde::Serialize for PayloadKey { let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1.PayloadKey", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -1171,6 +1179,7 @@ impl serde::Serialize for SpendKey { let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1.SpendKey", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -1269,6 +1278,7 @@ impl serde::Serialize for WalletId { let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1.WalletId", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.core.num.v1.rs b/crates/proto/src/gen/penumbra.core.num.v1.rs index fa7b875da5..b984486038 100644 --- a/crates/proto/src/gen/penumbra.core.num.v1.rs +++ b/crates/proto/src/gen/penumbra.core.num.v1.rs @@ -1,10 +1,10 @@ +// This file is @generated by prost-build. /// The quantity of a particular Asset. Represented as a 128-bit unsigned integer, /// split over two fields, `lo` and `hi`, representing the low- and high-order bytes /// of the 128-bit value, respectively. Clients must assemble these bits in their /// implementation into a `uint128` or comparable data structure, in order to model /// the Amount accurately. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Amount { #[prost(uint64, tag = "1")] pub lo: u64, @@ -15,6 +15,9 @@ impl ::prost::Name for Amount { const NAME: &'static str = "Amount"; const PACKAGE: &'static str = "penumbra.core.num.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.num.v1.{}", Self::NAME) + "penumbra.core.num.v1.Amount".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.num.v1.Amount".into() } } diff --git a/crates/proto/src/gen/penumbra.core.num.v1.serde.rs b/crates/proto/src/gen/penumbra.core.num.v1.serde.rs index f87f4a5f9e..fa6c06fdb4 100644 --- a/crates/proto/src/gen/penumbra.core.num.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.num.v1.serde.rs @@ -15,10 +15,12 @@ impl serde::Serialize for Amount { let mut struct_ser = serializer.serialize_struct("penumbra.core.num.v1.Amount", len)?; if self.lo != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("lo", ToString::to_string(&self.lo).as_str())?; } if self.hi != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("hi", ToString::to_string(&self.hi).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.core.transaction.v1.rs b/crates/proto/src/gen/penumbra.core.transaction.v1.rs index b981d684dd..0caa3537d7 100644 --- a/crates/proto/src/gen/penumbra.core.transaction.v1.rs +++ b/crates/proto/src/gen/penumbra.core.transaction.v1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// A Penumbra transaction. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Transaction { #[prost(message, optional, tag = "1")] @@ -18,11 +18,13 @@ impl ::prost::Name for Transaction { const NAME: &'static str = "Transaction"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.Transaction".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.Transaction".into() } } /// The body of a transaction. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionBody { /// A list of actions (state changes) performed by this transaction. @@ -44,11 +46,13 @@ impl ::prost::Name for TransactionBody { const NAME: &'static str = "TransactionBody"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.TransactionBody".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.TransactionBody".into() } } /// The parameters determining if a transaction should be accepted by the chain. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionParameters { /// The maximum height that this transaction can be included in the chain. @@ -68,11 +72,13 @@ impl ::prost::Name for TransactionParameters { const NAME: &'static str = "TransactionParameters"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.TransactionParameters".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.TransactionParameters".into() } } /// Detection data used by a detection server performing Fuzzy Message Detection. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DetectionData { /// A list of clues for use with Fuzzy Message Detection. @@ -85,11 +91,13 @@ impl ::prost::Name for DetectionData { const NAME: &'static str = "DetectionData"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.DetectionData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.DetectionData".into() } } /// A state change performed by a transaction. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Action { #[prost( @@ -100,7 +108,6 @@ pub struct Action { } /// Nested message and enum types in `Action`. pub mod action { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Action { /// Common actions have numbers \< 15, to save space. @@ -185,12 +192,14 @@ impl ::prost::Name for Action { const NAME: &'static str = "Action"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.Action".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.Action".into() } } /// A transaction perspective is a bundle of key material and commitment openings /// that allow generating a view of a transaction from that perspective. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionPerspective { #[prost(message, repeated, tag = "1")] @@ -238,7 +247,6 @@ pub struct TransactionPerspective { } /// Nested message and enum types in `TransactionPerspective`. pub mod transaction_perspective { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ExtendedMetadataById { #[prost(message, optional, tag = "1")] @@ -250,9 +258,12 @@ pub mod transaction_perspective { const NAME: &'static str = "ExtendedMetadataById"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.transaction.v1.TransactionPerspective.{}", Self::NAME - ) + "penumbra.core.transaction.v1.TransactionPerspective.ExtendedMetadataById" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.TransactionPerspective.ExtendedMetadataById" + .into() } } /// Associates a nullifier with the transaction ID that created the nullified state commitment. @@ -260,7 +271,6 @@ pub mod transaction_perspective { /// Note: this is *not* the transaction ID that revealed the nullifier. /// /// Allows walking backwards from a spend to the transaction that created the note. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CreationTransactionIdByNullifier { #[prost(message, optional, tag = "1")] @@ -276,15 +286,17 @@ pub mod transaction_perspective { const NAME: &'static str = "CreationTransactionIdByNullifier"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.transaction.v1.TransactionPerspective.{}", Self::NAME - ) + "penumbra.core.transaction.v1.TransactionPerspective.CreationTransactionIdByNullifier" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.TransactionPerspective.CreationTransactionIdByNullifier" + .into() } } /// Associates a commitment with the transaction ID that eventually nullified it. /// /// Allows walking forwards from an output to the transaction that spent the note. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NullificationTransactionIdByCommitment { #[prost(message, optional, tag = "1")] @@ -300,9 +312,12 @@ pub mod transaction_perspective { const NAME: &'static str = "NullificationTransactionIdByCommitment"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.transaction.v1.TransactionPerspective.{}", Self::NAME - ) + "penumbra.core.transaction.v1.TransactionPerspective.NullificationTransactionIdByCommitment" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.TransactionPerspective.NullificationTransactionIdByCommitment" + .into() } } } @@ -310,10 +325,12 @@ impl ::prost::Name for TransactionPerspective { const NAME: &'static str = "TransactionPerspective"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.TransactionPerspective".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.TransactionPerspective".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PayloadKeyWithCommitment { #[prost(message, optional, tag = "1")] @@ -327,10 +344,12 @@ impl ::prost::Name for PayloadKeyWithCommitment { const NAME: &'static str = "PayloadKeyWithCommitment"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.PayloadKeyWithCommitment".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.PayloadKeyWithCommitment".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NullifierWithNote { #[prost(message, optional, tag = "1")] @@ -342,11 +361,13 @@ impl ::prost::Name for NullifierWithNote { const NAME: &'static str = "NullifierWithNote"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.NullifierWithNote".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.NullifierWithNote".into() } } /// View of a Penumbra transaction. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionView { /// View of the transaction body @@ -366,10 +387,12 @@ impl ::prost::Name for TransactionView { const NAME: &'static str = "TransactionView"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.TransactionView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.TransactionView".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionBodyView { /// A list views into of actions (state changes) performed by this transaction. @@ -391,11 +414,13 @@ impl ::prost::Name for TransactionBodyView { const NAME: &'static str = "TransactionBodyView"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.TransactionBodyView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.TransactionBodyView".into() } } /// A view of a specific state change action performed by a transaction. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActionView { #[prost( @@ -406,7 +431,6 @@ pub struct ActionView { } /// Nested message and enum types in `ActionView`. pub mod action_view { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum ActionView { /// Action types with visible/opaque variants @@ -493,11 +517,13 @@ impl ::prost::Name for ActionView { const NAME: &'static str = "ActionView"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.ActionView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.ActionView".into() } } /// The data required to authorize a transaction plan. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthorizationData { /// The computed auth hash for the approved transaction plan. @@ -520,11 +546,13 @@ impl ::prost::Name for AuthorizationData { const NAME: &'static str = "AuthorizationData"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.AuthorizationData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.AuthorizationData".into() } } /// The data required for proving when building a transaction from a plan. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WitnessData { /// The anchor for the state transition proofs. @@ -541,7 +569,10 @@ impl ::prost::Name for WitnessData { const NAME: &'static str = "WitnessData"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.WitnessData".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.WitnessData".into() } } /// Describes a planned transaction. Permits clients to prepare a transaction @@ -549,7 +580,6 @@ impl ::prost::Name for WitnessData { /// /// The `TransactionPlan` is a fully determined bundle binding all of a transaction's effects. /// The only thing it does not include is the witness data used for proving. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionPlan { /// The sequence of actions planned for this transaction. @@ -569,10 +599,12 @@ impl ::prost::Name for TransactionPlan { const NAME: &'static str = "TransactionPlan"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.TransactionPlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.TransactionPlan".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DetectionDataPlan { #[prost(message, repeated, tag = "5")] @@ -582,14 +614,16 @@ impl ::prost::Name for DetectionDataPlan { const NAME: &'static str = "DetectionDataPlan"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.DetectionDataPlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.DetectionDataPlan".into() } } /// Describes a planned transaction action. /// /// Some transaction Actions don't have any private data and are treated as being plans /// themselves. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActionPlan { #[prost( @@ -600,7 +634,6 @@ pub struct ActionPlan { } /// Nested message and enum types in `ActionPlan`. pub mod action_plan { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Action { #[prost(message, tag = "1")] @@ -689,11 +722,13 @@ impl ::prost::Name for ActionPlan { const NAME: &'static str = "ActionPlan"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.ActionPlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.ActionPlan".into() } } /// Describes a plan for forming a `Clue`. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CluePlan { /// The address. @@ -710,11 +745,13 @@ impl ::prost::Name for CluePlan { const NAME: &'static str = "CluePlan"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.CluePlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.CluePlan".into() } } /// Describes a plan for forming the transaction memo. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MemoPlan { /// The plaintext. @@ -728,11 +765,13 @@ impl ::prost::Name for MemoPlan { const NAME: &'static str = "MemoPlan"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.MemoPlan".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.MemoPlan".into() } } /// The encrypted memo data describing information about the purpose of a transaction. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MemoCiphertext { /// The encrypted data. 528 bytes. @@ -743,11 +782,13 @@ impl ::prost::Name for MemoCiphertext { const NAME: &'static str = "MemoCiphertext"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.MemoCiphertext".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.MemoCiphertext".into() } } /// The plaintext describing information about the purpose of a transaction. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MemoPlaintext { /// The sender's return address. @@ -764,10 +805,12 @@ impl ::prost::Name for MemoPlaintext { const NAME: &'static str = "MemoPlaintext"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.MemoPlaintext".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.MemoPlaintext".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MemoPlaintextView { #[prost(message, optional, tag = "1")] @@ -779,10 +822,12 @@ impl ::prost::Name for MemoPlaintextView { const NAME: &'static str = "MemoPlaintextView"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.MemoPlaintextView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.MemoPlaintextView".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MemoView { #[prost(oneof = "memo_view::MemoView", tags = "1, 2")] @@ -790,7 +835,6 @@ pub struct MemoView { } /// Nested message and enum types in `MemoView`. pub mod memo_view { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Visible { #[prost(message, optional, tag = "1")] @@ -802,12 +846,12 @@ pub mod memo_view { const NAME: &'static str = "Visible"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.transaction.v1.MemoView.{}", Self::NAME - ) + "penumbra.core.transaction.v1.MemoView.Visible".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.MemoView.Visible".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Opaque { #[prost(message, optional, tag = "1")] @@ -817,12 +861,12 @@ pub mod memo_view { const NAME: &'static str = "Opaque"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.transaction.v1.MemoView.{}", Self::NAME - ) + "penumbra.core.transaction.v1.MemoView.Opaque".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.MemoView.Opaque".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum MemoView { #[prost(message, tag = "1")] @@ -835,6 +879,9 @@ impl ::prost::Name for MemoView { const NAME: &'static str = "MemoView"; const PACKAGE: &'static str = "penumbra.core.transaction.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.transaction.v1.{}", Self::NAME) + "penumbra.core.transaction.v1.MemoView".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.transaction.v1.MemoView".into() } } diff --git a/crates/proto/src/gen/penumbra.core.transaction.v1.serde.rs b/crates/proto/src/gen/penumbra.core.transaction.v1.serde.rs index 63d055c45a..d452a520f4 100644 --- a/crates/proto/src/gen/penumbra.core.transaction.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.transaction.v1.serde.rs @@ -1449,10 +1449,12 @@ impl serde::Serialize for CluePlan { } if !self.rseed.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("rseed", pbjson::private::base64::encode(&self.rseed).as_str())?; } if self.precision_bits != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("precisionBits", ToString::to_string(&self.precision_bits).as_str())?; } struct_ser.end() @@ -1768,6 +1770,7 @@ impl serde::Serialize for MemoCiphertext { let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1.MemoCiphertext", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -2098,6 +2101,7 @@ impl serde::Serialize for MemoPlan { } if !self.key.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("key", pbjson::private::base64::encode(&self.key).as_str())?; } struct_ser.end() @@ -3186,6 +3190,7 @@ impl serde::Serialize for TransactionParameters { let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1.TransactionParameters", len)?; if self.expiry_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("expiryHeight", ToString::to_string(&self.expiry_height).as_str())?; } if !self.chain_id.is_empty() { diff --git a/crates/proto/src/gen/penumbra.core.txhash.v1.rs b/crates/proto/src/gen/penumbra.core.txhash.v1.rs index 35d8ae86e0..f595a962b5 100644 --- a/crates/proto/src/gen/penumbra.core.txhash.v1.rs +++ b/crates/proto/src/gen/penumbra.core.txhash.v1.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// The hash of a Penumbra transaction's *effecting data*, describing the effects /// of the transaction on the chain state. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EffectHash { #[prost(bytes = "vec", tag = "1")] @@ -10,13 +10,15 @@ impl ::prost::Name for EffectHash { const NAME: &'static str = "EffectHash"; const PACKAGE: &'static str = "penumbra.core.txhash.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.txhash.v1.{}", Self::NAME) + "penumbra.core.txhash.v1.EffectHash".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.txhash.v1.EffectHash".into() } } /// A transaction ID, the Sha256 hash of a transaction. /// /// This is the hash of the plain byte encoding, used by Tendermint. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionId { #[prost(bytes = "vec", tag = "1")] @@ -26,6 +28,9 @@ impl ::prost::Name for TransactionId { const NAME: &'static str = "TransactionId"; const PACKAGE: &'static str = "penumbra.core.txhash.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.txhash.v1.{}", Self::NAME) + "penumbra.core.txhash.v1.TransactionId".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.core.txhash.v1.TransactionId".into() } } diff --git a/crates/proto/src/gen/penumbra.core.txhash.v1.serde.rs b/crates/proto/src/gen/penumbra.core.txhash.v1.serde.rs index afd53bee03..d2a884b62c 100644 --- a/crates/proto/src/gen/penumbra.core.txhash.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.txhash.v1.serde.rs @@ -12,6 +12,7 @@ impl serde::Serialize for EffectHash { let mut struct_ser = serializer.serialize_struct("penumbra.core.txhash.v1.EffectHash", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -110,6 +111,7 @@ impl serde::Serialize for TransactionId { let mut struct_ser = serializer.serialize_struct("penumbra.core.txhash.v1.TransactionId", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1.rs b/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1.rs index 129a5e4b65..ba9d3eb3ed 100644 --- a/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1.rs +++ b/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// A clue for use with Fuzzy Message Detection. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Clue { #[prost(bytes = "vec", tag = "1")] @@ -9,6 +9,9 @@ impl ::prost::Name for Clue { const NAME: &'static str = "Clue"; const PACKAGE: &'static str = "penumbra.crypto.decaf377_fmd.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.decaf377_fmd.v1.{}", Self::NAME) + "penumbra.crypto.decaf377_fmd.v1.Clue".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.decaf377_fmd.v1.Clue".into() } } diff --git a/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1.serde.rs b/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1.serde.rs index bbd9bf91bb..15c6d1fdfb 100644 --- a/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1.serde.rs @@ -12,6 +12,7 @@ impl serde::Serialize for Clue { let mut struct_ser = serializer.serialize_struct("penumbra.crypto.decaf377_fmd.v1.Clue", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.crypto.decaf377_frost.v1.rs b/crates/proto/src/gen/penumbra.crypto.decaf377_frost.v1.rs index 6c87752e14..e544c354ea 100644 --- a/crates/proto/src/gen/penumbra.crypto.decaf377_frost.v1.rs +++ b/crates/proto/src/gen/penumbra.crypto.decaf377_frost.v1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// A commitment to a polynomial, as a list of group elements. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct VerifiableSecretSharingCommitment { /// Each of these bytes should be the serialization of a group element. @@ -10,11 +10,13 @@ impl ::prost::Name for VerifiableSecretSharingCommitment { const NAME: &'static str = "VerifiableSecretSharingCommitment"; const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.decaf377_frost.v1.{}", Self::NAME) + "penumbra.crypto.decaf377_frost.v1.VerifiableSecretSharingCommitment".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.decaf377_frost.v1.VerifiableSecretSharingCommitment".into() } } /// The public package sent in round 1 of the DKG protocol. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DkgRound1Package { /// A commitment to the polynomial for secret sharing. @@ -28,11 +30,13 @@ impl ::prost::Name for DkgRound1Package { const NAME: &'static str = "DKGRound1Package"; const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.decaf377_frost.v1.{}", Self::NAME) + "penumbra.crypto.decaf377_frost.v1.DKGRound1Package".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.decaf377_frost.v1.DKGRound1Package".into() } } /// A share of the final signing key. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SigningShare { /// These bytes should be a valid scalar. @@ -43,11 +47,13 @@ impl ::prost::Name for SigningShare { const NAME: &'static str = "SigningShare"; const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.decaf377_frost.v1.{}", Self::NAME) + "penumbra.crypto.decaf377_frost.v1.SigningShare".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.decaf377_frost.v1.SigningShare".into() } } /// The per-participant package sent in round 2 of the DKG protocol. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DkgRound2Package { /// This is the share we're sending to that participant. @@ -58,11 +64,13 @@ impl ::prost::Name for DkgRound2Package { const NAME: &'static str = "DKGRound2Package"; const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.decaf377_frost.v1.{}", Self::NAME) + "penumbra.crypto.decaf377_frost.v1.DKGRound2Package".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.decaf377_frost.v1.DKGRound2Package".into() } } /// Represents a commitment to a nonce value. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NonceCommitment { /// These bytes should be a valid group element. @@ -73,11 +81,13 @@ impl ::prost::Name for NonceCommitment { const NAME: &'static str = "NonceCommitment"; const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.decaf377_frost.v1.{}", Self::NAME) + "penumbra.crypto.decaf377_frost.v1.NonceCommitment".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.decaf377_frost.v1.NonceCommitment".into() } } /// Represents the commitments to nonces needed for signing. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SigningCommitments { /// One nonce to hide them. @@ -91,11 +101,13 @@ impl ::prost::Name for SigningCommitments { const NAME: &'static str = "SigningCommitments"; const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.decaf377_frost.v1.{}", Self::NAME) + "penumbra.crypto.decaf377_frost.v1.SigningCommitments".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.decaf377_frost.v1.SigningCommitments".into() } } /// A share of the final signature. These get aggregated to make the actual thing. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SignatureShare { /// These bytes should be a valid scalar. @@ -106,6 +118,9 @@ impl ::prost::Name for SignatureShare { const NAME: &'static str = "SignatureShare"; const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.decaf377_frost.v1.{}", Self::NAME) + "penumbra.crypto.decaf377_frost.v1.SignatureShare".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.decaf377_frost.v1.SignatureShare".into() } } diff --git a/crates/proto/src/gen/penumbra.crypto.decaf377_frost.v1.serde.rs b/crates/proto/src/gen/penumbra.crypto.decaf377_frost.v1.serde.rs index b84daf70b8..4e98b9248e 100644 --- a/crates/proto/src/gen/penumbra.crypto.decaf377_frost.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.crypto.decaf377_frost.v1.serde.rs @@ -18,6 +18,7 @@ impl serde::Serialize for DkgRound1Package { } if !self.proof_of_knowledge.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proofOfKnowledge", pbjson::private::base64::encode(&self.proof_of_knowledge).as_str())?; } struct_ser.end() @@ -224,6 +225,7 @@ impl serde::Serialize for NonceCommitment { let mut struct_ser = serializer.serialize_struct("penumbra.crypto.decaf377_frost.v1.NonceCommitment", len)?; if !self.element.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("element", pbjson::private::base64::encode(&self.element).as_str())?; } struct_ser.end() @@ -322,6 +324,7 @@ impl serde::Serialize for SignatureShare { let mut struct_ser = serializer.serialize_struct("penumbra.crypto.decaf377_frost.v1.SignatureShare", len)?; if !self.scalar.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("scalar", pbjson::private::base64::encode(&self.scalar).as_str())?; } struct_ser.end() @@ -532,6 +535,7 @@ impl serde::Serialize for SigningShare { let mut struct_ser = serializer.serialize_struct("penumbra.crypto.decaf377_frost.v1.SigningShare", len)?; if !self.scalar.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("scalar", pbjson::private::base64::encode(&self.scalar).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1.rs b/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1.rs index b2686fa74f..5402c059a0 100644 --- a/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1.rs +++ b/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1.rs @@ -1,4 +1,4 @@ -#[allow(clippy::derive_partial_eq_without_eq)] +// This file is @generated by prost-build. #[derive(Clone, PartialEq, ::prost::Message)] pub struct SpendAuthSignature { #[prost(bytes = "vec", tag = "1")] @@ -8,10 +8,12 @@ impl ::prost::Name for SpendAuthSignature { const NAME: &'static str = "SpendAuthSignature"; const PACKAGE: &'static str = "penumbra.crypto.decaf377_rdsa.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.decaf377_rdsa.v1.{}", Self::NAME) + "penumbra.crypto.decaf377_rdsa.v1.SpendAuthSignature".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.decaf377_rdsa.v1.SpendAuthSignature".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BindingSignature { #[prost(bytes = "vec", tag = "1")] @@ -21,10 +23,12 @@ impl ::prost::Name for BindingSignature { const NAME: &'static str = "BindingSignature"; const PACKAGE: &'static str = "penumbra.crypto.decaf377_rdsa.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.decaf377_rdsa.v1.{}", Self::NAME) + "penumbra.crypto.decaf377_rdsa.v1.BindingSignature".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.decaf377_rdsa.v1.BindingSignature".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SpendVerificationKey { #[prost(bytes = "vec", tag = "1")] @@ -34,6 +38,9 @@ impl ::prost::Name for SpendVerificationKey { const NAME: &'static str = "SpendVerificationKey"; const PACKAGE: &'static str = "penumbra.crypto.decaf377_rdsa.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.decaf377_rdsa.v1.{}", Self::NAME) + "penumbra.crypto.decaf377_rdsa.v1.SpendVerificationKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.decaf377_rdsa.v1.SpendVerificationKey".into() } } diff --git a/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1.serde.rs b/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1.serde.rs index 5ffa592a93..1f976b4ded 100644 --- a/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1.serde.rs @@ -12,6 +12,7 @@ impl serde::Serialize for BindingSignature { let mut struct_ser = serializer.serialize_struct("penumbra.crypto.decaf377_rdsa.v1.BindingSignature", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -110,6 +111,7 @@ impl serde::Serialize for SpendAuthSignature { let mut struct_ser = serializer.serialize_struct("penumbra.crypto.decaf377_rdsa.v1.SpendAuthSignature", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -208,6 +210,7 @@ impl serde::Serialize for SpendVerificationKey { let mut struct_ser = serializer.serialize_struct("penumbra.crypto.decaf377_rdsa.v1.SpendVerificationKey", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.crypto.tct.v1.rs b/crates/proto/src/gen/penumbra.crypto.tct.v1.rs index b3979ce556..9f7d8bf365 100644 --- a/crates/proto/src/gen/penumbra.crypto.tct.v1.rs +++ b/crates/proto/src/gen/penumbra.crypto.tct.v1.rs @@ -1,4 +1,4 @@ -#[allow(clippy::derive_partial_eq_without_eq)] +// This file is @generated by prost-build. #[derive(Clone, PartialEq, ::prost::Message)] pub struct StateCommitment { #[prost(bytes = "vec", tag = "1")] @@ -8,10 +8,12 @@ impl ::prost::Name for StateCommitment { const NAME: &'static str = "StateCommitment"; const PACKAGE: &'static str = "penumbra.crypto.tct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.tct.v1.{}", Self::NAME) + "penumbra.crypto.tct.v1.StateCommitment".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.tct.v1.StateCommitment".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MerkleRoot { #[prost(bytes = "vec", tag = "1")] @@ -21,11 +23,13 @@ impl ::prost::Name for MerkleRoot { const NAME: &'static str = "MerkleRoot"; const PACKAGE: &'static str = "penumbra.crypto.tct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.tct.v1.{}", Self::NAME) + "penumbra.crypto.tct.v1.MerkleRoot".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.tct.v1.MerkleRoot".into() } } /// An authentication path from a state commitment to the root of the state commitment tree. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct StateCommitmentProof { #[prost(message, optional, tag = "1")] @@ -40,11 +44,13 @@ impl ::prost::Name for StateCommitmentProof { const NAME: &'static str = "StateCommitmentProof"; const PACKAGE: &'static str = "penumbra.crypto.tct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.tct.v1.{}", Self::NAME) + "penumbra.crypto.tct.v1.StateCommitmentProof".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.tct.v1.StateCommitmentProof".into() } } /// A set of 3 sibling hashes in the auth path for some note commitment. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MerklePathChunk { #[prost(bytes = "vec", tag = "1")] @@ -58,6 +64,9 @@ impl ::prost::Name for MerklePathChunk { const NAME: &'static str = "MerklePathChunk"; const PACKAGE: &'static str = "penumbra.crypto.tct.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.crypto.tct.v1.{}", Self::NAME) + "penumbra.crypto.tct.v1.MerklePathChunk".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.crypto.tct.v1.MerklePathChunk".into() } } diff --git a/crates/proto/src/gen/penumbra.crypto.tct.v1.serde.rs b/crates/proto/src/gen/penumbra.crypto.tct.v1.serde.rs index e55d9ef249..6a55bc4ec7 100644 --- a/crates/proto/src/gen/penumbra.crypto.tct.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.crypto.tct.v1.serde.rs @@ -18,14 +18,17 @@ impl serde::Serialize for MerklePathChunk { let mut struct_ser = serializer.serialize_struct("penumbra.crypto.tct.v1.MerklePathChunk", len)?; if !self.sibling_1.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("sibling1", pbjson::private::base64::encode(&self.sibling_1).as_str())?; } if !self.sibling_2.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("sibling2", pbjson::private::base64::encode(&self.sibling_2).as_str())?; } if !self.sibling_3.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("sibling3", pbjson::private::base64::encode(&self.sibling_3).as_str())?; } struct_ser.end() @@ -153,6 +156,7 @@ impl serde::Serialize for MerkleRoot { let mut struct_ser = serializer.serialize_struct("penumbra.crypto.tct.v1.MerkleRoot", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -251,6 +255,7 @@ impl serde::Serialize for StateCommitment { let mut struct_ser = serializer.serialize_struct("penumbra.crypto.tct.v1.StateCommitment", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -358,6 +363,7 @@ impl serde::Serialize for StateCommitmentProof { } if self.position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("position", ToString::to_string(&self.position).as_str())?; } if !self.auth_path.is_empty() { diff --git a/crates/proto/src/gen/penumbra.custody.threshold.v1.rs b/crates/proto/src/gen/penumbra.custody.threshold.v1.rs index 2bf788a6b6..9aa9410cb6 100644 --- a/crates/proto/src/gen/penumbra.custody.threshold.v1.rs +++ b/crates/proto/src/gen/penumbra.custody.threshold.v1.rs @@ -1,7 +1,7 @@ +// This file is @generated by prost-build. /// A key one can use to verify signatures. /// /// This key can also serve as a unique identifier for users. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct VerificationKey { #[prost(bytes = "vec", tag = "1")] @@ -11,11 +11,13 @@ impl ::prost::Name for VerificationKey { const NAME: &'static str = "VerificationKey"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.threshold.v1.{}", Self::NAME) + "penumbra.custody.threshold.v1.VerificationKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.VerificationKey".into() } } /// A signature proving that a message was created by the owner of a verification key. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Signature { #[prost(bytes = "vec", tag = "1")] @@ -25,11 +27,13 @@ impl ::prost::Name for Signature { const NAME: &'static str = "Signature"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.threshold.v1.{}", Self::NAME) + "penumbra.custody.threshold.v1.Signature".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.Signature".into() } } /// The message the coordinator sends in round 1 of the signing protocol. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CoordinatorRound1 { #[prost(oneof = "coordinator_round1::Request", tags = "1, 2, 3")] @@ -37,7 +41,6 @@ pub struct CoordinatorRound1 { } /// Nested message and enum types in `CoordinatorRound1`. pub mod coordinator_round1 { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Request { /// The plan that the coordinator would like the followers to sign. @@ -59,11 +62,13 @@ impl ::prost::Name for CoordinatorRound1 { const NAME: &'static str = "CoordinatorRound1"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.threshold.v1.{}", Self::NAME) + "penumbra.custody.threshold.v1.CoordinatorRound1".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.CoordinatorRound1".into() } } /// The message the coordinator sends in round 2 of the signing protocol. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CoordinatorRound2 { /// The underlying signing packages being sent to the followers, for each signature. @@ -75,7 +80,6 @@ pub struct CoordinatorRound2 { /// Nested message and enum types in `CoordinatorRound2`. pub mod coordinator_round2 { /// A commitment along with a FROST identifier. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IdentifiedCommitments { /// The serialization of a FROST identifier. @@ -91,9 +95,12 @@ pub mod coordinator_round2 { const NAME: &'static str = "IdentifiedCommitments"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.custody.threshold.v1.CoordinatorRound2.{}", Self::NAME - ) + "penumbra.custody.threshold.v1.CoordinatorRound2.IdentifiedCommitments" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.CoordinatorRound2.IdentifiedCommitments" + .into() } } /// A FROST signing package without a message. @@ -101,7 +108,6 @@ pub mod coordinator_round2 { /// We structure things this way because the message is derived from the transaction plan. /// FROST expects the signing package to include the identified commitments *and* /// the message, but we have no need to include the message. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PartialSigningPackage { #[prost(message, repeated, tag = "1")] @@ -111,9 +117,12 @@ pub mod coordinator_round2 { const NAME: &'static str = "PartialSigningPackage"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.custody.threshold.v1.CoordinatorRound2.{}", Self::NAME - ) + "penumbra.custody.threshold.v1.CoordinatorRound2.PartialSigningPackage" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.CoordinatorRound2.PartialSigningPackage" + .into() } } } @@ -121,11 +130,13 @@ impl ::prost::Name for CoordinatorRound2 { const NAME: &'static str = "CoordinatorRound2"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.threshold.v1.{}", Self::NAME) + "penumbra.custody.threshold.v1.CoordinatorRound2".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.CoordinatorRound2".into() } } /// The first message the followers send back to the coordinator when signing. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct FollowerRound1 { #[prost(message, optional, tag = "1")] @@ -140,7 +151,6 @@ pub struct FollowerRound1 { /// Nested message and enum types in `FollowerRound1`. pub mod follower_round1 { /// The inner message that will be signed by the follower. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Inner { /// One signing commitment pair for each signature requested by the plan, in order. @@ -153,9 +163,10 @@ pub mod follower_round1 { const NAME: &'static str = "Inner"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.custody.threshold.v1.FollowerRound1.{}", Self::NAME - ) + "penumbra.custody.threshold.v1.FollowerRound1.Inner".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.FollowerRound1.Inner".into() } } } @@ -163,11 +174,13 @@ impl ::prost::Name for FollowerRound1 { const NAME: &'static str = "FollowerRound1"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.threshold.v1.{}", Self::NAME) + "penumbra.custody.threshold.v1.FollowerRound1".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.FollowerRound1".into() } } /// The second message the followers send back to the coordinator when signing. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct FollowerRound2 { #[prost(message, optional, tag = "1")] @@ -182,7 +195,6 @@ pub struct FollowerRound2 { /// Nested message and enum types in `FollowerRound2`. pub mod follower_round2 { /// The inner message that will be signed by the follower. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Inner { /// One share for each signature requested by the plan, in order. @@ -195,9 +207,10 @@ pub mod follower_round2 { const NAME: &'static str = "Inner"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.custody.threshold.v1.FollowerRound2.{}", Self::NAME - ) + "penumbra.custody.threshold.v1.FollowerRound2.Inner".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.FollowerRound2.Inner".into() } } } @@ -205,11 +218,13 @@ impl ::prost::Name for FollowerRound2 { const NAME: &'static str = "FollowerRound2"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.threshold.v1.{}", Self::NAME) + "penumbra.custody.threshold.v1.FollowerRound2".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.FollowerRound2".into() } } /// The first message we broadcast in the DKG protocol. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DkgRound1 { /// The package we're sending to other people @@ -231,11 +246,13 @@ impl ::prost::Name for DkgRound1 { const NAME: &'static str = "DKGRound1"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.threshold.v1.{}", Self::NAME) + "penumbra.custody.threshold.v1.DKGRound1".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.DKGRound1".into() } } /// The second message we broadcast in the DKG protocol. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DkgRound2 { #[prost(message, optional, tag = "1")] @@ -250,7 +267,6 @@ pub struct DkgRound2 { /// Nested message and enum types in `DKGRound2`. pub mod dkg_round2 { /// A round2 package, encrypted, along with an identifier for the recipient. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TargetedPackage { /// A verification key identifying the recipient. @@ -264,13 +280,13 @@ pub mod dkg_round2 { const NAME: &'static str = "TargetedPackage"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.custody.threshold.v1.DKGRound2.{}", Self::NAME - ) + "penumbra.custody.threshold.v1.DKGRound2.TargetedPackage".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.DKGRound2.TargetedPackage".into() } } /// An inner message that will be signed. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Inner { /// Encrypted packages for each recipient. @@ -284,9 +300,10 @@ pub mod dkg_round2 { const NAME: &'static str = "Inner"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.custody.threshold.v1.DKGRound2.{}", Self::NAME - ) + "penumbra.custody.threshold.v1.DKGRound2.Inner".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.DKGRound2.Inner".into() } } } @@ -294,6 +311,9 @@ impl ::prost::Name for DkgRound2 { const NAME: &'static str = "DKGRound2"; const PACKAGE: &'static str = "penumbra.custody.threshold.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.threshold.v1.{}", Self::NAME) + "penumbra.custody.threshold.v1.DKGRound2".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.threshold.v1.DKGRound2".into() } } diff --git a/crates/proto/src/gen/penumbra.custody.threshold.v1.serde.rs b/crates/proto/src/gen/penumbra.custody.threshold.v1.serde.rs index 86ecbc1f91..224579889e 100644 --- a/crates/proto/src/gen/penumbra.custody.threshold.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.custody.threshold.v1.serde.rs @@ -239,6 +239,7 @@ impl serde::Serialize for coordinator_round2::IdentifiedCommitments { let mut struct_ser = serializer.serialize_struct("penumbra.custody.threshold.v1.CoordinatorRound2.IdentifiedCommitments", len)?; if !self.identifier.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("identifier", pbjson::private::base64::encode(&self.identifier).as_str())?; } if let Some(v) = self.commitments.as_ref() { @@ -459,14 +460,17 @@ impl serde::Serialize for DkgRound1 { } if !self.nullifier_commitment.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("nullifierCommitment", pbjson::private::base64::encode(&self.nullifier_commitment).as_str())?; } if !self.epk.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epk", pbjson::private::base64::encode(&self.epk).as_str())?; } if !self.vk.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("vk", pbjson::private::base64::encode(&self.vk).as_str())?; } struct_ser.end() @@ -612,10 +616,12 @@ impl serde::Serialize for DkgRound2 { } if !self.vk.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("vk", pbjson::private::base64::encode(&self.vk).as_str())?; } if !self.sig.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("sig", pbjson::private::base64::encode(&self.sig).as_str())?; } struct_ser.end() @@ -744,6 +750,7 @@ impl serde::Serialize for dkg_round2::Inner { } if !self.nullifier.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("nullifier", pbjson::private::base64::encode(&self.nullifier).as_str())?; } struct_ser.end() @@ -857,10 +864,12 @@ impl serde::Serialize for dkg_round2::TargetedPackage { let mut struct_ser = serializer.serialize_struct("penumbra.custody.threshold.v1.DKGRound2.TargetedPackage", len)?; if !self.vk.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("vk", pbjson::private::base64::encode(&self.vk).as_str())?; } if !self.encrypted_package.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("encryptedPackage", pbjson::private::base64::encode(&self.encrypted_package).as_str())?; } struct_ser.end() @@ -1421,6 +1430,7 @@ impl serde::Serialize for Signature { let mut struct_ser = serializer.serialize_struct("penumbra.custody.threshold.v1.Signature", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() @@ -1519,6 +1529,7 @@ impl serde::Serialize for VerificationKey { let mut struct_ser = serializer.serialize_struct("penumbra.custody.threshold.v1.VerificationKey", len)?; if !self.inner.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.custody.v1.rs b/crates/proto/src/gen/penumbra.custody.v1.rs index 82fe5c426b..0f4d04f470 100644 --- a/crates/proto/src/gen/penumbra.custody.v1.rs +++ b/crates/proto/src/gen/penumbra.custody.v1.rs @@ -1,4 +1,4 @@ -#[allow(clippy::derive_partial_eq_without_eq)] +// This file is @generated by prost-build. #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthorizeRequest { /// The transaction plan to authorize. @@ -19,10 +19,12 @@ impl ::prost::Name for AuthorizeRequest { const NAME: &'static str = "AuthorizeRequest"; const PACKAGE: &'static str = "penumbra.custody.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.v1.{}", Self::NAME) + "penumbra.custody.v1.AuthorizeRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.v1.AuthorizeRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthorizeResponse { #[prost(message, optional, tag = "1")] @@ -34,10 +36,12 @@ impl ::prost::Name for AuthorizeResponse { const NAME: &'static str = "AuthorizeResponse"; const PACKAGE: &'static str = "penumbra.custody.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.v1.{}", Self::NAME) + "penumbra.custody.v1.AuthorizeResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.v1.AuthorizeResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthorizeValidatorDefinitionRequest { /// The validator definition to authorize. @@ -58,10 +62,12 @@ impl ::prost::Name for AuthorizeValidatorDefinitionRequest { const NAME: &'static str = "AuthorizeValidatorDefinitionRequest"; const PACKAGE: &'static str = "penumbra.custody.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.v1.{}", Self::NAME) + "penumbra.custody.v1.AuthorizeValidatorDefinitionRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.v1.AuthorizeValidatorDefinitionRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthorizeValidatorDefinitionResponse { /// The authorization signature for the validator definition. @@ -74,10 +80,12 @@ impl ::prost::Name for AuthorizeValidatorDefinitionResponse { const NAME: &'static str = "AuthorizeValidatorDefinitionResponse"; const PACKAGE: &'static str = "penumbra.custody.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.v1.{}", Self::NAME) + "penumbra.custody.v1.AuthorizeValidatorDefinitionResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.v1.AuthorizeValidatorDefinitionResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthorizeValidatorVoteRequest { /// The validator vote to authorize. @@ -98,10 +106,12 @@ impl ::prost::Name for AuthorizeValidatorVoteRequest { const NAME: &'static str = "AuthorizeValidatorVoteRequest"; const PACKAGE: &'static str = "penumbra.custody.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.v1.{}", Self::NAME) + "penumbra.custody.v1.AuthorizeValidatorVoteRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.v1.AuthorizeValidatorVoteRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthorizeValidatorVoteResponse { /// The authorization signature for the validator vote. @@ -114,14 +124,16 @@ impl ::prost::Name for AuthorizeValidatorVoteResponse { const NAME: &'static str = "AuthorizeValidatorVoteResponse"; const PACKAGE: &'static str = "penumbra.custody.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.v1.{}", Self::NAME) + "penumbra.custody.v1.AuthorizeValidatorVoteResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.v1.AuthorizeValidatorVoteResponse".into() } } /// A pre-authorization packet. This allows a custodian to delegate (partial) /// signing authority to other authorization mechanisms. Details of how a /// custodian manages those keys are out-of-scope for the custody protocol and /// are custodian-specific. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PreAuthorization { #[prost(oneof = "pre_authorization::PreAuthorization", tags = "1")] @@ -131,7 +143,6 @@ pub struct PreAuthorization { pub mod pre_authorization { /// An Ed25519-based preauthorization, containing an Ed25519 signature over the /// `TransactionPlan`. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Ed25519 { /// The Ed25519 verification key used to verify the signature. @@ -145,12 +156,12 @@ pub mod pre_authorization { const NAME: &'static str = "Ed25519"; const PACKAGE: &'static str = "penumbra.custody.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.custody.v1.PreAuthorization.{}", Self::NAME - ) + "penumbra.custody.v1.PreAuthorization.Ed25519".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.v1.PreAuthorization.Ed25519".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum PreAuthorization { #[prost(message, tag = "1")] @@ -161,20 +172,24 @@ impl ::prost::Name for PreAuthorization { const NAME: &'static str = "PreAuthorization"; const PACKAGE: &'static str = "penumbra.custody.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.v1.{}", Self::NAME) + "penumbra.custody.v1.PreAuthorization".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.v1.PreAuthorization".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ExportFullViewingKeyRequest {} impl ::prost::Name for ExportFullViewingKeyRequest { const NAME: &'static str = "ExportFullViewingKeyRequest"; const PACKAGE: &'static str = "penumbra.custody.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.v1.{}", Self::NAME) + "penumbra.custody.v1.ExportFullViewingKeyRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.v1.ExportFullViewingKeyRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ExportFullViewingKeyResponse { /// The full viewing key. @@ -187,10 +202,12 @@ impl ::prost::Name for ExportFullViewingKeyResponse { const NAME: &'static str = "ExportFullViewingKeyResponse"; const PACKAGE: &'static str = "penumbra.custody.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.v1.{}", Self::NAME) + "penumbra.custody.v1.ExportFullViewingKeyResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.v1.ExportFullViewingKeyResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConfirmAddressRequest { #[prost(message, optional, tag = "1")] @@ -202,10 +219,12 @@ impl ::prost::Name for ConfirmAddressRequest { const NAME: &'static str = "ConfirmAddressRequest"; const PACKAGE: &'static str = "penumbra.custody.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.v1.{}", Self::NAME) + "penumbra.custody.v1.ConfirmAddressRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.v1.ConfirmAddressRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConfirmAddressResponse { #[prost(message, optional, tag = "1")] @@ -215,13 +234,22 @@ impl ::prost::Name for ConfirmAddressResponse { const NAME: &'static str = "ConfirmAddressResponse"; const PACKAGE: &'static str = "penumbra.custody.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.custody.v1.{}", Self::NAME) + "penumbra.custody.v1.ConfirmAddressResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.custody.v1.ConfirmAddressResponse".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod custody_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// The custody protocol is used by a wallet client to request authorization for @@ -254,8 +282,8 @@ pub mod custody_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -280,7 +308,7 @@ pub mod custody_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { CustodyServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -327,8 +355,7 @@ pub mod custody_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -355,8 +382,7 @@ pub mod custody_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -386,8 +412,7 @@ pub mod custody_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -420,8 +445,7 @@ pub mod custody_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -456,8 +480,7 @@ pub mod custody_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -480,11 +503,17 @@ pub mod custody_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod custody_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with CustodyServiceServer. #[async_trait] - pub trait CustodyService: Send + Sync + 'static { + pub trait CustodyService: std::marker::Send + std::marker::Sync + 'static { /// Requests authorization of the transaction with the given description. async fn authorize( &self, @@ -546,20 +575,18 @@ pub mod custody_service_server { /// understand the transaction and determine whether or not it should be /// authorized. #[derive(Debug)] - pub struct CustodyServiceServer { - inner: _Inner, + pub struct CustodyServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl CustodyServiceServer { + impl CustodyServiceServer { 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(), @@ -609,8 +636,8 @@ pub mod custody_service_server { impl tonic::codegen::Service> for CustodyServiceServer where T: CustodyService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -622,7 +649,6 @@ pub mod custody_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.custody.v1.CustodyService/Authorize" => { #[allow(non_camel_case_types)] @@ -653,7 +679,6 @@ pub mod custody_service_server { 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 = AuthorizeSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -708,7 +733,6 @@ pub mod custody_service_server { 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 = AuthorizeValidatorDefinitionSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -758,7 +782,6 @@ pub mod custody_service_server { 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 = AuthorizeValidatorVoteSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -808,7 +831,6 @@ pub mod custody_service_server { 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 = ExportFullViewingKeySvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -855,7 +877,6 @@ pub mod custody_service_server { 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 = ConfirmAddressSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -874,20 +895,25 @@ pub mod custody_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for CustodyServiceServer { + impl Clone for CustodyServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -899,17 +925,9 @@ pub mod custody_service_server { } } } - 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 CustodyServiceServer { - const NAME: &'static str = "penumbra.custody.v1.CustodyService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.custody.v1.CustodyService"; + impl tonic::server::NamedService for CustodyServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.custody.v1.serde.rs b/crates/proto/src/gen/penumbra.custody.v1.serde.rs index 2b510aa434..86de4fb40e 100644 --- a/crates/proto/src/gen/penumbra.custody.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.custody.v1.serde.rs @@ -1102,10 +1102,12 @@ impl serde::Serialize for pre_authorization::Ed25519 { let mut struct_ser = serializer.serialize_struct("penumbra.custody.v1.PreAuthorization.Ed25519", len)?; if !self.vk.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("vk", pbjson::private::base64::encode(&self.vk).as_str())?; } if !self.sig.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("sig", pbjson::private::base64::encode(&self.sig).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.tools.summoning.v1.rs b/crates/proto/src/gen/penumbra.tools.summoning.v1.rs index b9ab44a091..8a41149ef6 100644 --- a/crates/proto/src/gen/penumbra.tools.summoning.v1.rs +++ b/crates/proto/src/gen/penumbra.tools.summoning.v1.rs @@ -1,4 +1,4 @@ -#[allow(clippy::derive_partial_eq_without_eq)] +// This file is @generated by prost-build. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ParticipateRequest { #[prost(oneof = "participate_request::Msg", tags = "1, 2")] @@ -7,7 +7,6 @@ pub struct ParticipateRequest { /// Nested message and enum types in `ParticipateRequest`. pub mod participate_request { /// Sent at the beginning of the connection to identify the participant. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Identify { #[prost(message, optional, tag = "1")] @@ -19,13 +18,13 @@ pub mod participate_request { const NAME: &'static str = "Identify"; const PACKAGE: &'static str = "penumbra.tools.summoning.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.tools.summoning.v1.ParticipateRequest.{}", Self::NAME - ) + "penumbra.tools.summoning.v1.ParticipateRequest.Identify".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.tools.summoning.v1.ParticipateRequest.Identify".into() } } /// Sent by the participant after getting a `ContributeNow` message. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Contribution { #[prost(message, optional, tag = "1")] @@ -39,12 +38,12 @@ pub mod participate_request { const NAME: &'static str = "Contribution"; const PACKAGE: &'static str = "penumbra.tools.summoning.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.tools.summoning.v1.ParticipateRequest.{}", Self::NAME - ) + "penumbra.tools.summoning.v1.ParticipateRequest.Contribution".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.tools.summoning.v1.ParticipateRequest.Contribution".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Msg { #[prost(message, tag = "1")] @@ -57,10 +56,12 @@ impl ::prost::Name for ParticipateRequest { const NAME: &'static str = "ParticipateRequest"; const PACKAGE: &'static str = "penumbra.tools.summoning.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.tools.summoning.v1.{}", Self::NAME) + "penumbra.tools.summoning.v1.ParticipateRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.tools.summoning.v1.ParticipateRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CeremonyCrs { #[prost(bytes = "vec", tag = "100")] @@ -82,10 +83,12 @@ impl ::prost::Name for CeremonyCrs { const NAME: &'static str = "CeremonyCrs"; const PACKAGE: &'static str = "penumbra.tools.summoning.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.tools.summoning.v1.{}", Self::NAME) + "penumbra.tools.summoning.v1.CeremonyCrs".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.tools.summoning.v1.CeremonyCrs".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CeremonyLinkingProof { #[prost(bytes = "vec", tag = "100")] @@ -107,10 +110,12 @@ impl ::prost::Name for CeremonyLinkingProof { const NAME: &'static str = "CeremonyLinkingProof"; const PACKAGE: &'static str = "penumbra.tools.summoning.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.tools.summoning.v1.{}", Self::NAME) + "penumbra.tools.summoning.v1.CeremonyLinkingProof".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.tools.summoning.v1.CeremonyLinkingProof".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CeremonyParentHashes { #[prost(bytes = "vec", tag = "100")] @@ -132,10 +137,12 @@ impl ::prost::Name for CeremonyParentHashes { const NAME: &'static str = "CeremonyParentHashes"; const PACKAGE: &'static str = "penumbra.tools.summoning.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.tools.summoning.v1.{}", Self::NAME) + "penumbra.tools.summoning.v1.CeremonyParentHashes".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.tools.summoning.v1.CeremonyParentHashes".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ParticipateResponse { #[prost(oneof = "participate_response::Msg", tags = "1, 2, 3")] @@ -144,8 +151,7 @@ pub struct ParticipateResponse { /// Nested message and enum types in `ParticipateResponse`. pub mod participate_response { /// Streamed to the participant to inform them of their position in the queue. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Position { /// The position of the participant in the queue. #[prost(uint32, tag = "1")] @@ -168,13 +174,13 @@ pub mod participate_response { const NAME: &'static str = "Position"; const PACKAGE: &'static str = "penumbra.tools.summoning.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.tools.summoning.v1.ParticipateResponse.{}", Self::NAME - ) + "penumbra.tools.summoning.v1.ParticipateResponse.Position".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.tools.summoning.v1.ParticipateResponse.Position".into() } } /// Sent to the participant to inform them that they should contribute now. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ContributeNow { /// The most recent CRS, which the participant should update. @@ -185,14 +191,14 @@ pub mod participate_response { const NAME: &'static str = "ContributeNow"; const PACKAGE: &'static str = "penumbra.tools.summoning.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.tools.summoning.v1.ParticipateResponse.{}", Self::NAME - ) + "penumbra.tools.summoning.v1.ParticipateResponse.ContributeNow".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.tools.summoning.v1.ParticipateResponse.ContributeNow".into() } } /// Sent to the participant to confim their contribution was accepted. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Confirm { #[prost(uint64, tag = "1")] pub slot: u64, @@ -201,12 +207,12 @@ pub mod participate_response { const NAME: &'static str = "Confirm"; const PACKAGE: &'static str = "penumbra.tools.summoning.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.tools.summoning.v1.ParticipateResponse.{}", Self::NAME - ) + "penumbra.tools.summoning.v1.ParticipateResponse.Confirm".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.tools.summoning.v1.ParticipateResponse.Confirm".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Msg { #[prost(message, tag = "1")] @@ -221,13 +227,22 @@ impl ::prost::Name for ParticipateResponse { const NAME: &'static str = "ParticipateResponse"; const PACKAGE: &'static str = "penumbra.tools.summoning.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.tools.summoning.v1.{}", Self::NAME) + "penumbra.tools.summoning.v1.ParticipateResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.tools.summoning.v1.ParticipateResponse".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod ceremony_coordinator_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Runs a Phase 2 MPC ceremony with dynamic slot allocation. @@ -250,8 +265,8 @@ pub mod ceremony_coordinator_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -276,7 +291,7 @@ pub mod ceremony_coordinator_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { CeremonyCoordinatorServiceClient::new( InterceptedService::new(inner, interceptor), @@ -338,8 +353,7 @@ pub mod ceremony_coordinator_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -362,16 +376,22 @@ pub mod ceremony_coordinator_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod ceremony_coordinator_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with CeremonyCoordinatorServiceServer. #[async_trait] - pub trait CeremonyCoordinatorService: Send + Sync + 'static { + pub trait CeremonyCoordinatorService: std::marker::Send + std::marker::Sync + 'static { /// Server streaming response type for the Participate method. type ParticipateStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// The protocol used to participate in the ceremony. /// @@ -395,20 +415,18 @@ pub mod ceremony_coordinator_service_server { } /// Runs a Phase 2 MPC ceremony with dynamic slot allocation. #[derive(Debug)] - pub struct CeremonyCoordinatorServiceServer { - inner: _Inner, + pub struct CeremonyCoordinatorServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl CeremonyCoordinatorServiceServer { + impl CeremonyCoordinatorServiceServer { 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(), @@ -459,8 +477,8 @@ pub mod ceremony_coordinator_service_server { for CeremonyCoordinatorServiceServer where T: CeremonyCoordinatorService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -472,7 +490,6 @@ pub mod ceremony_coordinator_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.tools.summoning.v1.CeremonyCoordinatorService/Participate" => { #[allow(non_camel_case_types)] @@ -510,7 +527,6 @@ pub mod ceremony_coordinator_service_server { 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 = ParticipateSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -529,20 +545,25 @@ pub mod ceremony_coordinator_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for CeremonyCoordinatorServiceServer { + impl Clone for CeremonyCoordinatorServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -554,18 +575,9 @@ pub mod ceremony_coordinator_service_server { } } } - 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 CeremonyCoordinatorServiceServer { - const NAME: &'static str = "penumbra.tools.summoning.v1.CeremonyCoordinatorService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.tools.summoning.v1.CeremonyCoordinatorService"; + impl tonic::server::NamedService for CeremonyCoordinatorServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.tools.summoning.v1.serde.rs b/crates/proto/src/gen/penumbra.tools.summoning.v1.serde.rs index 5864da3de6..8b47ad338f 100644 --- a/crates/proto/src/gen/penumbra.tools.summoning.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.tools.summoning.v1.serde.rs @@ -30,30 +30,37 @@ impl serde::Serialize for CeremonyCrs { let mut struct_ser = serializer.serialize_struct("penumbra.tools.summoning.v1.CeremonyCrs", len)?; if !self.spend.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("spend", pbjson::private::base64::encode(&self.spend).as_str())?; } if !self.output.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("output", pbjson::private::base64::encode(&self.output).as_str())?; } if !self.delegator_vote.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("delegatorVote", pbjson::private::base64::encode(&self.delegator_vote).as_str())?; } if !self.undelegate_claim.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("undelegateClaim", pbjson::private::base64::encode(&self.undelegate_claim).as_str())?; } if !self.swap.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("swap", pbjson::private::base64::encode(&self.swap).as_str())?; } if !self.swap_claim.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("swapClaim", pbjson::private::base64::encode(&self.swap_claim).as_str())?; } if !self.nullifer_derivation_crs.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("nulliferDerivationCrs", pbjson::private::base64::encode(&self.nullifer_derivation_crs).as_str())?; } struct_ser.end() @@ -252,30 +259,37 @@ impl serde::Serialize for CeremonyLinkingProof { let mut struct_ser = serializer.serialize_struct("penumbra.tools.summoning.v1.CeremonyLinkingProof", len)?; if !self.spend.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("spend", pbjson::private::base64::encode(&self.spend).as_str())?; } if !self.output.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("output", pbjson::private::base64::encode(&self.output).as_str())?; } if !self.delegator_vote.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("delegatorVote", pbjson::private::base64::encode(&self.delegator_vote).as_str())?; } if !self.undelegate_claim.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("undelegateClaim", pbjson::private::base64::encode(&self.undelegate_claim).as_str())?; } if !self.swap.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("swap", pbjson::private::base64::encode(&self.swap).as_str())?; } if !self.swap_claim.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("swapClaim", pbjson::private::base64::encode(&self.swap_claim).as_str())?; } if !self.nullifer_derivation_crs.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("nulliferDerivationCrs", pbjson::private::base64::encode(&self.nullifer_derivation_crs).as_str())?; } struct_ser.end() @@ -474,30 +488,37 @@ impl serde::Serialize for CeremonyParentHashes { let mut struct_ser = serializer.serialize_struct("penumbra.tools.summoning.v1.CeremonyParentHashes", len)?; if !self.spend.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("spend", pbjson::private::base64::encode(&self.spend).as_str())?; } if !self.output.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("output", pbjson::private::base64::encode(&self.output).as_str())?; } if !self.delegator_vote.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("delegatorVote", pbjson::private::base64::encode(&self.delegator_vote).as_str())?; } if !self.undelegate_claim.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("undelegateClaim", pbjson::private::base64::encode(&self.undelegate_claim).as_str())?; } if !self.swap.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("swap", pbjson::private::base64::encode(&self.swap).as_str())?; } if !self.swap_claim.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("swapClaim", pbjson::private::base64::encode(&self.swap_claim).as_str())?; } if !self.nullifer_derivation_crs.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("nulliferDerivationCrs", pbjson::private::base64::encode(&self.nullifer_derivation_crs).as_str())?; } struct_ser.end() @@ -1144,6 +1165,7 @@ impl serde::Serialize for participate_response::Confirm { let mut struct_ser = serializer.serialize_struct("penumbra.tools.summoning.v1.ParticipateResponse.Confirm", len)?; if self.slot != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("slot", ToString::to_string(&self.slot).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/penumbra.util.tendermint_proxy.v1.rs b/crates/proto/src/gen/penumbra.util.tendermint_proxy.v1.rs index 21e813cb1f..97a472b1ed 100644 --- a/crates/proto/src/gen/penumbra.util.tendermint_proxy.v1.rs +++ b/crates/proto/src/gen/penumbra.util.tendermint_proxy.v1.rs @@ -1,5 +1,5 @@ +// This file is @generated by prost-build. /// GetTxRequest is the request type for the GetTx RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetTxRequest { /// Hash of transaction to retrieve @@ -13,11 +13,13 @@ impl ::prost::Name for GetTxRequest { const NAME: &'static str = "GetTxRequest"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.GetTxRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.GetTxRequest".into() } } /// GetTxResponse is the response type for the GetTx RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetTxResponse { /// Hash of transaction @@ -36,10 +38,12 @@ impl ::prost::Name for GetTxResponse { const NAME: &'static str = "GetTxResponse"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.GetTxResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.GetTxResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TxResult { #[prost(string, tag = "1")] @@ -55,10 +59,12 @@ impl ::prost::Name for TxResult { const NAME: &'static str = "TxResult"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.TxResult".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.TxResult".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Tag { #[prost(bytes = "vec", tag = "1")] @@ -72,11 +78,13 @@ impl ::prost::Name for Tag { const NAME: &'static str = "Tag"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.Tag".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.Tag".into() } } /// BroadcastTxAsyncRequest is the request type for the BroadcastTxAsync RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BroadcastTxAsyncRequest { #[prost(bytes = "vec", tag = "1")] @@ -88,11 +96,13 @@ impl ::prost::Name for BroadcastTxAsyncRequest { const NAME: &'static str = "BroadcastTxAsyncRequest"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.BroadcastTxAsyncRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.BroadcastTxAsyncRequest".into() } } /// BroadcastTxAsyncResponse is the response type for the BroadcastTxAsync RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BroadcastTxAsyncResponse { #[prost(uint64, tag = "1")] @@ -108,11 +118,13 @@ impl ::prost::Name for BroadcastTxAsyncResponse { const NAME: &'static str = "BroadcastTxAsyncResponse"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.BroadcastTxAsyncResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.BroadcastTxAsyncResponse".into() } } /// BroadcastTxSyncRequest is the request type for the BroadcastTxSync RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BroadcastTxSyncRequest { #[prost(bytes = "vec", tag = "1")] @@ -124,11 +136,13 @@ impl ::prost::Name for BroadcastTxSyncRequest { const NAME: &'static str = "BroadcastTxSyncRequest"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.BroadcastTxSyncRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.BroadcastTxSyncRequest".into() } } /// BroadcastTxSyncResponse is the response type for the BroadcastTxSync RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BroadcastTxSyncResponse { #[prost(uint64, tag = "1")] @@ -144,22 +158,26 @@ impl ::prost::Name for BroadcastTxSyncResponse { const NAME: &'static str = "BroadcastTxSyncResponse"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.BroadcastTxSyncResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.BroadcastTxSyncResponse".into() } } /// GetStatusRequest is the request type for the Query/GetStatus RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct GetStatusRequest {} impl ::prost::Name for GetStatusRequest { const NAME: &'static str = "GetStatusRequest"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.GetStatusRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.GetStatusRequest".into() } } /// GetStatusResponse is the response type for the Query/GetStatus RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetStatusResponse { #[prost(message, optional, tag = "1")] @@ -177,10 +195,12 @@ impl ::prost::Name for GetStatusResponse { const NAME: &'static str = "GetStatusResponse"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.GetStatusResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.GetStatusResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SyncInfo { #[prost(bytes = "vec", tag = "1")] @@ -204,11 +224,13 @@ impl ::prost::Name for SyncInfo { const NAME: &'static str = "SyncInfo"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.SyncInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.SyncInfo".into() } } /// ABCIQueryRequest defines the request structure for the ABCIQuery gRPC query. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AbciQueryRequest { #[prost(bytes = "vec", tag = "1")] @@ -224,14 +246,16 @@ impl ::prost::Name for AbciQueryRequest { const NAME: &'static str = "ABCIQueryRequest"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.ABCIQueryRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.ABCIQueryRequest".into() } } /// ABCIQueryResponse defines the response structure for the ABCIQuery gRPC query. /// /// Note: This type is a duplicate of the ResponseQuery proto type defined in /// Tendermint. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AbciQueryResponse { #[prost(uint32, tag = "1")] @@ -261,12 +285,14 @@ impl ::prost::Name for AbciQueryResponse { const NAME: &'static str = "ABCIQueryResponse"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.ABCIQueryResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.ABCIQueryResponse".into() } } /// GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct GetBlockByHeightRequest { #[prost(int64, tag = "1")] pub height: i64, @@ -275,11 +301,13 @@ impl ::prost::Name for GetBlockByHeightRequest { const NAME: &'static str = "GetBlockByHeightRequest"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.GetBlockByHeightRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.GetBlockByHeightRequest".into() } } /// 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 { #[prost(message, optional, tag = "1")] @@ -295,13 +323,22 @@ impl ::prost::Name for GetBlockByHeightResponse { const NAME: &'static str = "GetBlockByHeightResponse"; const PACKAGE: &'static str = "penumbra.util.tendermint_proxy.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.util.tendermint_proxy.v1.{}", Self::NAME) + "penumbra.util.tendermint_proxy.v1.GetBlockByHeightResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.util.tendermint_proxy.v1.GetBlockByHeightResponse".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod tendermint_proxy_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// Defines the gRPC query service for proxying requests to an upstream Tendermint RPC. @@ -324,8 +361,8 @@ pub mod tendermint_proxy_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -350,7 +387,7 @@ pub mod tendermint_proxy_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { TendermintProxyServiceClient::new( InterceptedService::new(inner, interceptor), @@ -399,8 +436,7 @@ pub mod tendermint_proxy_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -430,8 +466,7 @@ pub mod tendermint_proxy_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -461,8 +496,7 @@ pub mod tendermint_proxy_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -489,8 +523,7 @@ pub mod tendermint_proxy_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -522,8 +555,7 @@ pub mod tendermint_proxy_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -553,8 +585,7 @@ pub mod tendermint_proxy_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -577,11 +608,17 @@ pub mod tendermint_proxy_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod tendermint_proxy_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with TendermintProxyServiceServer. #[async_trait] - pub trait TendermintProxyService: Send + Sync + 'static { + pub trait TendermintProxyService: std::marker::Send + std::marker::Sync + 'static { /// Status queries the current status. async fn get_status( &self, @@ -632,20 +669,18 @@ pub mod tendermint_proxy_service_server { } /// Defines the gRPC query service for proxying requests to an upstream Tendermint RPC. #[derive(Debug)] - pub struct TendermintProxyServiceServer { - inner: _Inner, + pub struct TendermintProxyServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl TendermintProxyServiceServer { + impl TendermintProxyServiceServer { 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(), @@ -696,8 +731,8 @@ pub mod tendermint_proxy_service_server { for TendermintProxyServiceServer where T: TendermintProxyService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -709,7 +744,6 @@ pub mod tendermint_proxy_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.util.tendermint_proxy.v1.TendermintProxyService/GetStatus" => { #[allow(non_camel_case_types)] @@ -741,7 +775,6 @@ pub mod tendermint_proxy_service_server { 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 = GetStatusSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -791,7 +824,6 @@ pub mod tendermint_proxy_service_server { 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 = BroadcastTxAsyncSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -841,7 +873,6 @@ pub mod tendermint_proxy_service_server { 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 = BroadcastTxSyncSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -886,7 +917,6 @@ pub mod tendermint_proxy_service_server { 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 = GetTxSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -933,7 +963,6 @@ pub mod tendermint_proxy_service_server { 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 = ABCIQuerySvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -983,7 +1012,6 @@ pub mod tendermint_proxy_service_server { 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 = GetBlockByHeightSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1002,20 +1030,25 @@ pub mod tendermint_proxy_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for TendermintProxyServiceServer { + impl Clone for TendermintProxyServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -1027,18 +1060,9 @@ pub mod tendermint_proxy_service_server { } } } - 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 TendermintProxyServiceServer { - const NAME: &'static str = "penumbra.util.tendermint_proxy.v1.TendermintProxyService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.util.tendermint_proxy.v1.TendermintProxyService"; + impl tonic::server::NamedService for TendermintProxyServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.util.tendermint_proxy.v1.serde.rs b/crates/proto/src/gen/penumbra.util.tendermint_proxy.v1.serde.rs index 592140e6c7..e2e0d3373e 100644 --- a/crates/proto/src/gen/penumbra.util.tendermint_proxy.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.util.tendermint_proxy.v1.serde.rs @@ -21,6 +21,7 @@ impl serde::Serialize for AbciQueryRequest { let mut struct_ser = serializer.serialize_struct("penumbra.util.tendermint_proxy.v1.ABCIQueryRequest", len)?; if !self.data.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("data", pbjson::private::base64::encode(&self.data).as_str())?; } if !self.path.is_empty() { @@ -28,6 +29,7 @@ impl serde::Serialize for AbciQueryRequest { } if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } if self.prove { @@ -167,10 +169,12 @@ impl serde::Serialize for BroadcastTxAsyncRequest { let mut struct_ser = serializer.serialize_struct("penumbra.util.tendermint_proxy.v1.BroadcastTxAsyncRequest", len)?; if !self.params.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("params", pbjson::private::base64::encode(&self.params).as_str())?; } if self.req_id != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("reqId", ToString::to_string(&self.req_id).as_str())?; } struct_ser.end() @@ -292,10 +296,12 @@ impl serde::Serialize for BroadcastTxAsyncResponse { let mut struct_ser = serializer.serialize_struct("penumbra.util.tendermint_proxy.v1.BroadcastTxAsyncResponse", len)?; if self.code != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("code", ToString::to_string(&self.code).as_str())?; } if !self.data.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("data", pbjson::private::base64::encode(&self.data).as_str())?; } if !self.log.is_empty() { @@ -303,6 +309,7 @@ impl serde::Serialize for BroadcastTxAsyncResponse { } if !self.hash.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("hash", pbjson::private::base64::encode(&self.hash).as_str())?; } struct_ser.end() @@ -441,10 +448,12 @@ impl serde::Serialize for BroadcastTxSyncRequest { let mut struct_ser = serializer.serialize_struct("penumbra.util.tendermint_proxy.v1.BroadcastTxSyncRequest", len)?; if !self.params.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("params", pbjson::private::base64::encode(&self.params).as_str())?; } if self.req_id != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("reqId", ToString::to_string(&self.req_id).as_str())?; } struct_ser.end() @@ -566,10 +575,12 @@ impl serde::Serialize for BroadcastTxSyncResponse { let mut struct_ser = serializer.serialize_struct("penumbra.util.tendermint_proxy.v1.BroadcastTxSyncResponse", len)?; if self.code != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("code", ToString::to_string(&self.code).as_str())?; } if !self.data.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("data", pbjson::private::base64::encode(&self.data).as_str())?; } if !self.log.is_empty() { @@ -577,6 +588,7 @@ impl serde::Serialize for BroadcastTxSyncResponse { } if !self.hash.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("hash", pbjson::private::base64::encode(&self.hash).as_str())?; } struct_ser.end() @@ -712,6 +724,7 @@ impl serde::Serialize for GetBlockByHeightRequest { let mut struct_ser = serializer.serialize_struct("penumbra.util.tendermint_proxy.v1.GetBlockByHeightRequest", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } struct_ser.end() @@ -885,6 +898,7 @@ impl serde::Serialize for GetTxRequest { let mut struct_ser = serializer.serialize_struct("penumbra.util.tendermint_proxy.v1.GetTxRequest", len)?; if !self.hash.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("hash", pbjson::private::base64::encode(&self.hash).as_str())?; } if self.prove { @@ -1009,14 +1023,17 @@ impl serde::Serialize for GetTxResponse { let mut struct_ser = serializer.serialize_struct("penumbra.util.tendermint_proxy.v1.GetTxResponse", len)?; if !self.hash.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("hash", pbjson::private::base64::encode(&self.hash).as_str())?; } if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } if self.index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("index", ToString::to_string(&self.index).as_str())?; } if let Some(v) = self.tx_result.as_ref() { @@ -1024,6 +1041,7 @@ impl serde::Serialize for GetTxResponse { } if !self.tx.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("tx", pbjson::private::base64::encode(&self.tx).as_str())?; } struct_ser.end() @@ -1185,14 +1203,17 @@ impl serde::Serialize for SyncInfo { let mut struct_ser = serializer.serialize_struct("penumbra.util.tendermint_proxy.v1.SyncInfo", len)?; if !self.latest_block_hash.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("latestBlockHash", pbjson::private::base64::encode(&self.latest_block_hash).as_str())?; } if !self.latest_app_hash.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("latestAppHash", pbjson::private::base64::encode(&self.latest_app_hash).as_str())?; } if self.latest_block_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("latestBlockHeight", ToString::to_string(&self.latest_block_height).as_str())?; } if let Some(v) = self.latest_block_time.as_ref() { @@ -1356,10 +1377,12 @@ impl serde::Serialize for Tag { let mut struct_ser = serializer.serialize_struct("penumbra.util.tendermint_proxy.v1.Tag", len)?; if !self.key.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("key", pbjson::private::base64::encode(&self.key).as_str())?; } if !self.value.is_empty() { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("value", pbjson::private::base64::encode(&self.value).as_str())?; } if self.index { @@ -1497,10 +1520,12 @@ impl serde::Serialize for TxResult { } if self.gas_wanted != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("gasWanted", ToString::to_string(&self.gas_wanted).as_str())?; } if self.gas_used != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("gasUsed", ToString::to_string(&self.gas_used).as_str())?; } if !self.tags.is_empty() { diff --git a/crates/proto/src/gen/penumbra.view.v1.rs b/crates/proto/src/gen/penumbra.view.v1.rs index 9509181335..24e79f525f 100644 --- a/crates/proto/src/gen/penumbra.view.v1.rs +++ b/crates/proto/src/gen/penumbra.view.v1.rs @@ -1,6 +1,6 @@ +// This file is @generated by prost-build. /// Filters in an `AuctionsRequest` will be combined using `AND` logic -- that /// is, the more filters you add, the fewer responses you're likely to get. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuctionsRequest { /// If present, filter balances to only include the account specified by the `AddressIndex`. @@ -24,10 +24,12 @@ impl ::prost::Name for AuctionsRequest { const NAME: &'static str = "AuctionsRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.AuctionsRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AuctionsRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuctionsResponse { #[prost(message, optional, tag = "1")] @@ -66,10 +68,12 @@ impl ::prost::Name for AuctionsResponse { const NAME: &'static str = "AuctionsResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.AuctionsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AuctionsResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthorizeAndBuildRequest { /// The transaction plan to authorize and build. @@ -82,10 +86,12 @@ impl ::prost::Name for AuthorizeAndBuildRequest { const NAME: &'static str = "AuthorizeAndBuildRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.AuthorizeAndBuildRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AuthorizeAndBuildRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthorizeAndBuildResponse { #[prost(oneof = "authorize_and_build_response::Status", tags = "1, 2")] @@ -94,8 +100,7 @@ pub struct AuthorizeAndBuildResponse { /// Nested message and enum types in `AuthorizeAndBuildResponse`. pub mod authorize_and_build_response { /// Signals that building is in progress. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct BuildProgress { /// An approximate progress of the build, from 0 to 1. #[prost(float, tag = "1")] @@ -105,13 +110,13 @@ pub mod authorize_and_build_response { const NAME: &'static str = "BuildProgress"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.AuthorizeAndBuildResponse.{}", Self::NAME - ) + "penumbra.view.v1.AuthorizeAndBuildResponse.BuildProgress".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AuthorizeAndBuildResponse.BuildProgress".into() } } /// Signals that the transaction is complete. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Complete { /// The finished transaction. @@ -124,12 +129,12 @@ pub mod authorize_and_build_response { const NAME: &'static str = "Complete"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.AuthorizeAndBuildResponse.{}", Self::NAME - ) + "penumbra.view.v1.AuthorizeAndBuildResponse.Complete".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AuthorizeAndBuildResponse.Complete".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Status { #[prost(message, tag = "1")] @@ -142,10 +147,12 @@ impl ::prost::Name for AuthorizeAndBuildResponse { const NAME: &'static str = "AuthorizeAndBuildResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.AuthorizeAndBuildResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AuthorizeAndBuildResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BroadcastTransactionRequest { /// The transaction to broadcast. @@ -161,10 +168,12 @@ impl ::prost::Name for BroadcastTransactionRequest { const NAME: &'static str = "BroadcastTransactionRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.BroadcastTransactionRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.BroadcastTransactionRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BroadcastTransactionResponse { #[prost(oneof = "broadcast_transaction_response::Status", tags = "1, 2")] @@ -173,7 +182,6 @@ pub struct BroadcastTransactionResponse { /// Nested message and enum types in `BroadcastTransactionResponse`. pub mod broadcast_transaction_response { /// Signals that the transaction was broadcast successfully (but has not been confirmed). - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BroadcastSuccess { /// The hash of the transaction that was broadcast. @@ -186,15 +194,15 @@ pub mod broadcast_transaction_response { const NAME: &'static str = "BroadcastSuccess"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.BroadcastTransactionResponse.{}", Self::NAME - ) + "penumbra.view.v1.BroadcastTransactionResponse.BroadcastSuccess".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.BroadcastTransactionResponse.BroadcastSuccess".into() } } /// Signals that the transaction has been confirmed on-chain and detected by the view server. /// /// Will not be sent unless await_detection was true. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Confirmed { /// The hash of the transaction that was broadcast. @@ -210,12 +218,12 @@ pub mod broadcast_transaction_response { const NAME: &'static str = "Confirmed"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.BroadcastTransactionResponse.{}", Self::NAME - ) + "penumbra.view.v1.BroadcastTransactionResponse.Confirmed".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.BroadcastTransactionResponse.Confirmed".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Status { #[prost(message, tag = "1")] @@ -228,10 +236,12 @@ impl ::prost::Name for BroadcastTransactionResponse { const NAME: &'static str = "BroadcastTransactionResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.BroadcastTransactionResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.BroadcastTransactionResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionPlannerRequest { /// The expiry height for the requested TransactionPlan @@ -311,7 +321,6 @@ pub struct TransactionPlannerRequest { /// Nested message and enum types in `TransactionPlannerRequest`. pub mod transaction_planner_request { /// Request message subtypes - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Output { /// The amount and denomination in which the Output is issued. @@ -327,12 +336,12 @@ pub mod transaction_planner_request { const NAME: &'static str = "Output"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.Output".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.Output".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Spend { /// The input amount and denomination in which the Spend is issued. @@ -348,12 +357,12 @@ pub mod transaction_planner_request { const NAME: &'static str = "Spend"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.Spend".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.Spend".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Swap { /// The input amount and denomination to be traded in the Swap. @@ -379,12 +388,12 @@ pub mod transaction_planner_request { const NAME: &'static str = "Swap"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.Swap".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.Swap".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapClaim { /// SwapCommitment to identify the Swap to be claimed. @@ -399,12 +408,12 @@ pub mod transaction_planner_request { const NAME: &'static str = "SwapClaim"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.SwapClaim".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.SwapClaim".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Delegate { #[prost(message, optional, tag = "1")] @@ -418,12 +427,12 @@ pub mod transaction_planner_request { const NAME: &'static str = "Delegate"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.Delegate".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.Delegate".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Undelegate { #[prost(message, optional, tag = "1")] @@ -437,12 +446,12 @@ pub mod transaction_planner_request { const NAME: &'static str = "Undelegate"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.Undelegate".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.Undelegate".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UndelegateClaim { /// The identity key of the validator to finish undelegating from. @@ -474,12 +483,12 @@ pub mod transaction_planner_request { const NAME: &'static str = "UndelegateClaim"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.UndelegateClaim".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.UndelegateClaim".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PositionOpen { /// Contains the data defining the position, sufficient to compute its `PositionId`. @@ -495,12 +504,12 @@ pub mod transaction_planner_request { const NAME: &'static str = "PositionOpen"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.PositionOpen".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.PositionOpen".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PositionClose { /// The position to close. @@ -513,12 +522,12 @@ pub mod transaction_planner_request { const NAME: &'static str = "PositionClose"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.PositionClose".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.PositionClose".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PositionWithdraw { /// The position to withdraw. @@ -541,12 +550,12 @@ pub mod transaction_planner_request { const NAME: &'static str = "PositionWithdraw"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.PositionWithdraw".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.PositionWithdraw".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActionDutchAuctionSchedule { /// The description of the auction to schedule. @@ -559,12 +568,14 @@ pub mod transaction_planner_request { const NAME: &'static str = "ActionDutchAuctionSchedule"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.ActionDutchAuctionSchedule" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.ActionDutchAuctionSchedule" + .into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActionDutchAuctionEnd { /// The unique id of the auction to close. @@ -577,12 +588,12 @@ pub mod transaction_planner_request { const NAME: &'static str = "ActionDutchAuctionEnd"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.ActionDutchAuctionEnd".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.ActionDutchAuctionEnd".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ActionDutchAuctionWithdraw { /// The auction to withdraw funds from. @@ -598,12 +609,14 @@ pub mod transaction_planner_request { const NAME: &'static str = "ActionDutchAuctionWithdraw"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.ActionDutchAuctionWithdraw" + .into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.ActionDutchAuctionWithdraw" + .into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DelegatorVote { /// The proposal being voted on. @@ -630,13 +643,13 @@ pub mod transaction_planner_request { const NAME: &'static str = "DelegatorVote"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.TransactionPlannerRequest.{}", Self::NAME - ) + "penumbra.view.v1.TransactionPlannerRequest.DelegatorVote".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest.DelegatorVote".into() } } /// Specifies either that the planner should compute fees automatically or that it should use a fixed fee amount. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum FeeMode { /// Automatically compute a fee based on gas use. @@ -651,10 +664,12 @@ impl ::prost::Name for TransactionPlannerRequest { const NAME: &'static str = "TransactionPlannerRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.TransactionPlannerRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionPlannerResponse { #[prost(message, optional, tag = "1")] @@ -666,10 +681,12 @@ impl ::prost::Name for TransactionPlannerResponse { const NAME: &'static str = "TransactionPlannerResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.TransactionPlannerResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionPlannerResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AddressByIndexRequest { #[prost(message, optional, tag = "1")] @@ -681,10 +698,12 @@ impl ::prost::Name for AddressByIndexRequest { const NAME: &'static str = "AddressByIndexRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.AddressByIndexRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AddressByIndexRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AddressByIndexResponse { #[prost(message, optional, tag = "1")] @@ -694,20 +713,24 @@ impl ::prost::Name for AddressByIndexResponse { const NAME: &'static str = "AddressByIndexResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.AddressByIndexResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AddressByIndexResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct WalletIdRequest {} impl ::prost::Name for WalletIdRequest { const NAME: &'static str = "WalletIdRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.WalletIdRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.WalletIdRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WalletIdResponse { #[prost(message, optional, tag = "1")] @@ -717,10 +740,12 @@ impl ::prost::Name for WalletIdResponse { const NAME: &'static str = "WalletIdResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.WalletIdResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.WalletIdResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IndexByAddressRequest { #[prost(message, optional, tag = "1")] @@ -730,10 +755,12 @@ impl ::prost::Name for IndexByAddressRequest { const NAME: &'static str = "IndexByAddressRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.IndexByAddressRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.IndexByAddressRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IndexByAddressResponse { /// Will be absent if given an address not viewable by this viewing service @@ -746,10 +773,12 @@ impl ::prost::Name for IndexByAddressResponse { const NAME: &'static str = "IndexByAddressResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.IndexByAddressResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.IndexByAddressResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EphemeralAddressRequest { #[prost(message, optional, tag = "1")] @@ -761,10 +790,12 @@ impl ::prost::Name for EphemeralAddressRequest { const NAME: &'static str = "EphemeralAddressRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.EphemeralAddressRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.EphemeralAddressRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EphemeralAddressResponse { #[prost(message, optional, tag = "1")] @@ -774,10 +805,12 @@ impl ::prost::Name for EphemeralAddressResponse { const NAME: &'static str = "EphemeralAddressResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.EphemeralAddressResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.EphemeralAddressResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BalancesRequest { /// If present, filter balances to only include the account specified by the `AddressIndex`. @@ -793,10 +826,12 @@ impl ::prost::Name for BalancesRequest { const NAME: &'static str = "BalancesRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.BalancesRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.BalancesRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BalancesResponse { /// Deprecated: use `account_address` instead. @@ -823,23 +858,27 @@ impl ::prost::Name for BalancesResponse { const NAME: &'static str = "BalancesResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.BalancesResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.BalancesResponse".into() } } /// Requests sync status of the view service. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct StatusRequest {} impl ::prost::Name for StatusRequest { const NAME: &'static str = "StatusRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.StatusRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.StatusRequest".into() } } /// Returns the status of the view service and whether it is synchronized with the chain state. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct StatusResponse { /// The height the view service has synchronized to so far when doing a full linear sync #[prost(uint64, tag = "1")] @@ -855,23 +894,27 @@ impl ::prost::Name for StatusResponse { const NAME: &'static str = "StatusResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.StatusResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.StatusResponse".into() } } /// Requests streaming updates on the sync height until the view service is synchronized. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct StatusStreamRequest {} impl ::prost::Name for StatusStreamRequest { const NAME: &'static str = "StatusStreamRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.StatusStreamRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.StatusStreamRequest".into() } } /// A streaming sync status update -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct StatusStreamResponse { /// The latest known block height #[prost(uint64, tag = "1")] @@ -887,14 +930,16 @@ impl ::prost::Name for StatusStreamResponse { const NAME: &'static str = "StatusStreamResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.StatusStreamResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.StatusStreamResponse".into() } } /// A query for notes known by the view service. /// /// This message uses the fact that all proto fields are optional /// to allow various filtering on the returned notes. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NotesRequest { /// If set, return spent notes as well as unspent notes. @@ -918,11 +963,13 @@ impl ::prost::Name for NotesRequest { const NAME: &'static str = "NotesRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.NotesRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.NotesRequest".into() } } /// A query for notes to be used for voting on a proposal. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NotesForVotingRequest { /// The starting height of the proposal. @@ -938,10 +985,12 @@ impl ::prost::Name for NotesForVotingRequest { const NAME: &'static str = "NotesForVotingRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.NotesForVotingRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.NotesForVotingRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WitnessRequest { /// The transaction plan to witness @@ -954,10 +1003,12 @@ impl ::prost::Name for WitnessRequest { const NAME: &'static str = "WitnessRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.WitnessRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.WitnessRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WitnessResponse { #[prost(message, optional, tag = "1")] @@ -969,10 +1020,12 @@ impl ::prost::Name for WitnessResponse { const NAME: &'static str = "WitnessResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.WitnessResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.WitnessResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WitnessAndBuildRequest { #[prost(message, optional, tag = "1")] @@ -988,10 +1041,12 @@ impl ::prost::Name for WitnessAndBuildRequest { const NAME: &'static str = "WitnessAndBuildRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.WitnessAndBuildRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.WitnessAndBuildRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct WitnessAndBuildResponse { #[prost(oneof = "witness_and_build_response::Status", tags = "1, 2")] @@ -1000,8 +1055,7 @@ pub struct WitnessAndBuildResponse { /// Nested message and enum types in `WitnessAndBuildResponse`. pub mod witness_and_build_response { /// Signals that building is in progress. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] + #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct BuildProgress { /// An approximate progress of the build, from 0 to 1. #[prost(float, tag = "1")] @@ -1011,13 +1065,13 @@ pub mod witness_and_build_response { const NAME: &'static str = "BuildProgress"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.WitnessAndBuildResponse.{}", Self::NAME - ) + "penumbra.view.v1.WitnessAndBuildResponse.BuildProgress".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.WitnessAndBuildResponse.BuildProgress".into() } } /// Signals that the transaction is complete. - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Complete { /// The finished transaction. @@ -1030,12 +1084,12 @@ pub mod witness_and_build_response { const NAME: &'static str = "Complete"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.view.v1.WitnessAndBuildResponse.{}", Self::NAME - ) + "penumbra.view.v1.WitnessAndBuildResponse.Complete".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.WitnessAndBuildResponse.Complete".into() } } - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Status { #[prost(message, tag = "1")] @@ -1048,11 +1102,13 @@ impl ::prost::Name for WitnessAndBuildResponse { const NAME: &'static str = "WitnessAndBuildResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.WitnessAndBuildResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.WitnessAndBuildResponse".into() } } /// Requests all assets known to the view service. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AssetsRequest { /// If set to false (default), returns all assets, regardless of whether the rest of the fields of @@ -1084,11 +1140,13 @@ impl ::prost::Name for AssetsRequest { const NAME: &'static str = "AssetsRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.AssetsRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AssetsRequest".into() } } /// Requests all assets known to the view service. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AssetsResponse { #[prost(message, optional, tag = "2")] @@ -1098,21 +1156,25 @@ impl ::prost::Name for AssetsResponse { const NAME: &'static str = "AssetsResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.AssetsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AssetsResponse".into() } } /// Requests the current app parameters from the view service. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct AppParametersRequest {} impl ::prost::Name for AppParametersRequest { const NAME: &'static str = "AppParametersRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.AppParametersRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AppParametersRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AppParametersResponse { #[prost(message, optional, tag = "1")] @@ -1122,21 +1184,25 @@ impl ::prost::Name for AppParametersResponse { const NAME: &'static str = "AppParametersResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.AppParametersResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AppParametersResponse".into() } } /// Requests the current gas prices from the view service. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct GasPricesRequest {} impl ::prost::Name for GasPricesRequest { const NAME: &'static str = "GasPricesRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.GasPricesRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.GasPricesRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GasPricesResponse { /// The current gas prices, in the preferred (native) token. @@ -1154,22 +1220,26 @@ impl ::prost::Name for GasPricesResponse { const NAME: &'static str = "GasPricesResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.GasPricesResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.GasPricesResponse".into() } } /// Requests the current FMD parameters from the view service. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct FmdParametersRequest {} impl ::prost::Name for FmdParametersRequest { const NAME: &'static str = "FMDParametersRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.FMDParametersRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.FMDParametersRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct FmdParametersResponse { #[prost(message, optional, tag = "1")] pub parameters: ::core::option::Option< @@ -1180,10 +1250,12 @@ impl ::prost::Name for FmdParametersResponse { const NAME: &'static str = "FMDParametersResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.FMDParametersResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.FMDParametersResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NoteByCommitmentRequest { #[prost(message, optional, tag = "2")] @@ -1198,10 +1270,12 @@ impl ::prost::Name for NoteByCommitmentRequest { const NAME: &'static str = "NoteByCommitmentRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.NoteByCommitmentRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.NoteByCommitmentRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NoteByCommitmentResponse { #[prost(message, optional, tag = "1")] @@ -1211,10 +1285,12 @@ impl ::prost::Name for NoteByCommitmentResponse { const NAME: &'static str = "NoteByCommitmentResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.NoteByCommitmentResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.NoteByCommitmentResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapByCommitmentRequest { #[prost(message, optional, tag = "2")] @@ -1229,10 +1305,12 @@ impl ::prost::Name for SwapByCommitmentRequest { const NAME: &'static str = "SwapByCommitmentRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.SwapByCommitmentRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.SwapByCommitmentRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapByCommitmentResponse { #[prost(message, optional, tag = "1")] @@ -1242,20 +1320,24 @@ impl ::prost::Name for SwapByCommitmentResponse { const NAME: &'static str = "SwapByCommitmentResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.SwapByCommitmentResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.SwapByCommitmentResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct UnclaimedSwapsRequest {} impl ::prost::Name for UnclaimedSwapsRequest { const NAME: &'static str = "UnclaimedSwapsRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.UnclaimedSwapsRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.UnclaimedSwapsRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UnclaimedSwapsResponse { #[prost(message, optional, tag = "1")] @@ -1265,10 +1347,12 @@ impl ::prost::Name for UnclaimedSwapsResponse { const NAME: &'static str = "UnclaimedSwapsResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.UnclaimedSwapsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.UnclaimedSwapsResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NullifierStatusRequest { #[prost(message, optional, tag = "2")] @@ -1282,11 +1366,13 @@ impl ::prost::Name for NullifierStatusRequest { const NAME: &'static str = "NullifierStatusRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.NullifierStatusRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.NullifierStatusRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct NullifierStatusResponse { #[prost(bool, tag = "1")] pub spent: bool, @@ -1295,10 +1381,12 @@ impl ::prost::Name for NullifierStatusResponse { const NAME: &'static str = "NullifierStatusResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.NullifierStatusResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.NullifierStatusResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionInfoByHashRequest { /// The transaction hash to query for. @@ -1309,11 +1397,13 @@ impl ::prost::Name for TransactionInfoByHashRequest { const NAME: &'static str = "TransactionInfoByHashRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.TransactionInfoByHashRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionInfoByHashRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct TransactionInfoRequest { /// If present, return only transactions after this height. #[prost(uint64, tag = "1")] @@ -1326,10 +1416,12 @@ impl ::prost::Name for TransactionInfoRequest { const NAME: &'static str = "TransactionInfoRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.TransactionInfoRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionInfoRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionInfo { /// The height the transaction was included in a block, if known. @@ -1358,10 +1450,12 @@ impl ::prost::Name for TransactionInfo { const NAME: &'static str = "TransactionInfo"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.TransactionInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionInfo".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionInfoResponse { #[prost(message, optional, tag = "1")] @@ -1371,10 +1465,12 @@ impl ::prost::Name for TransactionInfoResponse { const NAME: &'static str = "TransactionInfoResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.TransactionInfoResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionInfoResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionInfoByHashResponse { #[prost(message, optional, tag = "1")] @@ -1384,10 +1480,12 @@ impl ::prost::Name for TransactionInfoByHashResponse { const NAME: &'static str = "TransactionInfoByHashResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.TransactionInfoByHashResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.TransactionInfoByHashResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NotesResponse { #[prost(message, optional, tag = "1")] @@ -1397,10 +1495,12 @@ impl ::prost::Name for NotesResponse { const NAME: &'static str = "NotesResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.NotesResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.NotesResponse".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NotesForVotingResponse { #[prost(message, optional, tag = "1")] @@ -1412,11 +1512,13 @@ impl ::prost::Name for NotesForVotingResponse { const NAME: &'static str = "NotesForVotingResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.NotesForVotingResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.NotesForVotingResponse".into() } } /// A note plaintext with associated metadata about its status. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SpendableNoteRecord { /// The note commitment, identifying the note. @@ -1463,10 +1565,12 @@ impl ::prost::Name for SpendableNoteRecord { const NAME: &'static str = "SpendableNoteRecord"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.SpendableNoteRecord".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.SpendableNoteRecord".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapRecord { #[prost(message, optional, tag = "1")] @@ -1498,10 +1602,12 @@ impl ::prost::Name for SwapRecord { const NAME: &'static str = "SwapRecord"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.SwapRecord".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.SwapRecord".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct OwnedPositionIdsRequest { /// If present, return only positions with this position state. @@ -1519,10 +1625,12 @@ impl ::prost::Name for OwnedPositionIdsRequest { const NAME: &'static str = "OwnedPositionIdsRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.OwnedPositionIdsRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.OwnedPositionIdsRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct OwnedPositionIdsResponse { #[prost(message, optional, tag = "1")] @@ -1534,11 +1642,13 @@ impl ::prost::Name for OwnedPositionIdsResponse { const NAME: &'static str = "OwnedPositionIdsResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.OwnedPositionIdsResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.OwnedPositionIdsResponse".into() } } /// Requests information on an asset by asset id -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AssetMetadataByIdRequest { /// The asset id to request information on. @@ -1549,10 +1659,12 @@ impl ::prost::Name for AssetMetadataByIdRequest { const NAME: &'static str = "AssetMetadataByIdRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.AssetMetadataByIdRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AssetMetadataByIdRequest".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AssetMetadataByIdResponse { /// If present, information on the requested asset. @@ -1565,13 +1677,15 @@ impl ::prost::Name for AssetMetadataByIdResponse { const NAME: &'static str = "AssetMetadataByIdResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.AssetMetadataByIdResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.AssetMetadataByIdResponse".into() } } /// Requests `ValueView`s of delegation tokens for the given address index. The /// returned `ValueView`s will include the `ValidatorInfo` for the delegated /// validator in their `extended_metadata` fields. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DelegationsByAddressIndexRequest { /// The address index to fetch delegation balances for. @@ -1616,11 +1730,11 @@ pub mod delegations_by_address_index_request { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - Filter::Unspecified => "FILTER_UNSPECIFIED", - Filter::AllActiveWithNonzeroBalances => { + Self::Unspecified => "FILTER_UNSPECIFIED", + Self::AllActiveWithNonzeroBalances => { "FILTER_ALL_ACTIVE_WITH_NONZERO_BALANCES" } - Filter::All => "FILTER_ALL", + Self::All => "FILTER_ALL", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -1640,13 +1754,15 @@ impl ::prost::Name for DelegationsByAddressIndexRequest { const NAME: &'static str = "DelegationsByAddressIndexRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.DelegationsByAddressIndexRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.DelegationsByAddressIndexRequest".into() } } /// Contains a `ValueView` of delegation tokens for the requested address index. /// The `ValueView` includes the `ValidatorInfo` for the delegated validator in /// cits `extended_metadata` field. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DelegationsByAddressIndexResponse { #[prost(message, optional, tag = "1")] @@ -1656,12 +1772,14 @@ impl ::prost::Name for DelegationsByAddressIndexResponse { const NAME: &'static str = "DelegationsByAddressIndexResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.DelegationsByAddressIndexResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.DelegationsByAddressIndexResponse".into() } } /// Requests unbonding tokens for a given address index, with optional filtering /// for whether the tokens are currently claimable. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UnbondingTokensByAddressIndexRequest { #[prost( @@ -1709,9 +1827,9 @@ pub mod unbonding_tokens_by_address_index_request { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - Filter::Unspecified => "FILTER_UNSPECIFIED", - Filter::Claimable => "FILTER_CLAIMABLE", - Filter::NotYetClaimable => "FILTER_NOT_YET_CLAIMABLE", + Self::Unspecified => "FILTER_UNSPECIFIED", + Self::Claimable => "FILTER_CLAIMABLE", + Self::NotYetClaimable => "FILTER_NOT_YET_CLAIMABLE", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -1729,12 +1847,14 @@ impl ::prost::Name for UnbondingTokensByAddressIndexRequest { const NAME: &'static str = "UnbondingTokensByAddressIndexRequest"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.UnbondingTokensByAddressIndexRequest".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.UnbondingTokensByAddressIndexRequest".into() } } /// Returns unbonding tokens for the given address index, optionally filtered by /// whether the tokens are currently claimable. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UnbondingTokensByAddressIndexResponse { /// A `ValueView` representing the amount of the given unbonding token. @@ -1750,13 +1870,22 @@ impl ::prost::Name for UnbondingTokensByAddressIndexResponse { const NAME: &'static str = "UnbondingTokensByAddressIndexResponse"; const PACKAGE: &'static str = "penumbra.view.v1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.view.v1.{}", Self::NAME) + "penumbra.view.v1.UnbondingTokensByAddressIndexResponse".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/penumbra.view.v1.UnbondingTokensByAddressIndexResponse".into() } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod view_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; /// The view RPC is used by a view client, who wants to do some @@ -1782,8 +1911,8 @@ pub mod view_service_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -1808,7 +1937,7 @@ pub mod view_service_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { ViewServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -1852,8 +1981,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1879,8 +2007,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1906,8 +2033,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1932,8 +2058,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1961,8 +2086,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1991,8 +2115,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2019,8 +2142,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2047,8 +2169,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2073,8 +2194,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2101,8 +2221,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2129,8 +2248,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2155,8 +2273,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2183,8 +2300,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2212,8 +2328,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2238,8 +2353,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2266,8 +2380,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2294,8 +2407,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2322,8 +2434,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2350,8 +2461,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2382,8 +2492,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2410,8 +2519,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2438,8 +2546,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2471,8 +2578,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2503,8 +2609,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2541,8 +2646,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2573,8 +2677,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2609,8 +2712,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2643,8 +2745,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2674,8 +2775,7 @@ pub mod view_service_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -2693,11 +2793,17 @@ pub mod view_service_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod view_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with ViewServiceServer. #[async_trait] - pub trait ViewService: Send + Sync + 'static { + pub trait ViewService: std::marker::Send + std::marker::Sync + 'static { /// Get current status of chain sync async fn status( &self, @@ -2707,7 +2813,7 @@ pub mod view_service_server { type StatusStreamStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Stream sync status updates until the view service has caught up with the chain. /// Returns a stream of `StatusStreamResponse`s. @@ -2722,7 +2828,7 @@ pub mod view_service_server { type NotesStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Queries for notes that have been accepted by the chain. /// Returns a stream of `NotesResponse`s. @@ -2734,7 +2840,7 @@ pub mod view_service_server { type NotesForVotingStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Returns a stream of `NotesForVotingResponse`s. async fn notes_for_voting( @@ -2748,7 +2854,7 @@ pub mod view_service_server { type AssetsStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Queries for metadata about known assets. /// Returns a stream of `AssetsResponse`s. @@ -2828,7 +2934,7 @@ pub mod view_service_server { type BalancesStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Query for balance of a given address. /// Returns a stream of `BalancesResponses`. @@ -2856,7 +2962,7 @@ pub mod view_service_server { type UnclaimedSwapsStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Query for all unclaimed swaps. async fn unclaimed_swaps( @@ -2886,7 +2992,7 @@ pub mod view_service_server { type TransactionInfoStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Query for the full transactions in the given range of blocks. /// Returns a stream of `TransactionInfoResponse`s. @@ -2904,7 +3010,7 @@ pub mod view_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Query for owned position IDs for the given trading pair and in the given position state. async fn owned_position_ids( @@ -2936,7 +3042,7 @@ pub mod view_service_server { type WitnessAndBuildStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Like `Witness`, but immediately uses the witness data to build (prove) the transaction. /// @@ -2959,7 +3065,7 @@ pub mod view_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Authorize a transaction plan and build the transaction. /// @@ -2986,7 +3092,7 @@ pub mod view_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Broadcast a transaction to the network, optionally waiting for full confirmation. /// @@ -3005,7 +3111,7 @@ pub mod view_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Get delegation tokens for a given address index. Each delegation token will /// be represented by a `ValueView` with the given address index's balance of @@ -3025,7 +3131,7 @@ pub mod view_service_server { tonic::Status, >, > - + Send + + std::marker::Send + 'static; /// Get unbonding tokens for the given address index, optionally filtered by /// whether the tokens are currently claimable. @@ -3040,7 +3146,7 @@ pub mod view_service_server { type AuctionsStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, > - + Send + + std::marker::Send + 'static; /// Gets the auctions controlled by the user's wallet. async fn auctions( @@ -3053,20 +3159,18 @@ pub mod view_service_server { /// responsible for synchronizing and scanning the public chain state with one or /// more full viewing keys. #[derive(Debug)] - pub struct ViewServiceServer { - inner: _Inner, + pub struct ViewServiceServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl ViewServiceServer { + impl ViewServiceServer { 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(), @@ -3116,8 +3220,8 @@ pub mod view_service_server { impl tonic::codegen::Service> for ViewServiceServer where T: ViewService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -3129,7 +3233,6 @@ pub mod view_service_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/penumbra.view.v1.ViewService/Status" => { #[allow(non_camel_case_types)] @@ -3160,7 +3263,6 @@ pub mod view_service_server { 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) @@ -3207,7 +3309,6 @@ pub mod view_service_server { 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 = StatusStreamSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3254,7 +3355,6 @@ pub mod view_service_server { 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 = NotesSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3301,7 +3401,6 @@ pub mod view_service_server { 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 = NotesForVotingSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3348,7 +3447,6 @@ pub mod view_service_server { 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 = AssetsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3395,7 +3493,6 @@ pub mod view_service_server { 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 = AssetMetadataByIdSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3441,7 +3538,6 @@ pub mod view_service_server { 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 = AppParametersSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3487,7 +3583,6 @@ pub mod view_service_server { 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 = GasPricesSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3533,7 +3628,6 @@ pub mod view_service_server { 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 = FMDParametersSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3579,7 +3673,6 @@ pub mod view_service_server { 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 = AddressByIndexSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3625,7 +3718,6 @@ pub mod view_service_server { 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 = WalletIdSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3671,7 +3763,6 @@ pub mod view_service_server { 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 = IndexByAddressSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3717,7 +3808,6 @@ pub mod view_service_server { 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 = EphemeralAddressSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3764,7 +3854,6 @@ pub mod view_service_server { 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 = BalancesSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3811,7 +3900,6 @@ pub mod view_service_server { 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 = NoteByCommitmentSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3858,7 +3946,6 @@ pub mod view_service_server { 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 = SwapByCommitmentSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3905,7 +3992,6 @@ pub mod view_service_server { 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 = UnclaimedSwapsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -3951,7 +4037,6 @@ pub mod view_service_server { 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 = NullifierStatusSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -4001,7 +4086,6 @@ pub mod view_service_server { 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 = TransactionInfoByHashSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -4049,7 +4133,6 @@ pub mod view_service_server { 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 = TransactionInfoSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -4098,7 +4181,6 @@ pub mod view_service_server { 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 = OwnedPositionIdsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -4145,7 +4227,6 @@ pub mod view_service_server { 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 = TransactionPlannerSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -4191,7 +4272,6 @@ pub mod view_service_server { 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 = WitnessSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -4239,7 +4319,6 @@ pub mod view_service_server { 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 = WitnessAndBuildSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -4288,7 +4367,6 @@ pub mod view_service_server { 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 = AuthorizeAndBuildSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -4337,7 +4415,6 @@ pub mod view_service_server { 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 = BroadcastTransactionSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -4391,7 +4468,6 @@ pub mod view_service_server { 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 = DelegationsByAddressIndexSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -4445,7 +4521,6 @@ pub mod view_service_server { 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 = UnbondingTokensByAddressIndexSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -4492,7 +4567,6 @@ pub mod view_service_server { 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 = AuctionsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -4511,20 +4585,25 @@ pub mod view_service_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for ViewServiceServer { + impl Clone for ViewServiceServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -4536,17 +4615,9 @@ pub mod view_service_server { } } } - 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 ViewServiceServer { - const NAME: &'static str = "penumbra.view.v1.ViewService"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "penumbra.view.v1.ViewService"; + impl tonic::server::NamedService for ViewServiceServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/penumbra.view.v1.serde.rs b/crates/proto/src/gen/penumbra.view.v1.serde.rs index 140a24f431..7aa018ca44 100644 --- a/crates/proto/src/gen/penumbra.view.v1.serde.rs +++ b/crates/proto/src/gen/penumbra.view.v1.serde.rs @@ -1035,6 +1035,7 @@ impl serde::Serialize for AuctionsResponse { } if self.local_seq != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("localSeq", ToString::to_string(&self.local_seq).as_str())?; } struct_ser.end() @@ -2171,6 +2172,7 @@ impl serde::Serialize for broadcast_transaction_response::Confirmed { } if self.detection_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("detectionHeight", ToString::to_string(&self.detection_height).as_str())?; } struct_ser.end() @@ -3514,6 +3516,7 @@ impl serde::Serialize for NotesForVotingRequest { let mut struct_ser = serializer.serialize_struct("penumbra.view.v1.NotesForVotingRequest", len)?; if self.votable_at_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("votableAtHeight", ToString::to_string(&self.votable_at_height).as_str())?; } if let Some(v) = self.address_index.as_ref() { @@ -4442,14 +4445,17 @@ impl serde::Serialize for SpendableNoteRecord { } if self.height_created != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("heightCreated", ToString::to_string(&self.height_created).as_str())?; } if self.height_spent != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("heightSpent", ToString::to_string(&self.height_spent).as_str())?; } if self.position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("position", ToString::to_string(&self.position).as_str())?; } if let Some(v) = self.source.as_ref() { @@ -4729,10 +4735,12 @@ impl serde::Serialize for StatusResponse { let mut struct_ser = serializer.serialize_struct("penumbra.view.v1.StatusResponse", len)?; if self.full_sync_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("fullSyncHeight", ToString::to_string(&self.full_sync_height).as_str())?; } if self.partial_sync_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("partialSyncHeight", ToString::to_string(&self.partial_sync_height).as_str())?; } if self.catching_up { @@ -4939,14 +4947,17 @@ impl serde::Serialize for StatusStreamResponse { let mut struct_ser = serializer.serialize_struct("penumbra.view.v1.StatusStreamResponse", len)?; if self.latest_known_block_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("latestKnownBlockHeight", ToString::to_string(&self.latest_known_block_height).as_str())?; } if self.full_sync_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("fullSyncHeight", ToString::to_string(&self.full_sync_height).as_str())?; } if self.partial_sync_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("partialSyncHeight", ToString::to_string(&self.partial_sync_height).as_str())?; } struct_ser.end() @@ -5307,6 +5318,7 @@ impl serde::Serialize for SwapRecord { } if self.position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("position", ToString::to_string(&self.position).as_str())?; } if let Some(v) = self.nullifier.as_ref() { @@ -5317,6 +5329,7 @@ impl serde::Serialize for SwapRecord { } if self.height_claimed != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("heightClaimed", ToString::to_string(&self.height_claimed).as_str())?; } if let Some(v) = self.source.as_ref() { @@ -5501,6 +5514,7 @@ impl serde::Serialize for TransactionInfo { let mut struct_ser = serializer.serialize_struct("penumbra.view.v1.TransactionInfo", len)?; if self.height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } if let Some(v) = self.id.as_ref() { @@ -5849,10 +5863,12 @@ impl serde::Serialize for TransactionInfoRequest { let mut struct_ser = serializer.serialize_struct("penumbra.view.v1.TransactionInfoRequest", len)?; if self.start_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startHeight", ToString::to_string(&self.start_height).as_str())?; } if self.end_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("endHeight", ToString::to_string(&self.end_height).as_str())?; } struct_ser.end() @@ -6125,6 +6141,7 @@ impl serde::Serialize for TransactionPlannerRequest { let mut struct_ser = serializer.serialize_struct("penumbra.view.v1.TransactionPlannerRequest", len)?; if self.expiry_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("expiryHeight", ToString::to_string(&self.expiry_height).as_str())?; } if let Some(v) = self.memo.as_ref() { @@ -6183,6 +6200,7 @@ impl serde::Serialize for TransactionPlannerRequest { } if self.epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("epochIndex", ToString::to_string(&self.epoch_index).as_str())?; } if let Some(v) = self.epoch.as_ref() { @@ -6750,6 +6768,7 @@ impl serde::Serialize for transaction_planner_request::ActionDutchAuctionWithdra } if self.seq != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("seq", ToString::to_string(&self.seq).as_str())?; } struct_ser.end() @@ -6985,6 +7004,7 @@ impl serde::Serialize for transaction_planner_request::DelegatorVote { let mut struct_ser = serializer.serialize_struct("penumbra.view.v1.TransactionPlannerRequest.DelegatorVote", len)?; if self.proposal != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("proposal", ToString::to_string(&self.proposal).as_str())?; } if let Some(v) = self.vote.as_ref() { @@ -6992,10 +7012,12 @@ impl serde::Serialize for transaction_planner_request::DelegatorVote { } if self.start_block_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startBlockHeight", ToString::to_string(&self.start_block_height).as_str())?; } if self.start_position != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startPosition", ToString::to_string(&self.start_position).as_str())?; } if !self.rate_data.is_empty() { @@ -8066,6 +8088,7 @@ impl serde::Serialize for transaction_planner_request::UndelegateClaim { } if self.start_epoch_index != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("startEpochIndex", ToString::to_string(&self.start_epoch_index).as_str())?; } if let Some(v) = self.penalty.as_ref() { @@ -8076,6 +8099,7 @@ impl serde::Serialize for transaction_planner_request::UndelegateClaim { } if self.unbonding_start_height != 0 { #[allow(clippy::needless_borrow)] + #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("unbondingStartHeight", ToString::to_string(&self.unbonding_start_height).as_str())?; } struct_ser.end() diff --git a/crates/proto/src/gen/proto_descriptor.bin.no_lfs b/crates/proto/src/gen/proto_descriptor.bin.no_lfs index f2452b1c4b474c5738ad69f0c7d1b1e5f47508b9..28830068fd0c53c068bca614b879029fc3e1f73b 100644 GIT binary patch delta 35990 zcmd^odwf;JwSV?|pPdIMI|;-C$R;3ff`Sh~r40~jEF?BWtkyQ3B!_S?$-#3H0q?C_ z)G8FKz}7}-@zsjeiVtE%Z*N8)@PAN_sTJoY|8^tS!?=cm@J zwP)6>S+i!%nl)?Y+?(}Z$v4*c5mDF!EoU$N!S6T3=S@A&MboE4c zvSX#%(%tDyS7nK(j47F1S>2w=w0EScmt-^DnUd2+DT7?r7>9etRotyI*;{G#qDj=eCI?C!~?a+QUjlQL_7pK}P4dCs@5a!>Opm+FY%5NM#Q@8cFQFWqI`kB7C1HfzT zthqIfHBEI5_3;9?#L4SkTs3*%$Y#PAr@1PIWO2FGaDE$rFPUb`PztZdgLNM)|QZD(9ZzSl!8N zdkP&a!=xygTuoI@7FC+qrzYr3qb%m0}O!jo3YB`%v6R4^$XX0%Bv2lPX zE#O=~(NuiCXpWRj&OO^1Af{q-u4l=TOt!mnAgeziZ$<{E?RJM%%NfawHI|5a^En)p z4m@v8;ykBB7!AQ%zM0{(_5U_Az15e-2KtHbt4>M(Hr=l{u9Q={t2>)%>uJR-qS^XI z=BrfHsSB&*6N(g%&234@Kbj$wlxBzO?M`yaBn9Y0^U`FtE8W#z$*qB#_vsw|#jSDV z=t2EDGh`z4qjX?!z5y-~J!s?=f|V7E{3;CH5lZM*IHirXO||u8BAU;x|7v~1Ib&XE)BOjjL7Hs7{>IjWpFA@5amOs_s#oqK2+iW+9hW|4B$X`8oFK$VmwE)UN(P4VDjF@GqE7wsibk zrqlX-){bgAW9YCEH>+MygVP30_wyGGS`7cmUgq2*tu9TGqg&mh7$uq_g_B{Ff+@QP z{}Z-o;hBF_oRaxig43<3qYY5iKhJuwchI%!O$_>SX9 zqn7G+*MdpDC}O?LrMg;E!kUfEGr!y!i)vM~b@41wVdj@sD$0$Dexst?t`xg=?bpwm zTQ{q&sq#&W!FBTl{1(9{bA`(tDpdj9AyJ8%13vhFVc`=ETp4p{9PeU2$kPYrtg+%Vr?Gam8x^h;gIsrR?N@4Mo!dOKc79WH z?VLFcja)Sy*Ql90x8a;f6b>~zhmol|-zn~=bL(c;H2MA4 zbWq}|gf4S#xy zR{3W*PBhN6jGj3k3p&PgUQJV87h?_|S5Ux;`q{yctK&>sQCHXFzpLxxYv{jg>f>wc z&ou3~toYkj)%%*`M%pDjNk8X)-Lc!Gd#o_`__QyW64E&i9oJNMf8Vq*q()9zXSyrh z39BbutZ1CWi*n@`q5w$_X{@GC7ry2AdxtvIF(Vy`*Z96JFc`_@07#E z%w}QCS~^nA3+1+(ucu$Q?Jmo!2&S6Ze%+l(3)V91>q1i0$^XL%zygCRqGvhy6H1(% zDK)M|oBO`ygU2iCGitDLNUQp;5;#LU%iTuD&ZRn&*nhRMjdaQ6lY^&+O!TYg3v6Tf zy=shOOKdnJ3S7(4=GQhs8JS+z)y#+f-Kjd395twZ?d-ZE9Og1?V+4{baQsROh9pG# zXEio7HB64b*$>N*Q{rz~ZmClw>rXy@@)YRw5vUX6e`TJiEOkP26Pd?``nl(VRm?5< zVRGIF)g9^#VjnKV#G8hHPRaYa;d^HIU3{LJ_xa|}ex8>1`4)UGa|&g%^J=~x{|ElD zW?tHR-}&ai;JTrU%eQHcjI4|jmN$z+{lR0l;I-BeEqK$X8hn}Z%9{!hFxG>e) zoxV8Lv7FeiN_Q=UIqgn)OOm5)jpLZ)qB;pX^wgT%IFwcBea2 z6Ej(8GYXPEqs`@x*P7{ElFX*z;#FgEa@Ez*pL(@KLg-I@X@%&x;c5-)K=H{y!G^G) zfr1Sv_-!U3OxO8pBC*6fD{mf2m0=8Yr$`Cfr8aw6Kb6aL^w7YC+R(3~4%Z3r4v{Tq z{q-_E-MMsIiZp`g(X{5BFu~h=wL(JRZGI&)GZ;O~)tc0V_++7A6D#P`EVfXxDJ%&C zc(z(4O4=xSwt9?&Q1I*_!-ZU6)E0yVV<@;FEEq$<1z|zQ)y@eEIw*KfSP;e$AWA;W zRR?zZe06Z*Zl#|LY3%Y0MNd~triYEboE#!zDD8j{VWz7C!<~ZH5l*fa%!!Vk_B7@R zQ%N6l&r2pF~Xaj%C%nOG`-Mv`!6G2jGYP9~2@IOAAld};|!8#7^QOITS!<(9BA*}N8) z4JIlpsN6DSsB~aHAoHfoUgIU0NR6+vGb?4 zhm|!{ZZBk(1Z|PIXfI_-MG%!gZnSd=s|;(gIJjx-e@ikFgF1)SA#ES zFy?t{FZYiWwGchLG~}@mx^QWzt~47jb^S`gWFeTmbnsB8n)R^A)mJF0m*9(!G$LeA zu@*6Y*&>UnUCicLkndivewCsQW_1CfA%MIgfCho+6R`mhRj;DWtN_u_RSKp*r-Y9<-yA1C zDxd^VQc}S3N?(B*@wzYt`0O1gL6BOhj3Komrc_s7r9d5dSrw!JN>Z3M07FXDpH&Jp zQWOTIRSHy+Qv$SFQOEO-zN&!~U`a{?snrVRDz6JG0dVjr39`y#NzaHWRJ}&Qbme7r z4oXToC|#pq!iuk;bd7=;D?m`XMj7uAPKM7?R;8^@C+Q#Ri2!V0B4k6D70fN^lWt9;E99-usgNKAopu`$Q zAB-kymwmPg8a{lEnt&w-BCiP=!8Hn;F3A<_IS^2X6442a;yOj26c$i@5CtY8N<+C$ zDXxl&fap49#JC6nqU#jQZaxNJ;`&H24A288#{h;GAglxzIxH{1gj5WeULSC%87TaH zMV%xH!}<~^Nx}RA40R0l7oayz76wz_kC?Jt#5Yx`HL$=0N=h)n06A0RphYmkfD^+7 zDGQ`-R7M`>;0%Q{LvhUwih8RO3_0OepY=l{L2p2ySd1Jk()!JxryTf-_VHN?83+jN z=4j-A0KuChKu-4#2`nF>6)$fPjw~ElY#j+Y~IKS1^&O2rK_s37(sLNedr$tUEx2 z)MDW6$B_-g$^#I`a-uMZ{aC3Q3H?&BvYU4*1urRx`@&F?HMmo;hdQ*jX(aW#l;Br4 zp6TOnG;x<~0w5T^OHO`(sCbt$Yzk`vAey*KIe8kJ`x?#tpDOA$G4}zZ^iLJ1!ucwu z4M1vWlcFD+IF;>8Qp<4Yo}=9=&&crFe3nrHSA1z2%TyOzGon&iaupm@Wb+Z4eojLt)t9EmlG*VMbU9Xm`qyz!_lwqcS?Mhb4ZYkmu5!?E#bNt~Sa6q8$QlaY?vBQQ*PQ z!I)3EH#7kBDe5}YlL?$#+Gj*xm{6E<DH03Zb|8vN!!f5>_;Us4*is4LyaO@x zSm(P^ETHi#63Zn=m5MLL5^@wODT`WwS44E=8CbRBH9%0=rD?=g`b$izc3!OvOMOXp z^n7l4wKLJEumtc5+K$k|s&BD;bqHR_50aX=Xi{(W?cu0}p=Y$Sh zU#S!f#a5-bL`o(`mZU!dlVR&OsmKFlDm7BE-zw^y#O;bVhr$t<2-&V=2kr5*x#`~Q z2Cu%M$vb;~ZMAm}1wc|#Z{U-*;#iGlPzHeyFPG`bw$khlhTLE2!>>*)OSK}5fY1V> zVw`9zEI?P!5{iUif`C-FN1NRi#G+W7Nw(fW;UBWb;19wBgCPjJ`dbB?2Jw}#Kd4HA zklJsR<3>4bokV3UD!)}m*K+v)EG2l%Z0B^=cgSLgqK-^V@@k;&GG@;sSJ4FFyL<$K zgi{`}MiUtIC2Qol>`)3Th!@Oo3S0pm$o)Tn;BAL8e1!95YFmfRe@apRplFHXnF&Qi zAWYr!a+IO>S=%HHIqSPlWBZh1RXVfC&atqq{hsE} ziA(+eqkE!LUQ@&DhUp%1-n&=aTN_9;-|Sme!eM_Ch{$ zqs&J1Qm6u%6|f`+i`@KOO5qTpIAl_GDMPtq2=*~nyT~u(TBbpbo>$E25`=g6yiz(? zXq84<^}I54nsXkx2$ zq_dm;EC-WeLHo~gFbRQbf02X9V2R=Z+cUXITfQV*_%|1 zw1f~4+FQ^+rbY|~VIa6(F$8M7MXX4|7?XEExGs40rYxw8^26i6|PDqnHb0CT%1gh*);-z6D z(2V!;`%I205K*6P)Oe5j{2Nt>38wr5nx;Qfy{2UQM67`6PMih=B~zzWBp1R`dPgJ^ z1ZPcMQQ~3S7sjq91Z$=aL;#u_PcPL)=a+5X#pxuQI~NGgBTSOGKpHnO>uE5^>jfXt zup>YUL}?k$Z}@mRu6`g;rcJ6kkS{evNA&|rS%ot~6f1P~LqX%TTEBv|?mJMgOHkz_rF>x6$N*RWIKRdK)Bqx?F#t6_rW&I~f8(zHNsydAw(667?vZJr ze?r{LVlWDyqS$eBNxMR;cPKmGArkqx=fhDnbaA#sPaVSHD6H z2Aw+IzXD5+=o`==bA?(VyTZ0;SE^y>0fP__Q4O-vS5l29$xkBEK&(WS#LwXx!xt1$ z<~FY**^=rY|BT|*WN$M|p|L#@W}hCCFw@ck_dv zMQNO$z}xGu%v@)gOW4fAZLO(LV?!l}gW$81DC7>K26&T)a-mYAKj<<#6m^;R5M8EV zfli`at%}eVAlM&(d`$od8?#y!p)G)*wOSRSEr1j(SPjE2Na5=>s>&A-M9@GApd>~6 zlxtLki)jJDS5~-mkOW~VuTc|&1tko^_adgqs{kk|kyr6OL1{EdQ4hbTmU0IOAV__W znED|tyoeUK`dVZOoVH=c+K2`%c5Btb0it>Do;(~1cJ&`OB z00($19S)Eq$R^*bR`N&$s)EwJ)SvrfPBGDfMSfgW zk4xMZ%$s#rq9X&}8vaodvlN-O^k**J4(Hto%4W~DIMxZiHM_>fUX<=`IKiE>Yi<4^ z=L8?*0ev;K|EJ@i=^D zrG*p$g47cv#nE8Zbj_#Lg1-j;IAfImw2DJ6;?yKgpOKsb0)2p-K0t8#jN}v`$Uh@F z1qkxbNKQ@S^jTHJsR4l!KuL)>eO4_T!IZ(rXI6S7cRK-s)U&DxN19~1o>OslLK6fK zNCA|j$Sypmij5Gyg3@y;j!#5kPRqlTH;S1^Ikd@IWkkj=}ghygPM7Upf}Fe0*l5#cBf(q~4ROjYV3uUqyBgDGDHv0w_t5R_#{{xmm|oP};8! z;VK9al=iF0@EM6d+phV6TJWK&BnIXmAqOwkm-!#4HXY>Y$YO&G4oDdQLURCla{$5l z0VxB3XzqZN0YEf&K+3=-UJj}vKnw_!07^ z6>(x}E=Dr=M9KgVI0wj^0|*&>B4q#&&3z(e01(Z6LNe$jMUN3PE3}~PtQ-9mT1bKv zV1*`DR+M3da4t?m3=kw%XjsxXGwA!}8d4wlM;d>Ck{Jp?ULH}R<}TNeIVTE((&ZXL ztDw{f$^fs_RDNIw2&4c?QZ)Up)C&2I7hgf@O6?dvKmb|Y5hI;i)-6=MS__`~+MI7( z9Z{eOc(o?nmKfzM0E|ltGy$*HK!NiHeFS*i$r8lcf3g=12Zx%|WlbwJ}04d;{_HAVx2zE$g+{LMR+Z)}Zd&}eU!0&tk7Z`I;_wgUu>t=cGV zDF8wMTeYz~2m%lS*s7g44M)nvB+5Rf1t&I-^B;@oQ!M1Mh(4*nV_KX?RZxZ1Ies!5 zF@T`|m^NiL+nEu_KA$+td75_tD)Nk`&PY6}QSKh)8&75@;%pO4xrJ;`(Cuef6r7wP zgko8+GUFjteBxB(&7@i{WT{RFbe@^KIEh&I(nV>c!?8$q_o8fODMIzwv$UpI6xT~H z1Oc4+r`rSx>^hLAMJaJOyXa&am!*`JgWNTQjLG}*@s0Upx$Z1$iz40Fp@{ev1>cZc zh&FJy5}Tr>6p98@Z7h(=!{T(*K(Tw;elb2k8>w??mh!`M7J8Pj1V4oM5R-1pv?6z> zwH0Y)=`O#W1y8-RNJ3M1VjebdSsc9}&nT5e+?DZ-dQ2Wj`9s8>g=s0a%^S?$wo#T5 zyZq@bLQuRbBhneCi{PzDev@f}86QFy+d-BTNU32I$z(%-%^ZyZ9fQ!U#mwQO8iG)m zXCj568UKtHmr6}D{uym7U%}Z51aQLXk`xs38SRw#Y0g~IND7zj)YKQW;IibI?oQ1r zb7o`H3p~xq=d|EY$=VUmX?l$9rx_ZP6{v%>^PlMzo?0Q0Lr52 z7qv=m+W?~DFKVOZOe9nEVl)%U6un3@@y`x77@+lP-({_B%IU90Ezr*C)yQ7Z&goT6 ztPu{|IlZb48}2*@34vLV+}k%iwLtavMkHwGv^N?Z+Bxlw%mwY7_D1Hy0+V|qCM}{! zOmbo1<33H5Lq~_b0HrW!d$mur%FK$wEKE*TGXQ$8hS74Q49^eM?D&ksIP-|-q+NU zs$;|Rnc#$Yc@w1tL7sFj^S)MC%z0#|GWj4Bg@JU$>|l?#pVntq(Lu%i8q&4?PRl>W z7j8`8r2qCU2R%6$^@KKS2cw?QX6>McR6jn;XtQ=uL;8;Z(UF6icY*}bk%QX!Clx0{j5q#ur&KrRzNu^OWonm8<1OMqzNu!bBs-b5jqIINB0t1-T!iNo3n zCpqhQHxLW_G&t$PH8qsQ^l8*a5!(1PQc?;LeyZW}5GPuMHa?~CsAG&GJh(y+%#JxT zi$P@tcE_SzF{rH2g*)V^6gFI;yWHae2r4Udr24TygF_+1tM$HXJ4%$A641FiqEiAo zS4VUxmUy)uF4HBTbG451913|jD&mN%_2A{s|Cl)dR8~h+27t=yhzi9QS4Z3o0F~9m z%`drR5L{fN2kX0jJ_q-D@n_g6T;~NCb_y3E0E)+B!(8X~Z zK(xJq+Wt@0b~zG6(1VM=;P=J`GztB%P&3TuGy^uW5ZBWLG_nyBkYJeQiZBYZ% zfo*!6CrzOW8rY^!=7}x<(ZDwS#9Gmwf(EwfUz+W_#~VOzx9h>5m%i_Bj~bwra(mPO zaj{(&wycnOrQ3DH33(65E8VUSJ6?ilV7oqU5)*tO1iwR9%a|!GBpbX#FD&9EnGKFW zKSo2wV6wY~G)g=45*{%HbOgxC;wvx9Ae@6Sj@TA$haQ3Q>#Zh}Ddh8-j%3uergzSw z6kM(>d69ijFOO@d;saOiLX}+S*CHX1>-?G?=Xq@S%BUb6XCyR}y7`wN@$FF){t|VM zD&&LUf`P+Ch1Y|QZx8ohk1CL_l@Fo<179ZZyO4zmboH#n?=`Qsi%y%E@5`Srfn(U! z)ei z66DtlFOyCvkfPB9=ao|6<)MJroxBhZ^9Ag-E^&fv-Y#;?;V1VX>xj-O{K&1AJBlRb zt)x0AeFG%nf#>DzgEmi7fFF#5Hk?3b*jr!b)b#m66B`H43)m474|};3$-y1iv!DT<7=qv~PRQGE z#|m;yB|FhJ{y&E?!bO)wNo-DV1BHrrrrVJk&`s%9d@7MIzCY4H+I{bjG?4UTzaHl+ zI`jb=xL=>f-C2N`hWqu?8rbHIK=%3cdS>|xX-5D3D3%{LMsP<6;|+n3cs?i70`vp-bjwV$RZA7jxuu5N{1%JDAlh4lD(w$2>Qk}>f;QL5(!jyzFl@l^ndEbop$|v|*IhQ$$6q|%nSFtf zuQHIu^nFc~1s~TMdU4`A8Z!lAAKOn{oyp}ih54ixyY$bBhm08Y-0_5Ts=YeI5s=Z8 zpHv5poi%D4VU4D`b z0n5RokOhlHP|PCfFs>#bX3_sE<&J_-I?2k4oC1U!C=`+Md=dAc9wF6cIU&0cn4t2k zKqi~U9VTRs;ccFUsVvM2rRULL(dvn@u_FXV?^**(F`e{N3BYR%k=(&x)Bu8~YA}Ra zNf>OVck-!&0yi1BmGzj`cgl)06?SJYjF<3x8yRuh4DmbRv2=Jd&$~d*iX&dx2v446 zc7+UWU?sz=N*$Ow5Qj9t!g|gwVgYHeBnJIiRQ_Aa^{Li z02__ICocbi>Tir_knP%N2%jH?Kx3of@`x%x(Aa3;V1>^$@`N@TLwPt2UoqD<8e>j? zjL`tBw|S?b-XG32;^$7oDrV^l_)K%{E|}Rw@WywJ8-c%gmIeC)=I$~O?-pzzAwKVb@o0gcay{Vj&5u>)bWY$I(<)E^-Jx1 zuReq1H?i&DLCW06w8@D4~8F*Ke!$L%GHFJZ=YbWEg37myU6qdyU6 z%VdN4)yGWpW?{O}e5lLS(G6AT@Fl4>+%zG3NrQ`!6{e9$qVblpOP-YH8l1Fx9L+-t z=^<`52PibqFLRFEQPCb+*A7Km+F0z@2q(?l56*3?jgmXd8L@Na$$ho3xINM_^7*zK;#?o4nP73Q&-H`itJ{rZ#z~MoWdlc#bU_vxh?Vgv zBUpaz{pUXwH9$VVQ&9ut13YDjGhkFf15X*)bn*ts2YAX55qNw>15X)j37;E+hEe znlJmiBKj2d+7;2K6@FJFAzI;g8H2c2U8I_zzspGQ%@IJ*-(?&(jvu`g(S+J%E|-FYPZ(-m^B6{`Y0xd*c!>IK~|0c%1ne3b%qyQ5xHpl-Jjmxh7@b-NA3`uMO> zpl-KO#dmDzCF|zI$wnuHX2_E*{bVz@pw9x!VD7I zsOw>{yag*nmfUrkwK%fPiK z@h(qwJKVLUxIMdP@A+d|CQUy1#FM5?IdST=aPqKAZm$>?PnRk}<_s*}tA@_A$QcYV z0l`xY83KmtRRfoh`7*`q?`!!r$cO?F)gTl2nx9_`P^?9qsRKrCY5MmdYbPV>Olo1zC0*lNlMz})gv7Fb=nZa}9Xqz;Um<<{d~Tl zNc$tz)!1Pw5K?u4K#l#8=4!NO`&)huvdut5HSo{?5aIOD$XodzblndbCvyu-)OX6b z{h$24!`S>izpG@bfRK|?qjvy+z!D()jtTNXe&1;l01*v|?W4*E`F%%x2_(fT{>*wRwwHYPq+EV(1&y02u5o_@LZT8LZH2mjA9`}LV(0aMukvH zLZHo$44m&*k$)H4$vMBHw#6C4}L7Oi+bRzMo zF>w-$4;0av!wU1?jSQnY+D3gbM5n5SXnTbzBE$HMwpW-UG7J!HuP_lGm`zp^bH}{W zRKIU(i4(oL-kNXe6~5ebFNHoH1!FIU-MjA zd4*ft!Ge91FQY`y#o!D&jZ|Ai)6(?VMjd|_hrPstMB$9?rvgIXqdsg_ZJQ&(Tk=Dd-oZ zi;hW60RrM(X@)8Z1O&X&tQZ|tfrwX{2s2ZnKgk9Kt|8g9v(0%Vnmnnrq!8Z2vX1tV z1WfnWC@uu4oXy-NCIFruPk%x@Jkgl%MX~q9UH}jAum@(vH9OuixJT0w_mnAgO+NRe z=hx(O?~|fmL+oEH*oS>sL+meP?B~5(D_ca6Z5h@;x~-qrC0Y|HS3t5Iy_}PV+d^s} z?yN|Pyvuk7Q_7y)a?^IE1Wp?n&N7AkxIvo0HsYY0<~T< zv{fT0PSwB8g4O85#o>rHW>1Q2xA znA!x4}d}aR}m&MOd6}F@t66hWfXd;xMC# z9cJW%sKLN#qQhG?7z*K7CiWaTbRvlnP!-TW{ej<9jZgjsL#g> zAjEvfL}}mwqp>@rfd>dV-(ezwiUPpJWP5(X#|wXh&`%;lWD9;G#|vLsQ88WsLFXrO zyy#H*r)<1}M+2kor*gQ8*>C~m!vzpR`6&$-38lm}?==ga6hfgBdtC0HVrfGtLt-0fME?Ci3jxpxs#s_3dFZ*mV7y=RF*epq2dL zhy?ZOVN-0XQ3WI(HpQkIARMZPO|hv42#@Sx6Ps!}C@O)n{g)Z+yTSASODbClQ?`5% z{bk^G+I5srbZ48XHY6TV|9?3tVyRsoe}0@B#v@N@jyRLaJCdQ@Yriv@ydxRN66y+J zic5@uF|ymDk)`3^W{NWze8tFaGpF$kJ%AY5ZRV-<%-1B4eLig-o026|`0;;wO3pv> z_ABaxHxS@+5+J71<8n#@1Z$7WDG89ZCZ=Qwb!$7HlK7heAsuAsN{HGgjwydmZ!-zjGlK+LF}G^5B84xl01^-qc2 z#~Xy{BgKyT5Elq=u>*v-c1f`VWaNdb3lN;`B1?EL?;OPNlBrHf+;U_HOPsSNyI}vB z=d~2?Aui&|Ob-``hmZQb1BdN43v6K@f0W49zZ%#=YGD7!)?#cU2Cx|bmSuNo0=yIr z1WEHHQ$)5<7~Orz#7>Ad82~X5FPX!6L>wRn;w5v!3CuO)5S>P*ke|-z~Rk0sJee?zdxJ&?|H}6Qj1c=7ok>&s(dh-r#!Cs`(oHz~R0kd!a zO}mt4((eNi9a_r{$N@(|R#L2G072(~DH7WNV!#iWBC!o12K<1D#5R(AoED}--00wM zv~nnFg{AyU+2bo(IV5Ed5Um`NvZp+(k4X04IP)VZ_BazeKrVKGXzL>>_EOjU)GWB! z;%C6@HmGS=IJ>Cpr6l)NR^NgR&nwNVEFnH%(aI`IcmV*x&?-xG8z2~3Wr=PBM7LL2 zqT2w`?Nt`Ky`Lt1DIK$3YpLt3;F??Bn|-Y%!dt*o+t*nlyv1NN0|bwyFa-K>orUn$ zNNgntfdXr+;Fq@^H)4$?-UDE0lv`sB9ORrL$^l+$1?Fv2{k4|3Voc>|4Axrg$~g61 zam~O|uebQj0gO=rg6j}K=ulvZPzyjb9#}*8VKP7nA+SXHI6w&DdduVqhyWpk>#fp} zK2z^fYPi?>cOwj_4$e?taz^^nYl#2@zJjw}OITfi;H=l;2?#d232?o|HVpV1gw{ud z$aJi?#A=7HAhg~R4k$oYQ*0P0V{d~+8-|lg*@nRq8wNnAw!sqG2N0dzV8H`jt-%F# zU2~&V@LyKntGBOG$~RiL^Y#RJYAyw*?y=PStiEsmxK8o!u^fJp8XrhAHd#7O9@8Nk z4iJ>?w{UvOF3!3viR3{m_}#`0{(}(>;^;w3oWQzF1s}9TDk(tFc+kRgBb*zE{b!bl z8@fzo07`CX<@#AfiKOu}%jL0q6b7ZAS$wyOC(#Ie$P$;d0HI?5B`G@gd&m+g82AcO z4_T!=OBNuji%VLZDOBBJsq!POIRGUkI^Ww8F-2?67RwhYt}a`2wnWlK;fF0`CUXH& zP7Xjxicaz#j+mlo@xxZB92&~Wd6<-eGlh|P#1i+fT$YssP*U>g(C(3lD~cjNV!8ah z3Z+5n5epZvULx%-bIr%Cg5TIm;v<}K;0Y0II`GaCodzI3!)s?h6MzlL*I}^Ho3tI*4{NOIDS47$-Oz^Eq#Y&Vp4AI<2Y!9EztEcT9JNZsZUru z@dq$I|HiWT%MSo)UjNn-Cm;+)0U-FX07GD|{nir40)#+;?Us18p^TpLpw$8xZe3Uj zRM~C~h%)uIT_V51zEd6*+()_oO8rwF8Lep0p6i8vug^5Em|=v?e?csgXq` z1hTxJvc%y5!DW!!?;$sS0>dyM`Lv}U>%>Ksfv))nOW$c3%%oD0a#VWG(rY6G>in@E z0=?R0>9fS>Vby-oQeO^7k0kw~WepI5MK~B);=7~K;_+c1_|Z`rC7XcaZc7{;5dtJ$ zvP8}agE@ky3^4?1ykv=#AwmHDlOjk9EcNYhEXdga zLXHJF8++txQO49~4=rb8>;Pgc_K^MJV*zIa#H!v7$AY~q^@pi5ITUF<4%0uf z)XQvXvuN&rWLXtLj_j=XV@vl)@}z(KuoxJA?#K|3%EuOhcU<)Bu=tZm^!%(C2q}7g zR{TjMdORYAW3y+lb1L$nFo3mAjRGz_0fLHZ*=fg$*` zLBChn>S|k>Fd_(q96NGgSJ)zSUdAlq3fmWccv9JLKElk*0I6g>qD*4ZK( z1f@Z3ojsVcmwYl=6fsz5m$(v0g^XFqQ~VE z*X*_Rn?lheml<`|+xlE|l2&%S1hTIjgjaL68%qX{q9io1{3{HZM`9^Ll)~ETc7E$N4?7s zyuZ&@`6ZPyy8UvWU0A}+0*m42gJ?~FnqCHJJYcKaAPw@?%V@LtfL+Y9ifrpQ8z^L@?iRbT9Jh zY_?@F{eXl#RY%@AbM`?inQg`9gs0bG^U;CL2TpI1AKQwjgWKh~`UI2^&wkMlRM2g5 zbOz^!bhu8}+DO};wC#j*KSdMDDVp#HTm6%*C2sLafSt)DJnxV849M=v|JfhTXp-_@ zFY3XTh>K5TH6WclgX3Qu@k<2D1*05y$sBfMJgH11NJ64)6T*|~lfKuER7svpfkSIt z^Uq6~fP{ID+voKhX~MXPL^~wP7?ztK?0I!~EJ}V6agJFq);Jy_@z!p7gi{uN20EuU9 zkq^WW8vO5PX|1XkL{Z|8wthll1|BKlKcJkitq=}+DpXG7fFQ+`w$N-_8SzZUiCQ4n z83ZGy$a(&wUCfPmx#sij*B|Z53CuXLIkDB}AJ@q52|+8J_=!H5aSM%?IW=SO zt5EzW2FA*iWGFf%tYE_70!vRTj2NS zp4}AO=QEFAI7+kJl+W~nlntE7UXZ4}A$u{poOv8?MBN}YdxN^MTftIO;hOvGg7;#< zpu3){s6dDJ**J%}ycAZ1dgUwtf7KMsA9UMgXFbn_?oO2@o}Jik0)cZh&ax zrWkWkL5J+|`k1;e#y2d0QF?t0G2ZW5n1O()rOh#9HGOD$bu6bGmJFl3h+ag&y@lZ8 z&07szmP#f2w)Xu<^;s1#ggSiYGX!FFn`7erFNQ!fn`33%6fgwX+8l#FNArOp5UJlB z8!{d-30ojAs+(g&$2rf^8>v(VL>?j5wqhmWzn!(H?=KIXt}rG@f$%kAf}*sK+zEtBD1USmWSgeV}iyXUn3?c z!23>2M8v5N)QNXuh#Y0TI!pNbkG(G-=oQt{*EW zXOl~lc3AJmaCt=%1&zHieR5cUb`3y8L@DUIH=ii&9QMY_X_Llj($-;b?D!MtnzpLL z^Za|P0KaRPctv5aTm_qc^-B3bRQh`iKN+|TT04+*>0m6l_0e1kf1|~NQfmQ1YY)bR z_Y4pf55@-aLt21n>tGDeIFTnlkhJ!HV`|`Vtp$wI{~L44o$Dx@4KTHII2J71y3%J5 z+Bz(I#}MetdmKMlHmKJkvDS-Q3M_=n0iLWE?Mf^k({5E)_$lXJX9hL;S{LBTVM_~EI zj0|puP!T-&PuCc^gMmvT;^Ls=RYw`BBL5Vvvk1j^omi|W z9Gq&BSzrjL!8!+rZ#T6%y^qc`D*E1kOr7l9cJV1+I9J2p&hDWwanR>0 z74WAdp4c+wT;*b`_wEanzrw#+mZa<0-pRf9H!H_%*^*Q?8pkZov?V9fE&6KqlLvG* zf}dCEN_F?<+LhDQF=KllYFFk}(jJMd*OiD3JNU64dVLytyRvu4BITB9{0^4IJRTrX zXr*HFw9l3|7u&_ zPwTOlja!E)Z{N1%lR3uWlJ7Se$83o&Fn+4Azn(kC*reDie{^iYPkwx?(!1(h^`Q91ln+IYqj-Z_WV+*ohG>T_Lqj-jp_~(pbbu^0A|IR2T z@<(w)oQWFZUkzl^*U}Kafbg4a zX~_NxO3onJYZq;~u+#jGGW4Rb24t^Y1kv*v5IxEiXUws0jo-d!Si$Z+!zx-cxz0>3 z*LGobIx`6y>qXUdUER+oYLEQl+BU1* zJFL~3!HQ4(yyD$R3+tFZwo(zzDLWpVIJozsHmiKgj#ldj#~2L1W%0MI0Sf=S_tHzP z`Hbk$&mn5JBys-Qd+UGL^LpET>lRV3@G|S%f4bh`%dD)ZchL&#aq;J=ms?+BBnBS6 z=`Fv%+!}oPAd>#wuM8VdGjmqmJctbk!E-b1xrZLLzNM6lk45v@b^Tg|6S{L-vRkc# zicO!M*)vSpvgFrR<-;YSq}h~B;s;T-eE&b}Gyc~5VMlCC@1Bm>;NIb#u^W2d?2L`; feW){b{FZoE>`_I>h$+3#WMV_N{4EoEsOtX#aK$UI delta 16661 zcmb7r3w%`7x$msCA2ZpLgvm~L1ww{EfP^=`5CsYiDu|^jcn)IKAsHYvWMU?PVr{1? zpgaq~AT>v*QWG2UQzc(>ZOd85k1 znO}#77=5puHTAkFH4*N*PT}-Plc!9-<+>?9oHA)9+KkMZaL8nBnJ>GI<5ib9B~1&O zZkZo%j5pWU-ja+rFRrhRCwo;#*^tmUYhJ7&8Nbd&m&^cnCG#TvXL}P$rrCocgDXDZ z-ma3rpsCLLMUQg6*33NG<9o8p>^=)htMfu9f{|a~KR(S2nGvfZ>EzF7j3?%KO?He- zH7b6`yfbAt5JevPSP{Eo6Z2}y$Dt)2euz1R*Gqf6RR59G#{U=hmh|6+kFztGimzGb zrJ+@fA7$R>!)nhX+QBMhMYI**GF_iD;~J4f-e>M+W+f z#(}OuA7$gHK)Glvca2fq@maQB80hPypgzwvF7&31{e>|$FwT2%?858EhI%_;$20>x z;2M|mAx^$y5ikik8reYMej35tOUnmnWB?5s?2L4{$y{@M;6`uA#F2&LLw%e}!OMtu zf)}57+1Lq+4^0-@!bO4s2z(RV9vXpfLhn+iS_tFOMDLx6!^Td`3Nr{#%nCE=;r3R- z48jxpmN^#+VeT4}z01FM@z}{(VGiNRSz!+0$!=dI%pp9vJnCF4gaK;2UEjNYY)w|! zfN)JXqPiOpt|_X}i27F!c5WBKh~AanMU(Crdu3MGgz%MFVT8)KvM8#AO$c8(pwhWm z2&3aP@8qPhscBhZ3j;7MT&lWT5T4d&utpG`Ry|aVBID?IH6N}X*|6j4EQw9e)F`4O zNUkoI;|&CotA`F#Bth4h&PSvaOAsv6vn)ZdOb_?h&%iRhqDmvMOdmE}u^@r3;UmCt4C0RE&@_gz+#8o1LW&V+dzwvn&ki*={dI9R~I6K4s2e%opyO zKMMTJJ2j;|G-2iPZ2&&^X6vWM@RvH|7OJx1pb>9KM=%jR`Ul4{5NC%(4^+X zcq^A)0f6MzED3}Ex2iGVDNYmV)@Y^DM-%DRAytY66Dg)fl5-B0SeAtnE~Z(8zL*+G z^aM#vrGo&qe5m3#KvJ6}G3*qe%5U_9DYbnD>8@a@t*Tb0K(0>ZH!KlIjsXx%sZ;q4 z1d=+H-#{R#8#)Y>h>8(#&3XLChE!ls{8ICrUQQp!riT>y`DR%~espSMZ9{9aesLV* zT<8SlL+G4u=KC09F~0!2pMDOu`Nh3_49)ZV^v#mv@dC3C$fx`yhdiaEX^0l&u+w6< zAcvhsX+d$1EIWWe4Ok=e$hmJ;TVL^re9CQl@R6B)QKMmPJB)-fZ zC~wG)y9KU>?2yrl)SzY$=d>a zi(VINoF9)S=0%(1IE#4CO}#HgTOay>pw;QA22AWdFS)lZ z&SnEJ>{*=621fI9iOz=9Kja#of_+I2J7vR?9Ck8wNj4kMAM8uAb06#PQcfvPv8DBQ zX*OiE{w@v6B?-?!v$XeMxxD~_Whpk4yF|=57T`O))~j!yBZ+7Uz9UPN2aE2=u0*s1 z-{Hz-or@*-j*5ZEC7OO#DzJhvht@fo->FcULkqlt*=FA9{c!rVm)*%gTL5d(W}}f| zE-Q#}yOWh)prJwV;!B+yiOh1%<=$Ur-ZXMKE9fPASeVi#V3CGcXqU6@y_^eRis{-b zS>Pk)HOv}4Y9$Nx#cVL~U%<6jF}{--LI@Zft5`7XT#vaW4@l;H-jP|eX5PolZcaDM zSkVgZ`w|X6mMi;q_W( zmSlM-o6+E#VnAXonWBkJ*K7yzRPUGnG%D4eOHNx)doDSmxSpBav*ei3)DZC-AhDhm zmt@Vs5T$b^Fng)Nm#`s`&Pt?kstmg32IO>>6LXas3j79$Y+#Y1tdfvx{wmjJq$)M| zK8GOjEAsgmQ_;+G%}o#~J<6gpWAlgC#T)7u)wjgGr~moVy!ytd+_}Bb>^ny}S-nVH z67t6=544+DQL!^zu{y4~*(&sproDx+sS&} zt;jWZpj+h?MPS^K+qDQ?cSuKR5;E6*obf%`Nl26DaTd%+IY1_20d>tMm^b*Qp{XbQ zOhPkgo?zXzE3~khyM0%HWrNN=G(ci^t_1Ltxe`Qy248|E%Sghp$W zNjm{Sxq<;=Lj9IuWmHc=_FINSnu3_izhzjd1r=$^Fy2=^gieB*35z};DhDY_j$~L- z&y>cX%CJ&8D8eeTaj$O__J4w!3fn(mmWuT5WkuR3?EQc+3iU8i0Y1fe@6!8Nbn3il z%hIO!Ese27@o0TAnvA!2_uss10-kGb1Kdxsa5rTZEly9dNQs7mtYZf3Oll9X6pilyYKbbtIfVi;IeaLua=~l0A zd}mp7ZoDDUI6vBwh{mD`x>UhOCz`CE-xzD~-jCM=9og(v&zlr-qKo2-=HfV&oHqqP z^iO)f%K@2!`OoqRP@t`I;OB>a-k=TxjA-jnhymgdQGuP?a_uuL@G0|x3!|wsv~!d9 z7EQ!1o%2BO9#HZFg1<}05fJ=cdLjaXze`Um;hBAEAd$LR)GWr z)h854s_bmn{+tCK@LpOtDD^qRT?koflcis1OM$=-DER?l=@;5kK+u1oEd>Pq7ur&r zEd7$p1#R zB$j#o7xham<2c~bVM??j1j{&1xY-8iTgGvK&Ne{fGL93pCPIhhTpXcut2N!70)xlC z23k#*=V%xtg0r0C6rGiUise}MWYJ*LI=I?9zUbGNujbjX&}z4uhvke$7g({Hmkm{6 zF-U}u80j>KQHKp{yq6mr$FK1TXsKJn)k0;9tFtv+Ei!;0Si_M^qmfHN*Y6AutfX^xx3 zf$%xx+7I%;Bb=4?h}OiDwaxW&e)wsFwW^+iX){N;svwv)bJVM&5Q99|-ogXFK@2MXQw;XsRz7D7NBu% z?okaHd z{1*84`1}_5_YnV+g~$WPwcp@@SB=cSw+s&!y}?7p@>bKKp?{ZqeeO6r;a#m5jZplq zjxrz=zsp^@Vgo|)yBsTa7p>S14f!#i`N7Yc*@R<02aWkLpM%Ey79Z)&MeG)9*|B)&M_Os%n&miVHk7CJF6ijfo!QAs*F;VjjdXdFIk<`u)o zI?=gHTjEf9TWh?rR(6UeTbk=}>Y7&{Z>SsLM6Zb_ld<`6+*Qp>HN zm&Cao-L6V3A=SgAMJ@5hBv~X#z)1aLwPa_~*Z!ZCCqXiE0nANEXBNb$YcxJ@9+cuZ z2k%mdNNX})7hO`{vOp+rKy@8$Zf$I-CnHqEam_*@%|eXUS%0+XWPg@NbVAW=JIkx& z_9<3>z+vMx6_VjBzvOafIweCMUDSNZ`M2ELclR{+OCBtCYH+A<#49ZG9QTTrO&M?w z%ct1TMKcog9M3Osu2lV?{cG+mU3S%guemCrsUMYuUvu0(=zhT8aPRoCt5V-^b+JMH zXqWqj<0^#KJcsi9Jm;4wYjI6VP&>r&wI&r1rUy(=Y#bupk?5^KMQCX zI8U?Sm?P5^Tq`pBme;ZID~zlLDpyt*YE^aU5*1Lb&w$Xd!YJ?WynzV8SWvcSZn)plCO;QS9jfvw@KzEUkP3(0cO3y`y{}KENUSI zC7X;gSup`Z$tEK@T171k9h;1yqww~ZRN&&N!`t}FpWTuV6&=2ce5mN~RnUD@hoN>u zNI^x1fftmt8v;T_hcQU*hJaAfVT``WSu5SZRn>NH@qG_WDu9mdzK#Ou*zPAP-C%7u zT)iO_K*x3(lc~Z`Twd)myesd&Vsar^cKIxYVAXRas$%>kdL2s8(L8oDJrV5n-q;YFZ1 zV4w*8y`*tn^Ps^;ls@CV|G;Hl&$ahXc0q?Gos}-=4*GO1=nfjLUS(X+9W;gxcb=DY z#kdqPyuYk{Zb~s|Uhrv(LGyx7Qw*9H{16p`<^>AT9b&*rT=PYPk1K8TMsK;uYhPD0 z2~ZnUf|ctmko8Z z?}(dyKzXkQh^6>t12_9&lEj+uiopxz3XzA?(JMx{KqhS-or7{A1O?2;eiL@>qej3p znV_Nhb<_y;aNe=tSy&vYj~ki(>;K4aI<9>}GweLBrwkyZjvEnK69B@e;|6L1nlgZx zGRF$vk?%yn z00k$F3#aI(P;khPP?s$ElBf1+;U0>?Se(#4HgH)cJ)jfX z$42=m4WZy;qk5!_7y{pA@M018Fa^HL2XfM&4{ee00j%aQ8Ezu6^5Iuytg(F8n(*Jx<>-J5LO6St^`(lLmufrVznHX#P z8@z5?tr=@gHGjfl{s7AP0|@PFP0Syf2KlbtZU(+m(}4DXb~9AsY@x$PJ{21qO{_ZW zxL3RNiNTGDmgrI(lW zDagyPgALAXG}W~NAe3!1)m1bgoY`oiFr|?OMDA@g`^dvRAaZY`IcOM8^DvCggAba# z!!%@X@#5}56YmVlaoodWvixDw>{jYEJyw>&C;8q-Jc0WUn+1iUE}#aOvDs8dLV;yN zNSq}_10*)nVA4AiY5;!JR4>j1h6EbqYcSCudf>G9u83nk>DXcNKBX`5%%eM|v1vLa zbm@QxS%@**p%W8QLM$RL;s6n$9TcIBv`FQX8T-u4?p+V^)IOhsZX5QQ>THNk;Miy4 zt0*$8RD_iezM2wGVBAwC&ec^SX5!_{Go}~WT|MBL+Mz1teolcfHYeQXhL2R+83+Kk2Xj812sxM5nL~|XjX^Ci4ym?-t zd65toUJi@a#plIiE%hn7xd&-eYjabARLv7^N)|W-A15{XQy3DW#;dPg5UpL1fCQC) zD25Y&|Ci{&@z!Ju9EsK@P-`YpakfNba}%wIS_{Q5r2`22P?Rnu>s#t;TN`4{xuF(? zw)2m62<|wlOn6xxYgiInnyglK)T4y`hmjnHctop3>0RyUZbkp4UwZsg%s5ffwm{hc`mFn``_=$3v#=jvRs}qrGjwKf$ zaP{-xG0J4RLcm=>edA)JO`WQ@TbkpsMMy0N34#|X4I(l$uB}ZNff%avBx-RK<1=bz z44FG}%;?dVj=FesYV-wF!)v{9Wfz4E<#ZaU#>pi8wA zz6RQ&PMGRt4n&~ggo$&k)IgVNCrovzhNsYQ!o;Q538?^7r%i9@zLRrK`wHk*?X<6e z%IVXlDuwbzIepqxM;1URIBlvU3m_DnHgRN`C>+4j*kyW&{ok9@Gbhv!^^9r;i@_ z;wY92At4}b{spf6jTyMxl4oEl&c30|pH3wOw1b|PzTh)_Ij?;IgfHi{FMtp{uYCc8 zFXy!{Q~=&((W&GI1?0P!a+k(E|NzIOnGO)D+DNB-ZGXoa*XuCcs}4*m7UH9iF$ zzSsB^wA-z*RH8uy6l*M%Xn;tBHI_;=Kn(pF3yDT&z(R~fo8?tK(#Lz?MQcQxrB058 zVl;9gd=`*GUP$}fI!hb`@fjgs=i5fR`Z`Oc51zudb(T5^0>ZX+mO2PhwVW0qpHWC5 zPwS8aK@3oa91sfAI^^A4d!rS2Oog0kQJp`}B+ zP6hrp>3TPEeVcY22x5TJbwIejO}id(?HyL&Y2`W<^gArnf`6o|?g+V_u`7QMpc+5YJkn?#^4} zdJ(yP$jYpE<85}!A#D&^q2-Wv8xTT=wA+9%=#X|B5N;pRZUe&YL*(`u%Bvze$iHmy zKUm(gZ=J4r*$Va)hitTy?jx4jSDeBHh8i@;?>31B_;JL-Ysi5(Vp0P-ykdE$->w|+ zilx4cCz{dk6{|;2=MvQq_*Kih_?@w-S1tAZFX~6r?^R2D`Hp2Ep z)V%4dp?UwN9(+87nm6^l2ZWk8_2AQm(mNvgFDjzse@ABk5X1mw1^`0gJCp&d4eSE0 zYag=$pIe#L@2+Ge$1Hqv;Uy|tTza*C!s7p7WrqBDDodTP9QjQ%JfP7zX_*ybbOeUk zXpk@6MFXrkX%)!tM2ZI3aMCI%^F?6%NeeIksH~zM=y1w12V^@?#L=KQQ`7^br^pX_ zZ!biI46g994In*b;awNq9=K%YhZdKw8-YLwD2EUbvHj2r7mKqAAhGGK<8eNtv4^HR|rY;L_4ZxHF72qe9dg%@XDnLy|hrUlNRcPZWs6MfZ1}H!2 z(D#Xjm+sOih<<9RuY$PZ{sB-k(c$h>-zYlVeQKrDl_`3I>Qg`3==_<*<-IHd24+A_ zMaQ_$e52?X_nB3shlbvYd`8J2jl#&Bwbc7`mm@t0YNiY6#CF!VicV~2Emyu!M{iJ_ zweUjyU54x~#u>*7d~18Z{Pd0Pbe;JPE$w#|VL*y0J$Ble*3W(xst16Uowm{f2pe|V zDmwrny3;O^g)<#Uq2*?YYu_EDpAnY6&!Y5& zm-GOKyM!YmmFfX)>`m7;)1(G|gPcQLU6A-N*hLw=tD z5ZYD*@qGqL(Gp70dxAV2lqm{~-uDEZ5@!v4iyD|ztqP`3huOU;0ikSFP&p_X;NYsD z%1Y4yid8|Cm7)PER|Qp8iU#Dvs-VhB*?{3+6+}MFP+GxpU(g&_Ix#x64tELlsArSu zv-#}OYp6dZB_7Ktiv}2RUr?okXb=P?dR+BM3D6^?VM4>`iybUJX#*u@JM-J5B`4f=V)N^_38Hqu^ydkzt4Kz zXdD{tq~G7qqUj?Kv$vgp9Z5e%?H5?fI)Ag%uC-H_>7R^N1TIs*10CT1I+Q-jABPSM zOcg!xJ2(0$8!P?arqV~*I4Ceu^u$j~=%Z{L9HCQXl#N3I{rig6fv$ni&U|616{`TJz$2<$=zhc3At^e`%e#)#_xS9b5acd$;rpq`%!}z2>7we{YSw zC$in@jBK|%nDI`flYZ+NyS#0XoBrz#`}w?g@%sYT>=#J>e~;`{{>WbS-6K1~AK4NA z&B&JKj_jt07+G^(AjwMGI-l5Mmta#BLuAYgMVvqD5i%C0-+Ib^Z|Fh{kouJ|eh9P> zCg zIbv#KOL})lu(wIWk$$ryct!5hns{xxd`qxgJnfvmC0G^ivEy%hs@X>Tliv`ZAFEw@ zOKqaQF_}L4WN=vJb(R3*O76n*V63hVKNw4%zGOe7Evfu9=-X}fjiD386iF<+@ds~93^S#5tZmd9j zCWG)hm|p2`-wgIjZ+kg-!FQ=hmmUeuO#kVn;AY8`PQ4tQ{oe`vTYgs49A{wqwj;rQ zY3G&TBZ}h5SAy4m7e(kgJK5UQ)UY(&_EKO4Lzi~rlohzQrYp?h}Sx17B diff --git a/crates/proto/src/gen/tendermint.abci.rs b/crates/proto/src/gen/tendermint.abci.rs index 2cb2c6e801..f2035dd630 100644 --- a/crates/proto/src/gen/tendermint.abci.rs +++ b/crates/proto/src/gen/tendermint.abci.rs @@ -1,4 +1,4 @@ -#[allow(clippy::derive_partial_eq_without_eq)] +// This file is @generated by prost-build. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Request { #[prost( @@ -9,7 +9,6 @@ pub struct Request { } /// Nested message and enum types in `Request`. pub mod request { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Value { #[prost(message, tag = "1")] @@ -50,10 +49,12 @@ impl ::prost::Name for Request { const NAME: &'static str = "Request"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.Request".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.Request".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestEcho { #[prost(string, tag = "1")] @@ -63,20 +64,24 @@ impl ::prost::Name for RequestEcho { const NAME: &'static str = "RequestEcho"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestEcho".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestEcho".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct RequestFlush {} impl ::prost::Name for RequestFlush { const NAME: &'static str = "RequestFlush"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestFlush".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestFlush".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestInfo { #[prost(string, tag = "1")] @@ -92,10 +97,12 @@ impl ::prost::Name for RequestInfo { const NAME: &'static str = "RequestInfo"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestInfo".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestInitChain { #[prost(message, optional, tag = "1")] @@ -115,10 +122,12 @@ impl ::prost::Name for RequestInitChain { const NAME: &'static str = "RequestInitChain"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestInitChain".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestInitChain".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestQuery { #[prost(bytes = "vec", tag = "1")] @@ -134,10 +143,12 @@ impl ::prost::Name for RequestQuery { const NAME: &'static str = "RequestQuery"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestQuery".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestQuery".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestBeginBlock { #[prost(bytes = "vec", tag = "1")] @@ -153,10 +164,12 @@ impl ::prost::Name for RequestBeginBlock { const NAME: &'static str = "RequestBeginBlock"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestBeginBlock".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestBeginBlock".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestCheckTx { #[prost(bytes = "vec", tag = "1")] @@ -168,10 +181,12 @@ impl ::prost::Name for RequestCheckTx { const NAME: &'static str = "RequestCheckTx"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestCheckTx".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestCheckTx".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestDeliverTx { #[prost(bytes = "vec", tag = "1")] @@ -181,11 +196,13 @@ impl ::prost::Name for RequestDeliverTx { const NAME: &'static str = "RequestDeliverTx"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestDeliverTx".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestDeliverTx".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct RequestEndBlock { #[prost(int64, tag = "1")] pub height: i64, @@ -194,32 +211,38 @@ impl ::prost::Name for RequestEndBlock { const NAME: &'static str = "RequestEndBlock"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestEndBlock".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestEndBlock".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct RequestCommit {} impl ::prost::Name for RequestCommit { const NAME: &'static str = "RequestCommit"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestCommit".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestCommit".into() } } /// lists available snapshots -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct RequestListSnapshots {} impl ::prost::Name for RequestListSnapshots { const NAME: &'static str = "RequestListSnapshots"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestListSnapshots".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestListSnapshots".into() } } /// offers a snapshot to the application -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestOfferSnapshot { /// snapshot offered by peers @@ -233,12 +256,14 @@ impl ::prost::Name for RequestOfferSnapshot { const NAME: &'static str = "RequestOfferSnapshot"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestOfferSnapshot".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestOfferSnapshot".into() } } /// loads a snapshot chunk -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct RequestLoadSnapshotChunk { #[prost(uint64, tag = "1")] pub height: u64, @@ -251,11 +276,13 @@ impl ::prost::Name for RequestLoadSnapshotChunk { const NAME: &'static str = "RequestLoadSnapshotChunk"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestLoadSnapshotChunk".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestLoadSnapshotChunk".into() } } /// Applies a snapshot chunk -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestApplySnapshotChunk { #[prost(uint32, tag = "1")] @@ -269,10 +296,12 @@ impl ::prost::Name for RequestApplySnapshotChunk { const NAME: &'static str = "RequestApplySnapshotChunk"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestApplySnapshotChunk".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestApplySnapshotChunk".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestPrepareProposal { /// the modified transactions cannot exceed this size. @@ -300,10 +329,12 @@ impl ::prost::Name for RequestPrepareProposal { const NAME: &'static str = "RequestPrepareProposal"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestPrepareProposal".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestPrepareProposal".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestProcessProposal { #[prost(bytes = "vec", repeated, tag = "1")] @@ -329,10 +360,12 @@ impl ::prost::Name for RequestProcessProposal { const NAME: &'static str = "RequestProcessProposal"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.RequestProcessProposal".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.RequestProcessProposal".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Response { #[prost( @@ -343,7 +376,6 @@ pub struct Response { } /// Nested message and enum types in `Response`. pub mod response { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Value { #[prost(message, tag = "1")] @@ -386,11 +418,13 @@ impl ::prost::Name for Response { const NAME: &'static str = "Response"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.Response".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.Response".into() } } /// nondeterministic -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseException { #[prost(string, tag = "1")] @@ -400,10 +434,12 @@ impl ::prost::Name for ResponseException { const NAME: &'static str = "ResponseException"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseException".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseException".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseEcho { #[prost(string, tag = "1")] @@ -413,20 +449,24 @@ impl ::prost::Name for ResponseEcho { const NAME: &'static str = "ResponseEcho"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseEcho".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseEcho".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ResponseFlush {} impl ::prost::Name for ResponseFlush { const NAME: &'static str = "ResponseFlush"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseFlush".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseFlush".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseInfo { #[prost(string, tag = "1")] @@ -444,10 +484,12 @@ impl ::prost::Name for ResponseInfo { const NAME: &'static str = "ResponseInfo"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseInfo".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseInitChain { #[prost(message, optional, tag = "1")] @@ -461,10 +503,12 @@ impl ::prost::Name for ResponseInitChain { const NAME: &'static str = "ResponseInitChain"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseInitChain".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseInitChain".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseQuery { #[prost(uint32, tag = "1")] @@ -494,10 +538,12 @@ impl ::prost::Name for ResponseQuery { const NAME: &'static str = "ResponseQuery"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseQuery".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseQuery".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseBeginBlock { #[prost(message, repeated, tag = "1")] @@ -507,10 +553,12 @@ impl ::prost::Name for ResponseBeginBlock { const NAME: &'static str = "ResponseBeginBlock"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseBeginBlock".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseBeginBlock".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseCheckTx { #[prost(uint32, tag = "1")] @@ -544,10 +592,12 @@ impl ::prost::Name for ResponseCheckTx { const NAME: &'static str = "ResponseCheckTx"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseCheckTx".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseCheckTx".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseDeliverTx { #[prost(uint32, tag = "1")] @@ -574,10 +624,12 @@ impl ::prost::Name for ResponseDeliverTx { const NAME: &'static str = "ResponseDeliverTx"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseDeliverTx".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseDeliverTx".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseEndBlock { #[prost(message, repeated, tag = "1")] @@ -591,10 +643,12 @@ impl ::prost::Name for ResponseEndBlock { const NAME: &'static str = "ResponseEndBlock"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseEndBlock".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseEndBlock".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseCommit { /// reserve 1 @@ -607,10 +661,12 @@ impl ::prost::Name for ResponseCommit { const NAME: &'static str = "ResponseCommit"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseCommit".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseCommit".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseListSnapshots { #[prost(message, repeated, tag = "1")] @@ -620,11 +676,13 @@ impl ::prost::Name for ResponseListSnapshots { const NAME: &'static str = "ResponseListSnapshots"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseListSnapshots".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseListSnapshots".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ResponseOfferSnapshot { #[prost(enumeration = "response_offer_snapshot::Result", tag = "1")] pub result: i32, @@ -664,12 +722,12 @@ pub mod response_offer_snapshot { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - Result::Unknown => "UNKNOWN", - Result::Accept => "ACCEPT", - Result::Abort => "ABORT", - Result::Reject => "REJECT", - Result::RejectFormat => "REJECT_FORMAT", - Result::RejectSender => "REJECT_SENDER", + Self::Unknown => "UNKNOWN", + Self::Accept => "ACCEPT", + Self::Abort => "ABORT", + Self::Reject => "REJECT", + Self::RejectFormat => "REJECT_FORMAT", + Self::RejectSender => "REJECT_SENDER", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -690,10 +748,12 @@ impl ::prost::Name for ResponseOfferSnapshot { const NAME: &'static str = "ResponseOfferSnapshot"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseOfferSnapshot".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseOfferSnapshot".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseLoadSnapshotChunk { #[prost(bytes = "vec", tag = "1")] @@ -703,10 +763,12 @@ impl ::prost::Name for ResponseLoadSnapshotChunk { const NAME: &'static str = "ResponseLoadSnapshotChunk"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseLoadSnapshotChunk".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseLoadSnapshotChunk".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseApplySnapshotChunk { #[prost(enumeration = "response_apply_snapshot_chunk::Result", tag = "1")] @@ -753,12 +815,12 @@ pub mod response_apply_snapshot_chunk { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - Result::Unknown => "UNKNOWN", - Result::Accept => "ACCEPT", - Result::Abort => "ABORT", - Result::Retry => "RETRY", - Result::RetrySnapshot => "RETRY_SNAPSHOT", - Result::RejectSnapshot => "REJECT_SNAPSHOT", + Self::Unknown => "UNKNOWN", + Self::Accept => "ACCEPT", + Self::Abort => "ABORT", + Self::Retry => "RETRY", + Self::RetrySnapshot => "RETRY_SNAPSHOT", + Self::RejectSnapshot => "REJECT_SNAPSHOT", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -779,10 +841,12 @@ impl ::prost::Name for ResponseApplySnapshotChunk { const NAME: &'static str = "ResponseApplySnapshotChunk"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseApplySnapshotChunk".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseApplySnapshotChunk".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponsePrepareProposal { #[prost(bytes = "vec", repeated, tag = "1")] @@ -792,11 +856,13 @@ impl ::prost::Name for ResponsePrepareProposal { const NAME: &'static str = "ResponsePrepareProposal"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponsePrepareProposal".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponsePrepareProposal".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ResponseProcessProposal { #[prost(enumeration = "response_process_proposal::ProposalStatus", tag = "1")] pub status: i32, @@ -827,9 +893,9 @@ pub mod response_process_proposal { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - ProposalStatus::Unknown => "UNKNOWN", - ProposalStatus::Accept => "ACCEPT", - ProposalStatus::Reject => "REJECT", + Self::Unknown => "UNKNOWN", + Self::Accept => "ACCEPT", + Self::Reject => "REJECT", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -847,10 +913,12 @@ impl ::prost::Name for ResponseProcessProposal { const NAME: &'static str = "ResponseProcessProposal"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ResponseProcessProposal".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ResponseProcessProposal".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CommitInfo { #[prost(int32, tag = "1")] @@ -862,10 +930,12 @@ impl ::prost::Name for CommitInfo { const NAME: &'static str = "CommitInfo"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.CommitInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.CommitInfo".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ExtendedCommitInfo { /// The round at which the block proposer decided in the previous height. @@ -880,13 +950,15 @@ impl ::prost::Name for ExtendedCommitInfo { const NAME: &'static str = "ExtendedCommitInfo"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ExtendedCommitInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ExtendedCommitInfo".into() } } /// Event allows application developers to attach additional information to /// ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx. /// Later, transactions may be queried using these events. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Event { #[prost(string, tag = "1")] @@ -898,11 +970,13 @@ impl ::prost::Name for Event { const NAME: &'static str = "Event"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.Event".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.Event".into() } } /// EventAttribute is a single key-value pair, associated with an event. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EventAttribute { #[prost(string, tag = "1")] @@ -917,13 +991,15 @@ impl ::prost::Name for EventAttribute { const NAME: &'static str = "EventAttribute"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.EventAttribute".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.EventAttribute".into() } } /// TxResult contains results of executing the transaction. /// /// One usage is indexing transaction results. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TxResult { #[prost(int64, tag = "1")] @@ -939,11 +1015,13 @@ impl ::prost::Name for TxResult { const NAME: &'static str = "TxResult"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.TxResult".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.TxResult".into() } } /// Validator -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Validator { /// The first 20 bytes of SHA256(public key) @@ -959,11 +1037,13 @@ impl ::prost::Name for Validator { const NAME: &'static str = "Validator"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.Validator".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.Validator".into() } } /// ValidatorUpdate -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorUpdate { #[prost(message, optional, tag = "1")] @@ -975,11 +1055,13 @@ impl ::prost::Name for ValidatorUpdate { const NAME: &'static str = "ValidatorUpdate"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ValidatorUpdate".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ValidatorUpdate".into() } } /// VoteInfo -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct VoteInfo { #[prost(message, optional, tag = "1")] @@ -991,10 +1073,12 @@ impl ::prost::Name for VoteInfo { const NAME: &'static str = "VoteInfo"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.VoteInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.VoteInfo".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ExtendedVoteInfo { #[prost(message, optional, tag = "1")] @@ -1009,10 +1093,12 @@ impl ::prost::Name for ExtendedVoteInfo { const NAME: &'static str = "ExtendedVoteInfo"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.ExtendedVoteInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.ExtendedVoteInfo".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Misbehavior { #[prost(enumeration = "MisbehaviorType", tag = "1")] @@ -1036,10 +1122,12 @@ impl ::prost::Name for Misbehavior { const NAME: &'static str = "Misbehavior"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.Misbehavior".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.Misbehavior".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Snapshot { /// The height at which the snapshot was taken @@ -1062,7 +1150,10 @@ impl ::prost::Name for Snapshot { const NAME: &'static str = "Snapshot"; const PACKAGE: &'static str = "tendermint.abci"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.abci.{}", Self::NAME) + "tendermint.abci.Snapshot".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.abci.Snapshot".into() } } #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] @@ -1078,8 +1169,8 @@ impl CheckTxType { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - CheckTxType::New => "NEW", - CheckTxType::Recheck => "RECHECK", + Self::New => "NEW", + Self::Recheck => "RECHECK", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -1105,9 +1196,9 @@ impl MisbehaviorType { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - MisbehaviorType::Unknown => "UNKNOWN", - MisbehaviorType::DuplicateVote => "DUPLICATE_VOTE", - MisbehaviorType::LightClientAttack => "LIGHT_CLIENT_ATTACK", + Self::Unknown => "UNKNOWN", + Self::DuplicateVote => "DUPLICATE_VOTE", + Self::LightClientAttack => "LIGHT_CLIENT_ATTACK", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -1123,7 +1214,13 @@ impl MisbehaviorType { /// Generated client implementations. #[cfg(feature = "rpc")] pub mod abci_application_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; #[derive(Debug, Clone)] @@ -1145,8 +1242,8 @@ pub mod abci_application_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -1171,7 +1268,7 @@ pub mod abci_application_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { AbciApplicationClient::new(InterceptedService::new(inner, interceptor)) } @@ -1214,8 +1311,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1236,8 +1332,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1258,8 +1353,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1283,8 +1377,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1308,8 +1401,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1330,8 +1422,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1352,8 +1443,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1377,8 +1467,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1402,8 +1491,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1429,8 +1517,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1454,8 +1541,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1481,8 +1567,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1508,8 +1593,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1538,8 +1622,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1568,8 +1651,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1595,8 +1677,7 @@ pub mod abci_application_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -1616,11 +1697,17 @@ pub mod abci_application_client { /// Generated server implementations. #[cfg(feature = "rpc")] pub mod abci_application_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with AbciApplicationServer. #[async_trait] - pub trait AbciApplication: Send + Sync + 'static { + pub trait AbciApplication: std::marker::Send + std::marker::Sync + 'static { async fn echo( &self, request: tonic::Request, @@ -1717,20 +1804,18 @@ pub mod abci_application_server { >; } #[derive(Debug)] - pub struct AbciApplicationServer { - inner: _Inner, + pub struct AbciApplicationServer { + inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - struct _Inner(Arc); - impl AbciApplicationServer { + impl AbciApplicationServer { 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(), @@ -1780,8 +1865,8 @@ pub mod abci_application_server { impl tonic::codegen::Service> for AbciApplicationServer where T: AbciApplication, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -1793,7 +1878,6 @@ pub mod abci_application_server { Poll::Ready(Ok(())) } fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); match req.uri().path() { "/tendermint.abci.ABCIApplication/Echo" => { #[allow(non_camel_case_types)] @@ -1823,7 +1907,6 @@ pub mod abci_application_server { 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 = EchoSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1868,7 +1951,6 @@ pub mod abci_application_server { 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 = FlushSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1913,7 +1995,6 @@ pub mod abci_application_server { 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 = InfoSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -1959,7 +2040,6 @@ pub mod abci_application_server { 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 = DeliverTxSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2005,7 +2085,6 @@ pub mod abci_application_server { 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 = CheckTxSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2050,7 +2129,6 @@ pub mod abci_application_server { 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 = QuerySvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2096,7 +2174,6 @@ pub mod abci_application_server { 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 = CommitSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2142,7 +2219,6 @@ pub mod abci_application_server { 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 = InitChainSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2188,7 +2264,6 @@ pub mod abci_application_server { 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 = BeginBlockSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2234,7 +2309,6 @@ pub mod abci_application_server { 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 = EndBlockSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2281,7 +2355,6 @@ pub mod abci_application_server { 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 = ListSnapshotsSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2328,7 +2401,6 @@ pub mod abci_application_server { 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 = OfferSnapshotSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2375,7 +2447,6 @@ pub mod abci_application_server { 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 = LoadSnapshotChunkSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2425,7 +2496,6 @@ pub mod abci_application_server { 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 = ApplySnapshotChunkSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2472,7 +2542,6 @@ pub mod abci_application_server { 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 = PrepareProposalSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2519,7 +2588,6 @@ pub mod abci_application_server { 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 = ProcessProposalSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) @@ -2538,20 +2606,25 @@ pub mod abci_application_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for AbciApplicationServer { + impl Clone for AbciApplicationServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -2563,17 +2636,9 @@ pub mod abci_application_server { } } } - 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 AbciApplicationServer { - const NAME: &'static str = "tendermint.abci.ABCIApplication"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "tendermint.abci.ABCIApplication"; + impl tonic::server::NamedService for AbciApplicationServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/proto/src/gen/tendermint.crypto.rs b/crates/proto/src/gen/tendermint.crypto.rs index d0c624cc9b..916eaf75f5 100644 --- a/crates/proto/src/gen/tendermint.crypto.rs +++ b/crates/proto/src/gen/tendermint.crypto.rs @@ -1,4 +1,4 @@ -#[allow(clippy::derive_partial_eq_without_eq)] +// This file is @generated by prost-build. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Proof { #[prost(int64, tag = "1")] @@ -14,10 +14,12 @@ impl ::prost::Name for Proof { const NAME: &'static str = "Proof"; const PACKAGE: &'static str = "tendermint.crypto"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.crypto.{}", Self::NAME) + "tendermint.crypto.Proof".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.crypto.Proof".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValueOp { /// Encoded in ProofOp.Key. @@ -31,10 +33,12 @@ impl ::prost::Name for ValueOp { const NAME: &'static str = "ValueOp"; const PACKAGE: &'static str = "tendermint.crypto"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.crypto.{}", Self::NAME) + "tendermint.crypto.ValueOp".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.crypto.ValueOp".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DominoOp { #[prost(string, tag = "1")] @@ -48,13 +52,15 @@ impl ::prost::Name for DominoOp { const NAME: &'static str = "DominoOp"; const PACKAGE: &'static str = "tendermint.crypto"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.crypto.{}", Self::NAME) + "tendermint.crypto.DominoOp".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.crypto.DominoOp".into() } } /// ProofOp defines an operation used for calculating Merkle root /// The data could be arbitrary format, providing nessecary data /// for example neighbouring node hash -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProofOp { #[prost(string, tag = "1")] @@ -68,11 +74,13 @@ impl ::prost::Name for ProofOp { const NAME: &'static str = "ProofOp"; const PACKAGE: &'static str = "tendermint.crypto"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.crypto.{}", Self::NAME) + "tendermint.crypto.ProofOp".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.crypto.ProofOp".into() } } /// ProofOps is Merkle proof defined by the list of ProofOps -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProofOps { #[prost(message, repeated, tag = "1")] @@ -82,11 +90,13 @@ impl ::prost::Name for ProofOps { const NAME: &'static str = "ProofOps"; const PACKAGE: &'static str = "tendermint.crypto"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.crypto.{}", Self::NAME) + "tendermint.crypto.ProofOps".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.crypto.ProofOps".into() } } /// PublicKey defines the keys available for use with Validators -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PublicKey { #[prost(oneof = "public_key::Sum", tags = "1, 2")] @@ -94,7 +104,6 @@ pub struct PublicKey { } /// Nested message and enum types in `PublicKey`. pub mod public_key { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Sum { #[prost(bytes, tag = "1")] @@ -107,6 +116,9 @@ impl ::prost::Name for PublicKey { const NAME: &'static str = "PublicKey"; const PACKAGE: &'static str = "tendermint.crypto"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.crypto.{}", Self::NAME) + "tendermint.crypto.PublicKey".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.crypto.PublicKey".into() } } diff --git a/crates/proto/src/gen/tendermint.p2p.rs b/crates/proto/src/gen/tendermint.p2p.rs index 61828675bb..f948e62121 100644 --- a/crates/proto/src/gen/tendermint.p2p.rs +++ b/crates/proto/src/gen/tendermint.p2p.rs @@ -1,4 +1,4 @@ -#[allow(clippy::derive_partial_eq_without_eq)] +// This file is @generated by prost-build. #[derive(Clone, PartialEq, ::prost::Message)] pub struct NetAddress { #[prost(string, tag = "1")] @@ -12,11 +12,13 @@ impl ::prost::Name for NetAddress { const NAME: &'static str = "NetAddress"; const PACKAGE: &'static str = "tendermint.p2p"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.p2p.{}", Self::NAME) + "tendermint.p2p.NetAddress".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.p2p.NetAddress".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct ProtocolVersion { #[prost(uint64, tag = "1")] pub p2p: u64, @@ -29,10 +31,12 @@ impl ::prost::Name for ProtocolVersion { const NAME: &'static str = "ProtocolVersion"; const PACKAGE: &'static str = "tendermint.p2p"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.p2p.{}", Self::NAME) + "tendermint.p2p.ProtocolVersion".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.p2p.ProtocolVersion".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DefaultNodeInfo { #[prost(message, optional, tag = "1")] @@ -56,10 +60,12 @@ impl ::prost::Name for DefaultNodeInfo { const NAME: &'static str = "DefaultNodeInfo"; const PACKAGE: &'static str = "tendermint.p2p"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.p2p.{}", Self::NAME) + "tendermint.p2p.DefaultNodeInfo".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.p2p.DefaultNodeInfo".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DefaultNodeInfoOther { #[prost(string, tag = "1")] @@ -71,6 +77,9 @@ impl ::prost::Name for DefaultNodeInfoOther { const NAME: &'static str = "DefaultNodeInfoOther"; const PACKAGE: &'static str = "tendermint.p2p"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.p2p.{}", Self::NAME) + "tendermint.p2p.DefaultNodeInfoOther".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.p2p.DefaultNodeInfoOther".into() } } diff --git a/crates/proto/src/gen/tendermint.types.rs b/crates/proto/src/gen/tendermint.types.rs index dd05ee65c4..0b2130371a 100644 --- a/crates/proto/src/gen/tendermint.types.rs +++ b/crates/proto/src/gen/tendermint.types.rs @@ -1,4 +1,4 @@ -#[allow(clippy::derive_partial_eq_without_eq)] +// This file is @generated by prost-build. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorSet { #[prost(message, repeated, tag = "1")] @@ -12,10 +12,12 @@ impl ::prost::Name for ValidatorSet { const NAME: &'static str = "ValidatorSet"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.ValidatorSet".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.ValidatorSet".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Validator { #[prost(bytes = "vec", tag = "1")] @@ -31,10 +33,12 @@ impl ::prost::Name for Validator { const NAME: &'static str = "Validator"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.Validator".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.Validator".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SimpleValidator { #[prost(message, optional, tag = "1")] @@ -46,11 +50,13 @@ impl ::prost::Name for SimpleValidator { const NAME: &'static str = "SimpleValidator"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.SimpleValidator".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.SimpleValidator".into() } } /// PartsetHeader -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct PartSetHeader { #[prost(uint32, tag = "1")] @@ -62,10 +68,12 @@ impl ::prost::Name for PartSetHeader { const NAME: &'static str = "PartSetHeader"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.PartSetHeader".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.PartSetHeader".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Part { #[prost(uint32, tag = "1")] @@ -79,11 +87,13 @@ impl ::prost::Name for Part { const NAME: &'static str = "Part"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.Part".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.Part".into() } } /// BlockID -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BlockId { #[prost(bytes = "vec", tag = "1")] @@ -95,11 +105,13 @@ impl ::prost::Name for BlockId { const NAME: &'static str = "BlockID"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.BlockID".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.BlockID".into() } } /// Header defines the structure of a block header. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Header { /// basic block info @@ -152,11 +164,13 @@ impl ::prost::Name for Header { const NAME: &'static str = "Header"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.Header".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.Header".into() } } /// Data contains the set of transactions included in the block -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Data { /// Txs that will be applied by state @ block.Height+1. @@ -169,12 +183,14 @@ impl ::prost::Name for Data { const NAME: &'static str = "Data"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.Data".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.Data".into() } } /// Vote represents a prevote, precommit, or commit vote from validators for /// consensus. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Vote { #[prost(enumeration = "SignedMsgType", tag = "1")] @@ -199,11 +215,13 @@ impl ::prost::Name for Vote { const NAME: &'static str = "Vote"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.Vote".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.Vote".into() } } /// Commit contains the evidence that a block was committed by a set of validators. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Commit { #[prost(int64, tag = "1")] @@ -219,11 +237,13 @@ impl ::prost::Name for Commit { const NAME: &'static str = "Commit"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.Commit".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.Commit".into() } } /// CommitSig is a part of the Vote included in a Commit. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CommitSig { #[prost(enumeration = "BlockIdFlag", tag = "1")] @@ -239,10 +259,12 @@ impl ::prost::Name for CommitSig { const NAME: &'static str = "CommitSig"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.CommitSig".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.CommitSig".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Proposal { #[prost(enumeration = "SignedMsgType", tag = "1")] @@ -264,10 +286,12 @@ impl ::prost::Name for Proposal { const NAME: &'static str = "Proposal"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.Proposal".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.Proposal".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SignedHeader { #[prost(message, optional, tag = "1")] @@ -279,10 +303,12 @@ impl ::prost::Name for SignedHeader { const NAME: &'static str = "SignedHeader"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.SignedHeader".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.SignedHeader".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct LightBlock { #[prost(message, optional, tag = "1")] @@ -294,10 +320,12 @@ impl ::prost::Name for LightBlock { const NAME: &'static str = "LightBlock"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.LightBlock".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.LightBlock".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct BlockMeta { #[prost(message, optional, tag = "1")] @@ -313,11 +341,13 @@ impl ::prost::Name for BlockMeta { const NAME: &'static str = "BlockMeta"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.BlockMeta".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.BlockMeta".into() } } /// TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct TxProof { #[prost(bytes = "vec", tag = "1")] @@ -331,7 +361,10 @@ impl ::prost::Name for TxProof { const NAME: &'static str = "TxProof"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.TxProof".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.TxProof".into() } } /// BlockIdFlag indicates which BlcokID the signature is for @@ -350,10 +383,10 @@ impl BlockIdFlag { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - BlockIdFlag::Unknown => "BLOCK_ID_FLAG_UNKNOWN", - BlockIdFlag::Absent => "BLOCK_ID_FLAG_ABSENT", - BlockIdFlag::Commit => "BLOCK_ID_FLAG_COMMIT", - BlockIdFlag::Nil => "BLOCK_ID_FLAG_NIL", + Self::Unknown => "BLOCK_ID_FLAG_UNKNOWN", + Self::Absent => "BLOCK_ID_FLAG_ABSENT", + Self::Commit => "BLOCK_ID_FLAG_COMMIT", + Self::Nil => "BLOCK_ID_FLAG_NIL", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -385,10 +418,10 @@ impl SignedMsgType { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - SignedMsgType::Unknown => "SIGNED_MSG_TYPE_UNKNOWN", - SignedMsgType::Prevote => "SIGNED_MSG_TYPE_PREVOTE", - SignedMsgType::Precommit => "SIGNED_MSG_TYPE_PRECOMMIT", - SignedMsgType::Proposal => "SIGNED_MSG_TYPE_PROPOSAL", + Self::Unknown => "SIGNED_MSG_TYPE_UNKNOWN", + Self::Prevote => "SIGNED_MSG_TYPE_PREVOTE", + Self::Precommit => "SIGNED_MSG_TYPE_PRECOMMIT", + Self::Proposal => "SIGNED_MSG_TYPE_PROPOSAL", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -402,7 +435,6 @@ impl SignedMsgType { } } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Evidence { #[prost(oneof = "evidence::Sum", tags = "1, 2")] @@ -410,7 +442,6 @@ pub struct Evidence { } /// Nested message and enum types in `Evidence`. pub mod evidence { - #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Sum { #[prost(message, tag = "1")] @@ -423,11 +454,13 @@ impl ::prost::Name for Evidence { const NAME: &'static str = "Evidence"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.Evidence".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.Evidence".into() } } /// DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DuplicateVoteEvidence { #[prost(message, optional, tag = "1")] @@ -445,11 +478,13 @@ impl ::prost::Name for DuplicateVoteEvidence { const NAME: &'static str = "DuplicateVoteEvidence"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.DuplicateVoteEvidence".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.DuplicateVoteEvidence".into() } } /// LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct LightClientAttackEvidence { #[prost(message, optional, tag = "1")] @@ -467,10 +502,12 @@ impl ::prost::Name for LightClientAttackEvidence { const NAME: &'static str = "LightClientAttackEvidence"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.LightClientAttackEvidence".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.LightClientAttackEvidence".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct EvidenceList { #[prost(message, repeated, tag = "1")] @@ -480,10 +517,12 @@ impl ::prost::Name for EvidenceList { const NAME: &'static str = "EvidenceList"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.EvidenceList".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.EvidenceList".into() } } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Block { #[prost(message, optional, tag = "1")] @@ -499,12 +538,14 @@ impl ::prost::Name for Block { const NAME: &'static str = "Block"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.Block".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.Block".into() } } /// ConsensusParams contains consensus critical parameters that determine the /// validity of blocks. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConsensusParams { #[prost(message, optional, tag = "1")] @@ -520,12 +561,14 @@ impl ::prost::Name for ConsensusParams { const NAME: &'static str = "ConsensusParams"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.ConsensusParams".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.ConsensusParams".into() } } /// BlockParams contains limits on the block size. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct BlockParams { /// Max block size, in bytes. /// Note: must be greater than 0 @@ -540,12 +583,14 @@ impl ::prost::Name for BlockParams { const NAME: &'static str = "BlockParams"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.BlockParams".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.BlockParams".into() } } /// EvidenceParams determine how we handle evidence of malfeasance. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct EvidenceParams { /// Max age of evidence, in blocks. /// @@ -570,12 +615,14 @@ impl ::prost::Name for EvidenceParams { const NAME: &'static str = "EvidenceParams"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.EvidenceParams".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.EvidenceParams".into() } } /// ValidatorParams restrict the public key types validators can use. /// NOTE: uses ABCI pubkey naming, not Amino names. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorParams { #[prost(string, repeated, tag = "1")] @@ -585,12 +632,14 @@ impl ::prost::Name for ValidatorParams { const NAME: &'static str = "ValidatorParams"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.ValidatorParams".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.ValidatorParams".into() } } /// VersionParams contains the ABCI application version. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct VersionParams { #[prost(uint64, tag = "1")] pub app: u64, @@ -599,14 +648,16 @@ impl ::prost::Name for VersionParams { const NAME: &'static str = "VersionParams"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.VersionParams".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.VersionParams".into() } } /// HashedParams is a subset of ConsensusParams. /// /// It is hashed into the Header.ConsensusHash. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct HashedParams { #[prost(int64, tag = "1")] pub block_max_bytes: i64, @@ -617,6 +668,9 @@ impl ::prost::Name for HashedParams { const NAME: &'static str = "HashedParams"; const PACKAGE: &'static str = "tendermint.types"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.types.{}", Self::NAME) + "tendermint.types.HashedParams".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.types.HashedParams".into() } } diff --git a/crates/proto/src/gen/tendermint.version.rs b/crates/proto/src/gen/tendermint.version.rs index e2028c7901..ef045e12cb 100644 --- a/crates/proto/src/gen/tendermint.version.rs +++ b/crates/proto/src/gen/tendermint.version.rs @@ -1,7 +1,7 @@ +// This file is @generated by prost-build. /// App includes the protocol and software version for the application. /// This information is included in ResponseInfo. The App.Protocol can be /// updated in ResponseEndBlock. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct App { #[prost(uint64, tag = "1")] @@ -13,14 +13,16 @@ impl ::prost::Name for App { const NAME: &'static str = "App"; const PACKAGE: &'static str = "tendermint.version"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.version.{}", Self::NAME) + "tendermint.version.App".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.version.App".into() } } /// Consensus captures the consensus rules for processing a block in the blockchain, /// including all blockchain data structures and the rules of the application's /// state transition machine. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Consensus { #[prost(uint64, tag = "1")] pub block: u64, @@ -31,6 +33,9 @@ impl ::prost::Name for Consensus { const NAME: &'static str = "Consensus"; const PACKAGE: &'static str = "tendermint.version"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("tendermint.version.{}", Self::NAME) + "tendermint.version.Consensus".into() + } + fn type_url() -> ::prost::alloc::string::String { + "/tendermint.version.Consensus".into() } } diff --git a/crates/proto/src/protobuf/tendermint_compat.rs b/crates/proto/src/protobuf/tendermint_compat.rs index 661b3012ef..47111a3fff 100644 --- a/crates/proto/src/protobuf/tendermint_compat.rs +++ b/crates/proto/src/protobuf/tendermint_compat.rs @@ -60,16 +60,10 @@ impl From for penumbra_pb::TxResult { } impl From for penumbra_pb::Tag { - fn from( - tendermint::abci::EventAttribute { - key, - value, - index: _, - }: tendermint::abci::EventAttribute, - ) -> Self { + fn from(event_attr: tendermint::abci::EventAttribute) -> Self { Self { - key: key.into_bytes(), - value: value.into_bytes(), + key: event_attr.key_bytes().into(), + value: event_attr.value_bytes().into(), // TODO(kate): this was set to false previously, but it should probably use the // index field from the tendermint object. for now, carry out a refactor and avoid // changing behavior while doing so. @@ -78,6 +72,25 @@ impl From for penumbra_pb::Tag { } } +// impl From for penumbra_pb::Tag { +// fn from( +// tendermint::abci::event::v0_37::EventAttribute { +// key, +// value, +// index: _, +// }: tendermint::abci::EventAttribute, +// ) -> Self { +// Self { +// key: key.into_bytes(), +// value: value.into_bytes(), +// // TODO(kate): this was set to false previously, but it should probably use the +// // index field from the tendermint object. for now, carry out a refactor and avoid +// // changing behavior while doing so. +// index: false, +// } +// } +// } + // === broadcast_tx_async === impl From @@ -89,6 +102,7 @@ impl From data, log, hash, + .. }: tendermint_rpc::endpoint::broadcast::tx_async::Response, ) -> Self { Self { @@ -111,6 +125,7 @@ impl From data, log, hash, + .. }: tendermint_rpc::endpoint::broadcast::tx_sync::Response, ) -> Self { Self { diff --git a/crates/test/mock-consensus/src/block.rs b/crates/test/mock-consensus/src/block.rs index 7eb45b10a6..ba390b795f 100644 --- a/crates/test/mock-consensus/src/block.rs +++ b/crates/test/mock-consensus/src/block.rs @@ -288,7 +288,7 @@ where "made block" ); // pass the current value of last_commit with this header - let block = Block::new(header.clone(), data, evidence, last_commit)?; + let block = Block::new(header.clone(), data, evidence, last_commit); // Now that the block is finalized, we can transition to the next block. // Generate a commit for the header we just made, that will be diff --git a/crates/util/auto-https/Cargo.toml b/crates/util/auto-https/Cargo.toml index 6b445cf3f9..3250622b9b 100644 --- a/crates/util/auto-https/Cargo.toml +++ b/crates/util/auto-https/Cargo.toml @@ -12,7 +12,7 @@ publish = false [dependencies] anyhow = {workspace = true} futures = {workspace = true} -rustls = "0.21" +rustls = "0.23.20" axum-server = {workspace = true, features = []} -rustls-acme = { version = "0.7", features = ["axum"] } +rustls-acme = { version = "0.12.1", features = ["axum"] } tracing = {workspace = true} diff --git a/crates/util/auto-https/src/lib.rs b/crates/util/auto-https/src/lib.rs index 50e3133558..3bce7968ec 100644 --- a/crates/util/auto-https/src/lib.rs +++ b/crates/util/auto-https/src/lib.rs @@ -45,7 +45,6 @@ pub fn axum_acceptor( // Define our server configuration, using the ACME certificate resolver. let mut rustls_config = ServerConfig::builder() - .with_safe_defaults() .with_no_client_auth() .with_cert_resolver(state.resolver()); rustls_config.alpn_protocols = self::alpn_protocols(); diff --git a/tools/proto-compiler/Cargo.lock b/tools/proto-compiler/Cargo.lock index 02560aace3..be523205bc 100644 --- a/tools/proto-compiler/Cargo.lock +++ b/tools/proto-compiler/Cargo.lock @@ -63,7 +63,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] @@ -74,9 +74,15 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.1.0" @@ -85,18 +91,17 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.6.20" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" dependencies = [ "async-trait", "axum-core", - "bitflags 1.3.2", "bytes", "futures-util", "http", "http-body", - "hyper", + "http-body-util", "itoa", "matchit", "memchr", @@ -113,17 +118,20 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.3.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", "bytes", "futures-util", "http", "http-body", + "http-body-util", "mime", + "pin-project-lite", "rustversion", + "sync_wrapper", "tower-layer", "tower-service", ] @@ -149,6 +157,12 @@ version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "bitflags" version = "1.3.2" @@ -194,9 +208,9 @@ dependencies = [ [[package]] name = "bytes" -version = "1.5.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" dependencies = [ "serde", ] @@ -231,6 +245,17 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +[[package]] +name = "cosmos-sdk-proto" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462e1f6a8e005acc8835d32d60cbd7973ed65ea2a8d8473830e675f050956427" +dependencies = [ + "prost 0.13.4", + "tendermint-proto", + "tonic", +] + [[package]] name = "cpufeatures" version = "0.2.9" @@ -289,7 +314,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -387,17 +412,17 @@ checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] name = "h2" -version = "0.3.21" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", "http", - "indexmap 1.9.3", + "indexmap 2.0.2", "slab", "tokio", "tokio-util", @@ -422,6 +447,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hex" version = "0.4.3" @@ -429,33 +460,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] -name = "home" -version = "0.5.5" +name = "http" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ - "windows-sys", + "bytes", + "fnv", + "itoa", ] [[package]] -name = "http" -version = "0.2.9" +name = "http-body" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "fnv", - "itoa", + "http", ] [[package]] -name = "http-body" -version = "0.4.5" +name = "http-body-util" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", + "futures-util", "http", + "http-body", "pin-project-lite", ] @@ -473,13 +507,12 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.27" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", "h2", "http", @@ -488,36 +521,56 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.9", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] [[package]] name = "hyper-timeout" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ "hyper", + "hyper-util", "pin-project-lite", "tokio", - "tokio-io-timeout", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", ] [[package]] name = "ibc-proto" -version = "0.40.0" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4222cfac37f21da28292db0f2673fdb8455284895891ff09979680243efb9a20" +checksum = "9b70f517162e74e2d35875b8b94bf4d1e45f2c69ef3de452dc855944455d33ca" dependencies = [ - "base64", + "base64 0.22.1", "bytes", + "cosmos-sdk-proto", "flex-error", "ics23", - "prost", + "informalsystems-pbjson", + "prost 0.13.4", "subtle-encoding", "tendermint-proto", "tonic", @@ -525,9 +578,9 @@ dependencies = [ [[package]] name = "ics23" -version = "0.11.3" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18798160736c1e368938ba6967dbcb3c7afb3256b442a5506ba5222eebb68a5a" +checksum = "73b17f1a5bd7d12ad30a21445cfa5f52fd7651cb3243ba866f9916b1ec112f12" dependencies = [ "anyhow", "blake2", @@ -535,7 +588,7 @@ dependencies = [ "bytes", "hex", "informalsystems-pbjson", - "prost", + "prost 0.13.4", "ripemd", "serde", "sha2", @@ -568,7 +621,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aa4a0980c8379295100d70854354e78df2ee1c6ca0f96ffe89afeb3140e3a3d" dependencies = [ - "base64", + "base64 0.21.4", "serde", ] @@ -581,6 +634,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -598,9 +660,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.149" +version = "0.2.168" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" +checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" [[package]] name = "linux-raw-sys" @@ -643,13 +705,13 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", "wasi", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -658,17 +720,6 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "num-traits" version = "0.2.17" @@ -701,37 +752,37 @@ checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pbjson" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1030c719b0ec2a2d25a5df729d6cff1acf3cc230bf766f4f97833591f7577b90" +checksum = "c7e6349fa080353f4a597daffd05cb81572a9c031a6d4fff7e504947496fcc68" dependencies = [ - "base64", + "base64 0.21.4", "serde", ] [[package]] name = "pbjson-build" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2580e33f2292d34be285c5bc3dba5259542b083cfad6037b6d70345f24dcb735" +checksum = "6eea3058763d6e656105d1403cb04e0a41b7bbac6362d413e7c33be0c32279c9" dependencies = [ - "heck", - "itertools", - "prost", + "heck 0.5.0", + "itertools 0.13.0", + "prost 0.13.4", "prost-types", ] [[package]] name = "pbjson-types" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18f596653ba4ac51bdecbb4ef6773bc7f56042dc13927910de1684ad3d32aa12" +checksum = "e54e5e7bfb1652f95bc361d76f3c780d8e526b134b85417e774166ee941f0887" dependencies = [ "bytes", "chrono", "pbjson", "pbjson-build", - "prost", + "prost 0.13.4", "prost-build", "serde", ] @@ -746,7 +797,7 @@ dependencies = [ "pbjson", "pbjson-build", "pbjson-types", - "prost", + "prost 0.12.3", "prost-build", "prost-types", "tempfile", @@ -786,7 +837,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] @@ -820,7 +871,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ "proc-macro2", - "syn 2.0.38", + "syn", ] [[package]] @@ -839,31 +890,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.12.3", ] [[package]] -name = "prost-build" -version = "0.12.3" +name = "prost" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", - "heck", - "itertools", + "prost-derive 0.13.4", +] + +[[package]] +name = "prost-build" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" +dependencies = [ + "heck 0.4.1", + "itertools 0.11.0", "log", "multimap", "once_cell", "petgraph", "prettyplease", - "prost", + "prost 0.13.4", "prost-types", "pulldown-cmark", "pulldown-cmark-to-cmark", "regex", - "syn 2.0.38", + "syn", "tempfile", - "which", ] [[package]] @@ -873,37 +932,50 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" dependencies = [ "anyhow", - "itertools", + "itertools 0.11.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "prost-derive" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" +dependencies = [ + "anyhow", + "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] name = "prost-types" -version = "0.12.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" +checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" dependencies = [ - "prost", + "prost 0.13.4", ] [[package]] name = "pulldown-cmark" -version = "0.9.3" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998" +checksum = "f86ba2052aebccc42cbbb3ed234b8b13ce76f75c3551a303cb2bcffcff12bb14" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "memchr", "unicase", ] [[package]] name = "pulldown-cmark-to-cmark" -version = "10.0.4" +version = "19.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0194e6e1966c23cc5fd988714f85b18d548d773e81965413555d96569931833d" +checksum = "e84a87de49d1b6c63f0998da7ade299905387ae1feae350efc98e0632637f589" dependencies = [ "pulldown-cmark", ] @@ -1010,7 +1082,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1045,7 +1117,7 @@ checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] @@ -1079,23 +1151,19 @@ dependencies = [ ] [[package]] -name = "socket2" -version = "0.4.9" +name = "smallvec" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" -dependencies = [ - "libc", - "winapi", -] +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.4" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1113,17 +1181,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.38" @@ -1137,9 +1194,9 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "0.1.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" [[package]] name = "tempfile" @@ -1151,21 +1208,18 @@ dependencies = [ "fastrand", "redox_syscall", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "tendermint-proto" -version = "0.34.0" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc728a4f9e891d71adf66af6ecaece146f9c7a11312288a3107b3e1d6979aaf" +checksum = "c81ba1b023ec00763c3bc4f4376c67c0047f185cccf95c416c7a2f16272c4cbb" dependencies = [ "bytes", "flex-error", - "num-derive", - "num-traits", - "prost", - "prost-types", + "prost 0.13.4", "serde", "serde_bytes", "subtle-encoding", @@ -1201,34 +1255,36 @@ dependencies = [ [[package]] name = "tokio" -version = "1.33.0" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ "backtrace", "bytes", "libc", "mio", "pin-project-lite", - "socket2 0.5.4", - "windows-sys", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", ] [[package]] -name = "tokio-io-timeout" -version = "1.2.0" +name = "tokio-macros" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ - "pin-project-lite", - "tokio", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -1251,23 +1307,26 @@ dependencies = [ [[package]] name = "tonic" -version = "0.10.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ "async-stream", "async-trait", "axum", - "base64", + "base64 0.22.1", "bytes", "h2", "http", "http-body", + "http-body-util", "hyper", "hyper-timeout", + "hyper-util", "percent-encoding", "pin-project", - "prost", + "prost 0.13.4", + "socket2", "tokio", "tokio-stream", "tower", @@ -1278,15 +1337,16 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.10.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889" +checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" dependencies = [ "prettyplease", "proc-macro2", "prost-build", + "prost-types", "quote", - "syn 2.0.38", + "syn", ] [[package]] @@ -1340,7 +1400,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] @@ -1401,61 +1461,52 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "which" -version = "4.4.2" +name = "windows-sys" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "either", - "home", - "once_cell", - "rustix", + "windows-targets 0.48.5", ] [[package]] -name = "winapi" -version = "0.3.9" +name = "windows-sys" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", + "windows-targets 0.52.6", ] [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.48.0" +name = "windows-targets" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows-targets", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] name = "windows-targets" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -1464,42 +1515,90 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + [[package]] name = "zeroize" version = "1.6.0" diff --git a/tools/proto-compiler/Cargo.toml b/tools/proto-compiler/Cargo.toml index 43dc1cab78..3eae29334a 100644 --- a/tools/proto-compiler/Cargo.toml +++ b/tools/proto-compiler/Cargo.toml @@ -6,13 +6,13 @@ publish = false [dependencies] anyhow = "1" -ibc-proto = { version = "0.40.0" } -ics23 = "0.11.3" -pbjson = "0.6" -pbjson-build = "0.6" -pbjson-types = "0.6" +ibc-proto = { version = "0.51.1" } +ics23 = "0.12.0" +pbjson = "0.7.0" +pbjson-build = "0.7.0" +pbjson-types = "0.7.0" prost = "0.12.3" -prost-build = "0.12.3" -prost-types = "0.12" +prost-build = "0.13.3" +prost-types = "0.13.3" tempfile = "3" -tonic-build = { version = "0.10.0", features = ["cleanup-markdown"] } +tonic-build = { version = "0.12.3", features = ["cleanup-markdown"] } diff --git a/tools/proto-compiler/src/main.rs b/tools/proto-compiler/src/main.rs index 8915c3d811..a6b29dba5e 100644 --- a/tools/proto-compiler/src/main.rs +++ b/tools/proto-compiler/src/main.rs @@ -70,7 +70,7 @@ fn main() -> anyhow::Result<()> { .emit_rerun_if_changed(false) .server_mod_attribute(".", rpc_doc_attr) .client_mod_attribute(".", rpc_doc_attr) - .compile_with_config( + .compile_protos_with_config( cnidarium_config, &["../../proto/penumbra/penumbra/cnidarium/v1/cnidarium.proto"], &["../../proto/penumbra/", "../../proto/rust-vendored/"], @@ -84,7 +84,7 @@ fn main() -> anyhow::Result<()> { // We need to feature-gate the RPCs. .server_mod_attribute(".", rpc_doc_attr) .client_mod_attribute(".", rpc_doc_attr) - .compile_with_config( + .compile_protos_with_config( config, &[ "../../proto/penumbra/penumbra/core/app/v1/app.proto", diff --git a/tools/summonerd/src/main.rs b/tools/summonerd/src/main.rs index c051af56af..8d819ffa1d 100644 --- a/tools/summonerd/src/main.rs +++ b/tools/summonerd/src/main.rs @@ -8,6 +8,7 @@ mod server; mod storage; mod web; +use anyhow::Context as _; use anyhow::Result; use ark_groth16::{ProvingKey, VerifyingKey}; use ark_serialize::CanonicalSerialize; @@ -33,7 +34,7 @@ use std::io::IsTerminal as _; use std::io::Read; use std::net::SocketAddr; use storage::Storage; -use tonic::transport::Server; +use tonic::service::Routes; use tracing::Instrument; use tracing_subscriber::{prelude::*, EnvFilter}; use url::Url; @@ -206,11 +207,13 @@ impl Opt { }; let service = CoordinatorService::new(knower, storage.clone(), queue.clone(), marker); - let grpc_server = Server::builder().add_service( + + let routes = Routes::new( CeremonyCoordinatorServiceServer::new(service) .max_encoding_message_size(max_message_size(marker)) .max_decoding_message_size(max_message_size(marker)), - ); + ) + .prepare(); let web_app = web_app( fvk.payment_address(0u32.into()).0, @@ -220,11 +223,13 @@ impl Opt { storage, ); - let router = grpc_server.into_router().merge(web_app); + let router = routes.into_axum_router().merge(web_app); tracing::info!(?bind_addr, "starting grpc and web server"); - let server_handle = - axum::Server::bind(&bind_addr).serve(router.into_make_service()); + let listener = tokio::net::TcpListener::bind(&bind_addr) + .await + .with_context(|| format!("failed to bind TCP socket addr `{bind_addr}`"))?; + let server_handle = axum::serve(listener, router); // TODO: better error reporting // We error out if a service errors, rather than keep running diff --git a/tools/summonerd/src/web.rs b/tools/summonerd/src/web.rs index a358e40fa7..c2a142f9ed 100644 --- a/tools/summonerd/src/web.rs +++ b/tools/summonerd/src/web.rs @@ -30,7 +30,7 @@ async fn serve_summoning_jpg() -> impl IntoResponse { .status(StatusCode::OK) .header("Content-Type", "image/jpeg") .header("Cache-Control", "public, max-age=3600") // Cache for 1 hour - .body(axum::body::Full::from(jpg)) + .body(axum::body::Body::from(jpg)) .unwrap() } @@ -40,7 +40,7 @@ async fn serve_css() -> impl IntoResponse { .status(StatusCode::OK) .header("Content-Type", "text/css") .header("Cache-Control", "public, max-age=3600") // Cache for 1 hour - .body(axum::body::Full::from(css)) + .body(axum::body::Body::from(css)) .unwrap() } @@ -62,7 +62,7 @@ async fn serve_woff2(filename: &str) -> impl IntoResponse { .status(StatusCode::OK) .header("Content-Type", "font/woff2") .header("Cache-Control", "public, max-age=3600") // Cache for 1 hour - .body(axum::body::Full::from(data)) + .body(axum::body::Body::from(data)) .unwrap() } From 0b4d9284752ac60ac578f59d39a88e8c38fe7b5c Mon Sep 17 00:00:00 2001 From: Richard Janis Goldschmidt Date: Mon, 16 Dec 2024 15:31:35 +0100 Subject: [PATCH 2/3] actually bump the proto compiler tool's prost --- tools/proto-compiler/Cargo.lock | 45 ++++++++------------------------- tools/proto-compiler/Cargo.toml | 2 +- 2 files changed, 12 insertions(+), 35 deletions(-) diff --git a/tools/proto-compiler/Cargo.lock b/tools/proto-compiler/Cargo.lock index be523205bc..f60a62414d 100644 --- a/tools/proto-compiler/Cargo.lock +++ b/tools/proto-compiler/Cargo.lock @@ -251,7 +251,7 @@ version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "462e1f6a8e005acc8835d32d60cbd7973ed65ea2a8d8473830e675f050956427" dependencies = [ - "prost 0.13.4", + "prost", "tendermint-proto", "tonic", ] @@ -570,7 +570,7 @@ dependencies = [ "flex-error", "ics23", "informalsystems-pbjson", - "prost 0.13.4", + "prost", "subtle-encoding", "tendermint-proto", "tonic", @@ -588,7 +588,7 @@ dependencies = [ "bytes", "hex", "informalsystems-pbjson", - "prost 0.13.4", + "prost", "ripemd", "serde", "sha2", @@ -768,7 +768,7 @@ checksum = "6eea3058763d6e656105d1403cb04e0a41b7bbac6362d413e7c33be0c32279c9" dependencies = [ "heck 0.5.0", "itertools 0.13.0", - "prost 0.13.4", + "prost", "prost-types", ] @@ -782,7 +782,7 @@ dependencies = [ "chrono", "pbjson", "pbjson-build", - "prost 0.13.4", + "prost", "prost-build", "serde", ] @@ -797,7 +797,7 @@ dependencies = [ "pbjson", "pbjson-build", "pbjson-types", - "prost 0.12.3", + "prost", "prost-build", "prost-types", "tempfile", @@ -883,16 +883,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "prost" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" -dependencies = [ - "bytes", - "prost-derive 0.12.3", -] - [[package]] name = "prost" version = "0.13.4" @@ -900,7 +890,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", - "prost-derive 0.13.4", + "prost-derive", ] [[package]] @@ -916,7 +906,7 @@ dependencies = [ "once_cell", "petgraph", "prettyplease", - "prost 0.13.4", + "prost", "prost-types", "pulldown-cmark", "pulldown-cmark-to-cmark", @@ -925,19 +915,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "prost-derive" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" -dependencies = [ - "anyhow", - "itertools 0.11.0", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "prost-derive" version = "0.13.4" @@ -957,7 +934,7 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" dependencies = [ - "prost 0.13.4", + "prost", ] [[package]] @@ -1219,7 +1196,7 @@ checksum = "c81ba1b023ec00763c3bc4f4376c67c0047f185cccf95c416c7a2f16272c4cbb" dependencies = [ "bytes", "flex-error", - "prost 0.13.4", + "prost", "serde", "serde_bytes", "subtle-encoding", @@ -1325,7 +1302,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost 0.13.4", + "prost", "socket2", "tokio", "tokio-stream", diff --git a/tools/proto-compiler/Cargo.toml b/tools/proto-compiler/Cargo.toml index 3eae29334a..de3295b4a0 100644 --- a/tools/proto-compiler/Cargo.toml +++ b/tools/proto-compiler/Cargo.toml @@ -11,7 +11,7 @@ ics23 = "0.12.0" pbjson = "0.7.0" pbjson-build = "0.7.0" pbjson-types = "0.7.0" -prost = "0.12.3" +prost = "0.13.3" prost-build = "0.13.3" prost-types = "0.13.3" tempfile = "3" From dda5aa25696cd0df12d89d9dabfc50500ee44256 Mon Sep 17 00:00:00 2001 From: Richard Janis Goldschmidt Date: Tue, 17 Dec 2024 13:49:23 +0100 Subject: [PATCH 3/3] inject span data using tower http --- crates/bin/pd/Cargo.toml | 2 +- crates/bin/pd/src/main.rs | 25 ++++++++++++++++++++++--- crates/core/app/src/rpc.rs | 23 ----------------------- crates/util/tower-trace/src/lib.rs | 2 +- 4 files changed, 24 insertions(+), 28 deletions(-) diff --git a/crates/bin/pd/Cargo.toml b/crates/bin/pd/Cargo.toml index e168982aa7..8831af8da6 100644 --- a/crates/bin/pd/Cargo.toml +++ b/crates/bin/pd/Cargo.toml @@ -110,7 +110,7 @@ tonic-web = { workspace = true } tower = { workspace = true, features = ["full"] } tower-abci = "0.18" tower-actor = "0.1.0" -tower-http = { workspace = true, features = ["cors"] } +tower-http = { workspace = true, features = ["cors", "trace"] } tower-service = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true, features = ["env-filter", "ansi"] } diff --git a/crates/bin/pd/src/main.rs b/crates/bin/pd/src/main.rs index 1778462062..ce1df974c8 100644 --- a/crates/bin/pd/src/main.rs +++ b/crates/bin/pd/src/main.rs @@ -21,10 +21,13 @@ use pd::{ }; use penumbra_app::app_version::check_and_update_app_version; use penumbra_app::{APP_VERSION, SUBSTORE_PREFIXES}; +use penumbra_tower_trace::remote_addr; use rand::Rng; use rand_core::OsRng; use tendermint_config::net::Address as TendermintAddress; +use tower::ServiceBuilder; use tower_http::cors::CorsLayer; +use tower_http::trace::TraceLayer; use tracing::Instrument as _; use tracing_subscriber::{prelude::*, EnvFilter}; use url::Url; @@ -130,8 +133,18 @@ async fn main() -> anyhow::Result<()> { let tm_proxy = penumbra_tendermint_proxy::TendermintProxy::new(cometbft_addr); - let grpc_routes = penumbra_app::rpc::routes(&storage, tm_proxy, enable_expensive_rpc)?; - // let grpc_server = penumbra_app::rpc::router(&storage, tm_proxy, enable_expensive_rpc)?; + let grpc_routes = penumbra_app::rpc::routes(&storage, tm_proxy, enable_expensive_rpc)? + .into_axum_router() + .layer( + ServiceBuilder::new().layer(TraceLayer::new_for_grpc().make_span_with( + |req: &http::Request<_>| match remote_addr(req) { + Some(remote_addr) => { + tracing::error_span!("grpc", ?remote_addr) + } + None => tracing::error_span!("grpc"), + }, + )), + ); // Create Axum routes for the frontend app. let frontend = pd::zipserve::router("/app/", pd::MINIFRONT_ARCHIVE_BYTES); @@ -139,7 +152,6 @@ async fn main() -> anyhow::Result<()> { // Now we drop down a layer of abstraction, from tonic to axum, and merge handlers. let router = grpc_routes - .into_axum_router() .merge(frontend) .merge(node_status) // Set rather permissive CORS headers for pd's gRPC: the service @@ -152,6 +164,13 @@ async fn main() -> anyhow::Result<()> { // Now start the GRPC server, initializing an ACME client to use as a certificate // resolver if auto-https has been enabled. if auto-https is not enabled, we will // instead spawn a future that will never return. + + // TODO(janis): Is `axum_server::bind` sufficient to accept http1 (for grpc-web) and + // http2 (for grpc) requests? + // + // See also this (about axum::serve, suggesting that it just works out of the box; does that + // apply to axum_server::bind as well?) + // https://github.com/tokio-rs/axum/blob/c596deafe48ed608775e312eef7d12ddbb0fd424/examples/websockets-http2/src/main.rs#L57-L59 let grpc_server = axum_server::bind(grpc_bind); let (grpc_server, acme_worker) = match grpc_auto_https { Some(domain) => { diff --git a/crates/core/app/src/rpc.rs b/crates/core/app/src/rpc.rs index 310390f3dc..ee90110f4c 100644 --- a/crates/core/app/src/rpc.rs +++ b/crates/core/app/src/rpc.rs @@ -65,29 +65,6 @@ pub fn routes( ) -> anyhow::Result { let ibc = penumbra_ibc::component::rpc::IbcQuery::::new(storage.clone()); - // TODO(janis): upgrading to tonic 0.12 meant that the batteries included server could no - // longer be used. So we now need to configure this on the axum/hyper server directly. - // What can be done? Instead of `trace_fn` one could make use of tower-http's - // TraceLayer. - // - // HTTP1 and HTTP2 now need to be configured at a higher level - but if we make use - // of `axum::serve`, then they seem to both be activated? - // See also this: - // https://github.com/tokio-rs/axum/blob/c596deafe48ed608775e312eef7d12ddbb0fd424/examples/websockets-http2/src/main.rs#L57-L59 - - // let grpc_server = tonic::transport::server::Server::builder() - // .trace_fn(|req| match remote_addr(req) { - // Some(remote_addr) => { - // tracing::error_span!("grpc", ?remote_addr) - // } - // None => tracing::error_span!("grpc"), - // }) - // // Allow HTTP/1, which will be used by grpc-web connections. - // // This is particularly important when running locally, as gRPC - // // typically uses HTTP/2, which requires HTTPS. Accepting HTTP/2 - // // allows local applications such as web browsers to talk to pd. - // .accept_http1(true) - let mut builder = Routes::builder(); builder // As part of #2932, we are disabling all timeouts until we circle back to our diff --git a/crates/util/tower-trace/src/lib.rs b/crates/util/tower-trace/src/lib.rs index 5e60baf249..0992a0f28b 100644 --- a/crates/util/tower-trace/src/lib.rs +++ b/crates/util/tower-trace/src/lib.rs @@ -11,7 +11,7 @@ use std::net::SocketAddr; // request level, but the hook available to do that gives us an http::Request // rather than a tonic::Request, so the tonic::Request::remote_addr method isn't // available. -pub fn remote_addr(req: &http::Request<()>) -> Option { +pub fn remote_addr(req: &http::Request) -> Option { use tonic::transport::server::TcpConnectInfo; // NOTE: needs to also check TlsConnectInfo if we use TLS req.extensions()