From 3bb269cff553e02c77bf6e033b117b9b21bb490c Mon Sep 17 00:00:00 2001 From: Henry de Valence Date: Sat, 30 Dec 2023 12:13:16 -0500 Subject: [PATCH] Correct naming to "Community Pool" (#3547) * Correct naming to "Community Pool" The functionality is directly copied from the Cosmos SDK's community pool, and naming it as such is important to correctly convey expectations about what it is. * fixup pcli tx proposal * fixup cp fvk --- Cargo.lock | 84 +- Cargo.toml | 2 +- crates/bench/Cargo.toml | 31 +- crates/bin/pcli/Cargo.toml | 40 +- crates/bin/pcli/src/command/query.rs | 18 +- .../query/{dao.rs => community_pool.rs} | 18 +- crates/bin/pcli/src/command/tx.rs | 10 +- crates/bin/pcli/src/command/tx/proposal.rs | 14 +- crates/bin/pcli/src/command/validator.rs | 2 +- crates/bin/pcli/src/command/view/balance.rs | 2 +- crates/bin/pcli/src/command/view/tx.rs | 12 +- crates/core/app/Cargo.toml | 2 +- crates/core/app/src/action_handler/actions.rs | 18 +- .../app/src/action_handler/actions/submit.rs | 88 +- crates/core/app/src/app/mod.rs | 61 +- .../src/{dao_ext.rs => community_pool_ext.rs} | 22 +- crates/core/app/src/genesis/app_state.rs | 14 +- crates/core/app/src/lib.rs | 4 +- crates/core/app/src/params.rs | 12 +- crates/core/app/src/params/change.rs | 22 +- .../{dao => community-pool}/Cargo.toml | 2 +- .../component/community-pool/src/action.rs | 7 + .../src/action/community_pool_deposit.rs} | 31 +- .../src/action/community_pool_output.rs} | 26 +- .../src/action/community_pool_spend.rs} | 26 +- .../component/community-pool/src/component.rs | 8 + .../src/component/action_handler.rs | 3 + .../action_handler/community_pool_deposit.rs} | 10 +- .../action_handler/community_pool_output.rs} | 16 +- .../action_handler/community_pool_spend.rs} | 12 +- .../community-pool/src/component/state_key.rs | 18 + .../src/component/view.rs | 38 +- .../component/community-pool/src/event.rs | 5 + .../{dao => community-pool}/src/genesis.rs | 16 +- .../{dao => community-pool}/src/lib.rs | 2 +- .../component/community-pool/src/params.rs | 43 + .../core/component/compact-block/Cargo.toml | 2 +- crates/core/component/dao/src/action.rs | 7 - crates/core/component/dao/src/component.rs | 8 - .../dao/src/component/action_handler.rs | 3 - .../component/dao/src/component/state_key.rs | 18 - crates/core/component/dao/src/event.rs | 5 - crates/core/component/dao/src/params.rs | 40 - crates/core/component/governance/Cargo.toml | 2 +- .../governance/src/component/view.rs | 13 +- .../core/component/governance/src/proposal.rs | 76 +- .../component/governance/src/state_key.rs | 17 +- crates/core/component/sct/src/source.rs | 10 +- crates/core/component/stake/Cargo.toml | 4 +- crates/core/component/stake/src/component.rs | 8 +- .../component/stake/src/funding_stream.rs | 26 +- crates/core/component/stake/src/validator.rs | 17 +- crates/core/transaction/Cargo.toml | 2 +- crates/core/transaction/src/action.rs | 54 +- crates/core/transaction/src/gas.rs | 26 +- crates/core/transaction/src/is_action.rs | 16 +- crates/core/transaction/src/plan.rs | 14 +- crates/core/transaction/src/plan/action.rs | 58 +- crates/core/transaction/src/transaction.rs | 20 +- .../core/transaction/src/view/action_view.rs | 26 +- crates/crypto/proof-setup/Cargo.toml | 17 +- .../src/gen/penumbra.core.app.v1alpha1.rs | 207 +-- .../gen/penumbra.core.app.v1alpha1.serde.rs | 52 +- ...core.component.community_pool.v1alpha1.rs} | 156 +- ...omponent.community_pool.v1alpha1.serde.rs} | 106 +- ...mbra.core.component.governance.v1alpha1.rs | 580 +++---- ...ore.component.governance.v1alpha1.serde.rs | 116 +- .../penumbra.core.component.sct.v1alpha1.rs | 10 +- ...umbra.core.component.sct.v1alpha1.serde.rs | 34 +- .../penumbra.core.component.stake.v1alpha1.rs | 8 +- ...bra.core.component.stake.v1alpha1.serde.rs | 34 +- .../gen/penumbra.core.transaction.v1alpha1.rs | 198 +-- ...enumbra.core.transaction.v1alpha1.serde.rs | 162 +- .../proto/src/gen/proto_descriptor.bin.no_lfs | Bin 339237 -> 340071 bytes crates/proto/src/lib.rs | 6 +- crates/view/Cargo.toml | 2 +- crates/view/src/planner.rs | 10 +- crates/view/src/storage.rs | 25 +- crates/view/src/storage/schema.sql | 2 +- deployments/scripts/rust-docs | 2 +- docs/guide/src/pcli/governance.md | 94 +- docs/guide/src/pcli/transaction.md | 3 +- docs/guide/src/pd/validator.md | 20 +- docs/protocol/src/governance.md | 28 +- docs/rustdoc/index.html | 2 +- .../gen/penumbra/core/app/v1alpha1/app.pb.go | 154 +- .../v1alpha1/community_pool.pb.go | 422 +++++ .../core/component/dao/v1alpha1/dao.pb.go | 406 ----- .../governance/v1alpha1/governance.pb.go | 1497 +++++++++-------- .../core/component/sct/v1alpha1/sct.pb.go | 188 ++- .../core/component/stake/v1alpha1/stake.pb.go | 795 ++++----- .../transaction/v1alpha1/transaction.pb.go | 1209 ++++++------- .../penumbra/core/app/v1alpha1/app.proto | 10 +- .../v1alpha1/community_pool.proto | 35 + .../core/component/dao/v1alpha1/dao.proto | 35 - .../governance/v1alpha1/governance.proto | 28 +- .../core/component/sct/v1alpha1/sct.proto | 6 +- .../core/component/stake/v1alpha1/stake.proto | 4 +- .../transaction/v1alpha1/transaction.proto | 24 +- tools/parameter-setup/Cargo.toml | 16 +- tools/proto-compiler/src/main.rs | 2 +- 101 files changed, 3876 insertions(+), 4040 deletions(-) rename crates/bin/pcli/src/command/query/{dao.rs => community_pool.rs} (72%) rename crates/core/app/src/{dao_ext.rs => community_pool_ext.rs} (62%) rename crates/core/component/{dao => community-pool}/Cargo.toml (97%) create mode 100644 crates/core/component/community-pool/src/action.rs rename crates/core/component/{dao/src/action/dao_deposit.rs => community-pool/src/action/community_pool_deposit.rs} (52%) rename crates/core/component/{dao/src/action/dao_output.rs => community-pool/src/action/community_pool_output.rs} (62%) rename crates/core/component/{dao/src/action/dao_spend.rs => community-pool/src/action/community_pool_spend.rs} (55%) create mode 100644 crates/core/component/community-pool/src/component.rs create mode 100644 crates/core/component/community-pool/src/component/action_handler.rs rename crates/core/component/{dao/src/component/action_handler/dao_deposit.rs => community-pool/src/component/action_handler/community_pool_deposit.rs} (63%) rename crates/core/component/{dao/src/component/action_handler/dao_output.rs => community-pool/src/component/action_handler/community_pool_output.rs} (54%) rename crates/core/component/{dao/src/component/action_handler/dao_spend.rs => community-pool/src/component/action_handler/community_pool_spend.rs} (59%) create mode 100644 crates/core/component/community-pool/src/component/state_key.rs rename crates/core/component/{dao => community-pool}/src/component/view.rs (60%) create mode 100644 crates/core/component/community-pool/src/event.rs rename crates/core/component/{dao => community-pool}/src/genesis.rs (55%) rename crates/core/component/{dao => community-pool}/src/lib.rs (82%) create mode 100644 crates/core/component/community-pool/src/params.rs delete mode 100644 crates/core/component/dao/src/action.rs delete mode 100644 crates/core/component/dao/src/component.rs delete mode 100644 crates/core/component/dao/src/component/action_handler.rs delete mode 100644 crates/core/component/dao/src/component/state_key.rs delete mode 100644 crates/core/component/dao/src/event.rs delete mode 100644 crates/core/component/dao/src/params.rs rename crates/proto/src/gen/{penumbra.core.component.dao.v1alpha1.rs => penumbra.core.component.community_pool.v1alpha1.rs} (72%) rename crates/proto/src/gen/{penumbra.core.component.dao.v1alpha1.serde.rs => penumbra.core.component.community_pool.v1alpha1.serde.rs} (77%) create mode 100644 proto/go/gen/penumbra/core/component/community_pool/v1alpha1/community_pool.pb.go delete mode 100644 proto/go/gen/penumbra/core/component/dao/v1alpha1/dao.pb.go create mode 100644 proto/penumbra/penumbra/core/component/community_pool/v1alpha1/community_pool.proto delete mode 100644 proto/penumbra/penumbra/core/component/dao/v1alpha1/dao.proto diff --git a/Cargo.lock b/Cargo.lock index c1e3877a67..c0ab72010c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4663,9 +4663,9 @@ dependencies = [ "penumbra-app", "penumbra-asset", "penumbra-chain", + "penumbra-community-pool", "penumbra-compact-block", "penumbra-custody", - "penumbra-dao", "penumbra-dex", "penumbra-fee", "penumbra-governance", @@ -4923,8 +4923,8 @@ dependencies = [ "parking_lot 0.12.1", "penumbra-asset", "penumbra-chain", + "penumbra-community-pool", "penumbra-compact-block", - "penumbra-dao", "penumbra-dex", "penumbra-distributions", "penumbra-effecthash", @@ -5029,7 +5029,7 @@ dependencies = [ "num-bigint", "once_cell", "penumbra-asset", - "penumbra-dao", + "penumbra-community-pool", "penumbra-dex", "penumbra-fee", "penumbra-governance", @@ -5080,6 +5080,39 @@ dependencies = [ "tracing", ] +[[package]] +name = "penumbra-community-pool" +version = "0.64.1" +dependencies = [ + "anyhow", + "ark-ff", + "async-trait", + "base64 0.20.0", + "blake2b_simd 0.5.11", + "cnidarium", + "cnidarium-component", + "futures", + "hex", + "metrics", + "once_cell", + "pbjson-types", + "penumbra-asset", + "penumbra-chain", + "penumbra-effecthash", + "penumbra-keys", + "penumbra-num", + "penumbra-proto", + "penumbra-sct", + "penumbra-shielded-pool", + "prost", + "serde", + "sha2 0.10.8", + "tendermint", + "tendermint-light-client-verifier", + "tokio", + "tracing", +] + [[package]] name = "penumbra-compact-block" version = "0.64.1" @@ -5096,7 +5129,7 @@ dependencies = [ "im", "metrics", "penumbra-chain", - "penumbra-dao", + "penumbra-community-pool", "penumbra-dex", "penumbra-fee", "penumbra-governance", @@ -5151,39 +5184,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "penumbra-dao" -version = "0.64.1" -dependencies = [ - "anyhow", - "ark-ff", - "async-trait", - "base64 0.20.0", - "blake2b_simd 0.5.11", - "cnidarium", - "cnidarium-component", - "futures", - "hex", - "metrics", - "once_cell", - "pbjson-types", - "penumbra-asset", - "penumbra-chain", - "penumbra-effecthash", - "penumbra-keys", - "penumbra-num", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "prost", - "serde", - "sha2 0.10.8", - "tendermint", - "tendermint-light-client-verifier", - "tokio", - "tracing", -] - [[package]] name = "penumbra-dex" version = "0.64.1" @@ -5341,7 +5341,7 @@ dependencies = [ "pbjson-types", "penumbra-asset", "penumbra-chain", - "penumbra-dao", + "penumbra-community-pool", "penumbra-distributions", "penumbra-effecthash", "penumbra-fee", @@ -5569,7 +5569,7 @@ dependencies = [ "blake2b_simd 0.5.11", "criterion 0.4.0", "decaf377 0.5.0", - "penumbra-dao", + "penumbra-community-pool", "penumbra-dex", "penumbra-governance", "penumbra-proof-params", @@ -5722,7 +5722,7 @@ dependencies = [ "once_cell", "penumbra-asset", "penumbra-chain", - "penumbra-dao", + "penumbra-community-pool", "penumbra-distributions", "penumbra-effecthash", "penumbra-keys", @@ -5900,7 +5900,7 @@ dependencies = [ "pbjson-types", "penumbra-asset", "penumbra-chain", - "penumbra-dao", + "penumbra-community-pool", "penumbra-dex", "penumbra-effecthash", "penumbra-fee", @@ -5953,8 +5953,8 @@ dependencies = [ "penumbra-app", "penumbra-asset", "penumbra-chain", + "penumbra-community-pool", "penumbra-compact-block", - "penumbra-dao", "penumbra-dex", "penumbra-distributions", "penumbra-fee", diff --git a/Cargo.toml b/Cargo.toml index 8ea6fb659e..1d0fa843e9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,7 @@ members = [ "crates/core/component/shielded-pool", "crates/core/component/governance", "crates/core/component/ibc", - "crates/core/component/dao", + "crates/core/component/community-pool", "crates/core/component/dex", "crates/core/component/sct", "crates/core/component/fee", diff --git a/crates/bench/Cargo.toml b/crates/bench/Cargo.toml index 52d113d12a..526119caa1 100644 --- a/crates/bench/Cargo.toml +++ b/crates/bench/Cargo.toml @@ -16,8 +16,8 @@ decaf377 = { version = "0.5", features = ["r1cs"] } # Crates.io deps ark-ec = "0.4.2" -ark-ff = {version = "0.4", default-features = false} -ark-std = {version = "0.4", default-features = false} +ark-ff = { version = "0.4", default-features = false } +ark-std = { version = "0.4", default-features = false } ark-serialize = "0.4" serde = { version = "1", features = ["derive"] } once_cell = "1.8" @@ -26,9 +26,9 @@ rand = "0.8" # only needed because ark-ff doesn't display correctly num-bigint = "0.4" tracing = "0.1" -ark-groth16 = {version = "0.4", default-features = false} +ark-groth16 = { version = "0.4", default-features = false } ark-snark = "0.4" -ark-r1cs-std = {version = "0.4", default-features = false} +ark-r1cs-std = { version = "0.4", default-features = false } ark-relations = "0.4" sha2 = "0.10.1" bech32 = "0.8.1" @@ -37,7 +37,7 @@ bech32 = "0.8.1" penumbra-tct = { path = "../crypto/tct/", features = ["r1cs"] } criterion = { version = "0.4", features = ["html_reports"] } penumbra-dex = { path = "../core/component/dex/" } -penumbra-dao = { path = "../core/component/dao/" } +penumbra-community-pool = { path = "../core/component/community-pool/" } penumbra-stake = { path = "../core/component/stake/" } penumbra-shielded-pool = { path = "../core/component/shielded-pool/" } penumbra-governance = { path = "../core/component/governance/" } @@ -52,16 +52,25 @@ penumbra-proof-params = { path = "../crypto/proof-params", features = [ ] } [build-dependencies] -regex = {version = "1", optional=true } -reqwest = {version ="0.11.14", optional=true, features = ["blocking", "json"] } -serde_json = {version = "1", optional = true} -sha2 = {version = "0.10.6", optional=true} -hex = {version = "0.4.3", optional=true} +regex = { version = "1", optional = true } +reqwest = { version = "0.11.14", optional = true, features = [ + "blocking", + "json", +] } +serde_json = { version = "1", optional = true } +sha2 = { version = "0.10.6", optional = true } +hex = { version = "0.4.3", optional = true } anyhow = "1" [features] download-proving-keys = ["regex", "reqwest", "serde_json", "sha2", "hex"] -parallel = ["ark-ff/parallel", "decaf377/parallel", "ark-groth16/parallel", "ark-std/parallel", "ark-r1cs-std/parallel"] +parallel = [ + "ark-ff/parallel", + "decaf377/parallel", + "ark-groth16/parallel", + "ark-std/parallel", + "ark-r1cs-std/parallel", +] [[bench]] name = "nullifier_derivation" diff --git a/crates/bin/pcli/Cargo.toml b/crates/bin/pcli/Cargo.toml index 01e385b30b..0ea1b68a8f 100644 --- a/crates/bin/pcli/Cargo.toml +++ b/crates/bin/pcli/Cargo.toml @@ -30,27 +30,27 @@ parallel = [ [dependencies] # Workspace dependencies -penumbra-proto = { path = "../../proto", features = ["rpc"] } -penumbra-tct = { path = "../../crypto/tct" } -penumbra-num = { path = "../../core/num", default-features=false } -penumbra-asset = { path = "../../core/asset", default-features=false } -penumbra-keys = { path = "../../core/keys", default-features=false } -penumbra-chain = { path = "../../core/component/chain", default-features = false } +penumbra-proto = { path = "../../proto", features = ["rpc"] } +penumbra-tct = { path = "../../crypto/tct" } +penumbra-num = { path = "../../core/num", default-features = false } +penumbra-asset = { path = "../../core/asset", default-features = false } +penumbra-keys = { path = "../../core/keys", default-features = false } +penumbra-chain = { path = "../../core/component/chain", default-features = false } penumbra-shielded-pool = { path = "../../core/component/shielded-pool", default-features = false } -penumbra-governance = { path = "../../core/component/governance", default-features = false } -penumbra-stake = { path = "../../core/component/stake", default-features = false } -penumbra-sct = { path = "../../core/component/sct", default-features = false } -penumbra-fee = { path = "../../core/component/fee", default-features = false } -penumbra-dex = { path = "../../core/component/dex", default-features = false } -penumbra-dao = { path = "../../core/component/dao", default-features = false } -penumbra-ibc = { path = "../../core/component/ibc", default-features = false } +penumbra-governance = { path = "../../core/component/governance", default-features = false } +penumbra-stake = { path = "../../core/component/stake", default-features = false } +penumbra-sct = { path = "../../core/component/sct", default-features = false } +penumbra-fee = { path = "../../core/component/fee", default-features = false } +penumbra-dex = { path = "../../core/component/dex", default-features = false } +penumbra-community-pool = { path = "../../core/component/community-pool", default-features = false } +penumbra-ibc = { path = "../../core/component/ibc", default-features = false } penumbra-compact-block = { path = "../../core/component/compact-block", default-features = false } -penumbra-transaction = { path = "../../core/transaction", features = ["clap"] } -penumbra-proof-setup = { path = "../../crypto/proof-setup" } -penumbra-app = { path = "../../core/app" } -penumbra-wallet = { path = "../../wallet" } -penumbra-custody = { path = "../../custody" } -penumbra-view = { path = "../../view" } +penumbra-transaction = { path = "../../core/transaction", features = ["clap"] } +penumbra-proof-setup = { path = "../../crypto/proof-setup" } +penumbra-app = { path = "../../core/app" } +penumbra-wallet = { path = "../../wallet" } +penumbra-custody = { path = "../../custody" } +penumbra-view = { path = "../../view" } # Penumbra dependencies decaf377 = { version = "0.5" } @@ -111,7 +111,7 @@ assert_cmd = "2.0" predicates = "2.1" tempfile = "3.3.0" regex = "1.6.0" -penumbra-governance = { path = "../../core/component/governance", default-features = false } +penumbra-governance = { path = "../../core/component/governance", default-features = false } penumbra-proof-params = { path = "../../crypto/proof-params", features = [ "bundled-proving-keys", "download-proving-keys", diff --git a/crates/bin/pcli/src/command/query.rs b/crates/bin/pcli/src/command/query.rs index 974a4592a9..49c6a6e835 100644 --- a/crates/bin/pcli/src/command/query.rs +++ b/crates/bin/pcli/src/command/query.rs @@ -10,8 +10,8 @@ mod dex; use dex::DexCmd; mod governance; use governance::GovernanceCmd; -mod dao; -use dao::DaoCmd; +mod community_pool; +use community_pool::CommunityPoolCmd; mod validator; pub(super) use validator::ValidatorCmd; mod ibc_query; @@ -52,9 +52,9 @@ pub enum QueryCmd { /// Queries information about governance proposals. #[clap(subcommand)] Governance(GovernanceCmd), - /// Queries information about the DAO. + /// Queries information about the Community Pool. #[clap(subcommand)] - Dao(DaoCmd), + CommunityPool(CommunityPoolCmd), /// Queries information about the decentralized exchange. #[clap(subcommand)] Dex(DexCmd), @@ -107,8 +107,8 @@ impl QueryCmd { return governance.exec(app).await; } - if let QueryCmd::Dao(dao) = self { - return dao.exec(app).await; + if let QueryCmd::CommunityPool(cp) = self { + return cp.exec(app).await; } if let QueryCmd::Ibc(ibc) = self { @@ -121,7 +121,7 @@ impl QueryCmd { | QueryCmd::Validator(_) | QueryCmd::Dex(_) | QueryCmd::Governance(_) - | QueryCmd::Dao(_) + | QueryCmd::CommunityPool(_) | QueryCmd::Watch { .. } | QueryCmd::Ibc(_) => { unreachable!("query handled in guard"); @@ -153,7 +153,7 @@ impl QueryCmd { pub fn offline(&self) -> bool { match self { - QueryCmd::Dex { .. } | QueryCmd::Dao { .. } => false, + QueryCmd::Dex { .. } | QueryCmd::CommunityPool { .. } => false, QueryCmd::Tx { .. } | QueryCmd::Chain { .. } | QueryCmd::Validator { .. } @@ -176,7 +176,7 @@ impl QueryCmd { | QueryCmd::Validator { .. } | QueryCmd::Dex { .. } | QueryCmd::Governance { .. } - | QueryCmd::Dao { .. } + | QueryCmd::CommunityPool { .. } | QueryCmd::Watch { .. } | QueryCmd::Ibc(_) => { unreachable!("query is special cased") diff --git a/crates/bin/pcli/src/command/query/dao.rs b/crates/bin/pcli/src/command/query/community_pool.rs similarity index 72% rename from crates/bin/pcli/src/command/query/dao.rs rename to crates/bin/pcli/src/command/query/community_pool.rs index 8605165a07..3846046306 100644 --- a/crates/bin/pcli/src/command/query/dao.rs +++ b/crates/bin/pcli/src/command/query/community_pool.rs @@ -3,25 +3,25 @@ use anyhow::{Context, Result}; use futures::TryStreamExt; use penumbra_asset::Value; use penumbra_proto::{ - core::component::dao::v1alpha1::DaoAssetBalancesRequest, - penumbra::core::component::dao::v1alpha1::query_service_client::QueryServiceClient as DaoQueryServiceClient, + core::component::community_pool::v1alpha1::CommunityPoolAssetBalancesRequest, + penumbra::core::component::community_pool::v1alpha1::query_service_client::QueryServiceClient as CommunityPoolQueryServiceClient, }; use penumbra_view::ViewClient; use std::io::{stdout, Write}; #[derive(Debug, clap::Subcommand)] -pub enum DaoCmd { - /// Get the balance in the DAO, or the balance of a specific asset. +pub enum CommunityPoolCmd { + /// Get the balance in the Community Pool, or the balance of a specific asset. Balance { /// Get only the balance of the specified asset. asset: Option, }, } -impl DaoCmd { +impl CommunityPoolCmd { pub async fn exec(&self, app: &mut App) -> Result<()> { match self { - DaoCmd::Balance { asset } => self.print_balance(app, asset).await, + CommunityPoolCmd::Balance { asset } => self.print_balance(app, asset).await, } } @@ -37,10 +37,10 @@ impl DaoCmd { } }); - let mut client = DaoQueryServiceClient::new(app.pd_channel().await?); + let mut client = CommunityPoolQueryServiceClient::new(app.pd_channel().await?); let chain_id = app.view().app_params().await?.chain_params.chain_id; let balances = client - .dao_asset_balances(DaoAssetBalancesRequest { + .community_pool_asset_balances(CommunityPoolAssetBalancesRequest { chain_id, asset_ids: asset_id.map_or_else(std::vec::Vec::new, |id| vec![id.into()]), }) @@ -48,7 +48,7 @@ impl DaoCmd { .into_inner() .try_collect::>() .await - .context("cannot process dao balance data")?; + .context("cannot process Community Pool balance data")?; let asset_cache = app.view().assets().await?; let mut writer = stdout(); diff --git a/crates/bin/pcli/src/command/tx.rs b/crates/bin/pcli/src/command/tx.rs index be3eb1a37b..262ba775c3 100644 --- a/crates/bin/pcli/src/command/tx.rs +++ b/crates/bin/pcli/src/command/tx.rs @@ -129,9 +129,9 @@ pub enum TxCmd { /// Submit or withdraw a governance proposal. #[clap(display_order = 500, subcommand)] Proposal(ProposalCmd), - /// Deposit funds into the DAO. + /// Deposit funds into the Community Pool. #[clap(display_order = 600)] - DaoDeposit { + CommunityPoolDeposit { /// The amounts to send, written as typed values 1.87penumbra, 12cubes, etc. values: Vec, /// Only spend funds originally received by the given account. @@ -240,7 +240,7 @@ impl TxCmd { TxCmd::UndelegateClaim { .. } => false, TxCmd::Vote { .. } => false, TxCmd::Proposal(proposal_cmd) => proposal_cmd.offline(), - TxCmd::DaoDeposit { .. } => false, + TxCmd::CommunityPoolDeposit { .. } => false, TxCmd::Position(lp_cmd) => lp_cmd.offline(), TxCmd::Withdraw { .. } => false, } @@ -303,7 +303,7 @@ impl TxCmd { .context("can't build send transaction")?; app.build_and_submit_transaction(plan).await?; } - TxCmd::DaoDeposit { values, source } => { + TxCmd::CommunityPoolDeposit { values, source } => { let values = values .iter() .map(|v| v.parse()) @@ -312,7 +312,7 @@ impl TxCmd { let mut planner = Planner::new(OsRng); planner.set_gas_prices(gas_prices); for value in values { - planner.dao_deposit(value); + planner.community_pool_deposit(value); } let plan = planner .plan( diff --git a/crates/bin/pcli/src/command/tx/proposal.rs b/crates/bin/pcli/src/command/tx/proposal.rs index 15d5e22d0e..81971d9e79 100644 --- a/crates/bin/pcli/src/command/tx/proposal.rs +++ b/crates/bin/pcli/src/command/tx/proposal.rs @@ -12,7 +12,7 @@ pub enum ProposalCmd { /// The file to output the template to. #[clap(long, global = true)] file: Option, - /// The kind of the proposal to template [one of: signaling, emergency, parameter-change, or dao-spend]. + /// The kind of the proposal to template [one of: signaling, emergency, parameter-change, or community-pool-spend]. #[clap(subcommand)] kind: ProposalKindCmd, }, @@ -62,8 +62,8 @@ pub enum ProposalKindCmd { Emergency, /// Generate a template for a parameter change proposal. ParameterChange, - /// Generate a template for a DAO spend proposal. - DaoSpend { + /// Generate a template for a Community Pool spend proposal. + CommunityPoolSpend { /// The transaction plan to include in the proposal, in JSON format. /// /// If not specified, the default empty transaction plan will be included, to be replaced @@ -87,7 +87,7 @@ impl ProposalKindCmd { old: Box::new(app_params.as_changed_params()), new: Box::new(ChangedAppParameters { chain_params: None, - dao_params: None, + community_pool_params: None, ibc_params: None, stake_params: None, fee_params: None, @@ -95,9 +95,9 @@ impl ProposalKindCmd { distributions_params: None, }), }, - ProposalKindCmd::DaoSpend { transaction_plan } => { + ProposalKindCmd::CommunityPoolSpend { transaction_plan } => { if let Some(file) = transaction_plan { - ProposalPayload::DaoSpend { + ProposalPayload::CommunityPoolSpend { transaction_plan: serde_json::from_reader( std::fs::File::open(file).with_context(|| { format!("Failed to open transaction plan file {:?}", file) @@ -108,7 +108,7 @@ impl ProposalKindCmd { })?, } } else { - ProposalPayload::DaoSpend { + ProposalPayload::CommunityPoolSpend { transaction_plan: TransactionPlan::default().encode_to_vec(), } } diff --git a/crates/bin/pcli/src/command/validator.rs b/crates/bin/pcli/src/command/validator.rs index df45808642..e5a6b0f59d 100644 --- a/crates/bin/pcli/src/command/validator.rs +++ b/crates/bin/pcli/src/command/validator.rs @@ -286,7 +286,7 @@ impl ValidatorCmd { address, rate_bps: 100, }, - FundingStream::ToDao { rate_bps: 100 }, + FundingStream::ToCommunityPool { rate_bps: 100 }, ])?, sequence_number: 0, } diff --git a/crates/bin/pcli/src/command/view/balance.rs b/crates/bin/pcli/src/command/view/balance.rs index b6bfe7f420..f6c2d09fa3 100644 --- a/crates/bin/pcli/src/command/view/balance.rs +++ b/crates/bin/pcli/src/command/view/balance.rs @@ -100,7 +100,7 @@ fn format_source(source: &CommitmentSource) -> String { CommitmentSource::FundingStreamReward { epoch_index } => { format!("Funding Stream (Epoch {})", epoch_index) } - CommitmentSource::DaoOutput => format!("DaoOutput"), + CommitmentSource::CommunityPoolOutput => format!("CommunityPoolOutput"), CommitmentSource::Ics20Transfer { packet_seq, channel_id, diff --git a/crates/bin/pcli/src/command/view/tx.rs b/crates/bin/pcli/src/command/view/tx.rs index a4f4c53fae..06516787d9 100644 --- a/crates/bin/pcli/src/command/view/tx.rs +++ b/crates/bin/pcli/src/command/view/tx.rs @@ -419,14 +419,14 @@ impl TxCmd { ), ] } - penumbra_transaction::ActionView::DaoDeposit(_) => { - ["Dao Deposit".to_string(), "".to_string()] + penumbra_transaction::ActionView::CommunityPoolDeposit(_) => { + ["CommunityPool Deposit".to_string(), "".to_string()] } - penumbra_transaction::ActionView::DaoSpend(_) => { - ["Dao Spend".to_string(), "".to_string()] + penumbra_transaction::ActionView::CommunityPoolSpend(_) => { + ["CommunityPool Spend".to_string(), "".to_string()] } - penumbra_transaction::ActionView::DaoOutput(_) => { - ["Dao Output".to_string(), "".to_string()] + penumbra_transaction::ActionView::CommunityPoolOutput(_) => { + ["CommunityPool Output".to_string(), "".to_string()] } }); } diff --git a/crates/core/app/Cargo.toml b/crates/core/app/Cargo.toml index e0a1450faf..58cdab50ab 100644 --- a/crates/core/app/Cargo.toml +++ b/crates/core/app/Cargo.toml @@ -24,7 +24,7 @@ penumbra-stake = { path = "../component/stake" } penumbra-governance = { path = "../component/governance" } penumbra-sct = { path = "../component/sct" } penumbra-fee = { path = "../component/fee" } -penumbra-dao = { path = "../component/dao" } +penumbra-community-pool = { path = "../component/community-pool" } penumbra-dex = { path = "../component/dex" } penumbra-ibc = { path = "../component/ibc", features = ["component"] } penumbra-distributions = { path = "../component/distributions" } diff --git a/crates/core/app/src/action_handler/actions.rs b/crates/core/app/src/action_handler/actions.rs index 56d0f23ab1..d85894ccdb 100644 --- a/crates/core/app/src/action_handler/actions.rs +++ b/crates/core/app/src/action_handler/actions.rs @@ -46,9 +46,9 @@ impl ActionHandler for Action { .await } Action::Ics20Withdrawal(action) => action.check_stateless(()).await, - Action::DaoSpend(action) => action.check_stateless(()).await, - Action::DaoOutput(action) => action.check_stateless(()).await, - Action::DaoDeposit(action) => action.check_stateless(()).await, + Action::CommunityPoolSpend(action) => action.check_stateless(()).await, + Action::CommunityPoolOutput(action) => action.check_stateless(()).await, + Action::CommunityPoolDeposit(action) => action.check_stateless(()).await, } } @@ -83,9 +83,9 @@ impl ActionHandler for Action { .await } Action::Ics20Withdrawal(action) => action.check_stateful(state).await, - Action::DaoSpend(action) => action.check_stateful(state).await, - Action::DaoOutput(action) => action.check_stateful(state).await, - Action::DaoDeposit(action) => action.check_stateful(state).await, + Action::CommunityPoolSpend(action) => action.check_stateful(state).await, + Action::CommunityPoolOutput(action) => action.check_stateful(state).await, + Action::CommunityPoolDeposit(action) => action.check_stateful(state).await, } } @@ -116,9 +116,9 @@ impl ActionHandler for Action { .await } Action::Ics20Withdrawal(action) => action.execute(state).await, - Action::DaoSpend(action) => action.execute(state).await, - Action::DaoOutput(action) => action.execute(state).await, - Action::DaoDeposit(action) => action.execute(state).await, + Action::CommunityPoolSpend(action) => action.execute(state).await, + Action::CommunityPoolOutput(action) => action.execute(state).await, + Action::CommunityPoolDeposit(action) => action.execute(state).await, } } } diff --git a/crates/core/app/src/action_handler/actions/submit.rs b/crates/core/app/src/action_handler/actions/submit.rs index 08db4e98f5..167b13bc4a 100644 --- a/crates/core/app/src/action_handler/actions/submit.rs +++ b/crates/core/app/src/action_handler/actions/submit.rs @@ -9,7 +9,7 @@ use decaf377_rdsa::{VerificationKey, VerificationKeyBytes}; use once_cell::sync::Lazy; use penumbra_asset::STAKING_TOKEN_DENOM; use penumbra_chain::component::StateReadExt as _; -use penumbra_dao::component::StateReadExt as _; +use penumbra_community_pool::component::StateReadExt as _; use penumbra_keys::keys::{FullViewingKey, NullifierKey}; use penumbra_proto::DomainType; use penumbra_sct::component::StateReadExt as _; @@ -20,7 +20,7 @@ use penumbra_transaction::Transaction; use penumbra_transaction::{AuthorizationData, WitnessData}; use crate::action_handler::ActionHandler; -use crate::dao_ext::DaoStateWriteExt; +use crate::community_pool_ext::CommunityPoolStateWriteExt; use crate::params::AppParameters; use penumbra_governance::{ component::{StateReadExt as _, StateWriteExt as _}, @@ -86,9 +86,9 @@ impl ActionHandler for ProposalSubmit { .check_valid_update(&new_app_params) .context("invalid change to app parameters")?; } - DaoSpend { transaction_plan } => { + CommunityPoolSpend { transaction_plan } => { // Check to make sure that the transaction plan contains only valid actions for the - // DAO (none of them should require proving to build): + // Community Pool (none of them should require proving to build): use penumbra_transaction::plan::ActionPlan::*; let parsed_transaction_plan = TransactionPlan::decode(&transaction_plan[..]) @@ -98,22 +98,22 @@ impl ActionHandler for ProposalSubmit { match action { Spend(_) | Output(_) | Swap(_) | SwapClaim(_) | DelegatorVote(_) | UndelegateClaim(_) => { - // These actions all require proving, so they are banned from DAO spend + // These actions all require proving, so they are banned from Community Pool spend // proposals to prevent DoS attacks. anyhow::bail!( - "invalid action in DAO spend proposal (would require proving)" + "invalid action in Community Pool spend proposal (would require proving)" ) } Delegate(_) | Undelegate(_) => { // Delegation and undelegation is disallowed due to Undelegateclaim requiring proving. anyhow::bail!( - "invalid action in DAO spend proposal (can't claim outputs of undelegation)" + "invalid action in Community Pool spend proposal (can't claim outputs of undelegation)" ) } ProposalSubmit(_) | ProposalWithdraw(_) | ProposalDepositClaim(_) => { - // These actions manipulate proposals, so they are banned from DAO spend + // These actions manipulate proposals, so they are banned from Community Pool spend // actions because they could cause recursion. - anyhow::bail!("invalid action in DAO spend proposal (not allowed to manipulate proposals from within proposals)") + anyhow::bail!("invalid action in Community Pool spend proposal (not allowed to manipulate proposals from within proposals)") } ValidatorDefinition(_) | IbcAction(_) @@ -122,11 +122,11 @@ impl ActionHandler for ProposalSubmit { | PositionClose(_) | PositionWithdraw(_) | PositionRewardClaim(_) - | DaoSpend(_) - | DaoOutput(_) + | CommunityPoolSpend(_) + | CommunityPoolOutput(_) | Withdrawal(_) - | DaoDeposit(_) => { - // These actions are all valid for DAO spend proposals, because they + | CommunityPoolDeposit(_) => { + // These actions are all valid for Community Pool spend proposals, because they // don't require proving, so they don't represent a DoS vector. } } @@ -172,12 +172,12 @@ impl ActionHandler for ProposalSubmit { ProposalPayload::ParameterChange { .. } => { /* no stateful checks for parameter change (checks are applied when proposal finishes) */ } - ProposalPayload::DaoSpend { transaction_plan } => { - // If DAO spend proposals aren't enabled, then we can't allow them to be submitted - let dao_parameters = state.get_dao_params().await?; + ProposalPayload::CommunityPoolSpend { transaction_plan } => { + // If Community Pool spend proposals aren't enabled, then we can't allow them to be submitted + let community_pool_parameters = state.get_community_pool_params().await?; anyhow::ensure!( - dao_parameters.dao_spend_proposals_enabled, - "DAO spend proposals are not enabled", + community_pool_parameters.community_pool_spend_proposals_enabled, + "Community Pool spend proposals are not enabled", ); // Check that the transaction plan can be built without any witness or auth data and @@ -187,17 +187,17 @@ impl ActionHandler for ProposalSubmit { // obviously going to fail to execute. let parsed_transaction_plan = TransactionPlan::decode(&transaction_plan[..]) .context("transaction plan was malformed")?; - let tx = build_dao_transaction(parsed_transaction_plan.clone()) + let tx = build_community_pool_transaction(parsed_transaction_plan.clone()) .await - .context("failed to build submitted DAO spend transaction plan")?; - tx.check_stateless(()) - .await - .context("submitted DAO spend transaction failed stateless checks")?; + .context("failed to build submitted Community Pool spend transaction plan")?; + tx.check_stateless(()).await.context( + "submitted Community Pool spend transaction failed stateless checks", + )?; tx.check_stateful(state.clone()) .await - .context("submitted DAO spend transaction failed stateful checks")?; + .context("submitted Community Pool spend transaction failed stateful checks")?; tx.execute(StateDelta::new(state)).await.context( - "submitted DAO spend transaction failed to execute in current chain state", + "submitted Community Pool spend transaction failed to execute in current chain state", )?; } ProposalPayload::UpgradePlan { .. } => { @@ -214,19 +214,19 @@ impl ActionHandler for ProposalSubmit { deposit_amount, } = self; - // If the proposal is a DAO spend proposal, we've already built it, but we need to build it + // If the proposal is a Community Pool spend proposal, we've already built it, but we need to build it // again because we can't remember anything from `check_tx_stateful` to `execute`: - if let ProposalPayload::DaoSpend { transaction_plan } = &proposal.payload { + if let ProposalPayload::CommunityPoolSpend { transaction_plan } = &proposal.payload { // Build the transaction again (this time we know it will succeed because it built and // passed all checks in `check_tx_stateful`): let parsed_transaction_plan = TransactionPlan::decode(&transaction_plan[..]) .context("transaction plan was malformed")?; - let tx = build_dao_transaction(parsed_transaction_plan.clone()) + let tx = build_community_pool_transaction(parsed_transaction_plan.clone()) .await - .context("failed to build submitted DAO spend transaction plan in execute step")?; + .context("failed to build submitted Community Pool spend transaction plan in execute step")?; // Cache the built transaction in the state so we can use it later, without rebuilding: - state.put_dao_transaction(proposal.id, tx); + state.put_community_pool_transaction(proposal.id, tx); } // Store the contents of the proposal and generate a fresh proposal id for it @@ -285,20 +285,20 @@ impl ActionHandler for ProposalSubmit { } } -/// The full viewing key used to construct transactions made by the Penumbra DAO. +/// The full viewing key used to construct transactions made by the Penumbra Community Pool. /// /// This full viewing key does not correspond to any known spend key; it is constructed from the /// hashes of two arbitrary strings. -static DAO_FULL_VIEWING_KEY: Lazy = Lazy::new(|| { +static COMMUNITY_POOL_FULL_VIEWING_KEY: Lazy = Lazy::new(|| { // We start with two different personalization strings for the hash function: - let ak_personalization = b"Penumbra_DAO_ak"; - let nk_personalization = b"Penumbra_DAO_nk"; + let ak_personalization = b"Penumbra_CP_ak"; + let nk_personalization = b"Penumbra_CP_nk"; // We pick two different arbitrary strings to hash: let ak_hash_input = - b"This hash input is used to form the `ak` component of the Penumbra DAO's full viewing key."; + b"This hash input is used to form the `ak` component of the Penumbra Community Pool's full viewing key."; let nk_hash_input = - b"This hash input is used to form the `nk` component of the Penumbra DAO's full viewing key."; + b"This hash input is used to form the `nk` component of the Penumbra Community Pool's full viewing key."; // We hash the two strings using their respective personalizations: let ak_hash = blake2b_simd::Params::new() @@ -314,7 +314,7 @@ static DAO_FULL_VIEWING_KEY: Lazy = Lazy::new(|| { .vartime_compress() .0, )) - .expect("penumbra DAO FVK's `ak` must be a valid verification key by construction"); + .expect("penumbra Community Pool FVK's `ak` must be a valid verification key by construction"); // We construct the `nk` component of the full viewing key from the hash of the second string: let nk = NullifierKey(Fq::from_le_bytes_mod_order(nk_hash.as_bytes())); @@ -323,10 +323,12 @@ static DAO_FULL_VIEWING_KEY: Lazy = Lazy::new(|| { FullViewingKey::from_components(ak, nk) }); -async fn build_dao_transaction(transaction_plan: TransactionPlan) -> Result { - let effect_hash = transaction_plan.effect_hash(&DAO_FULL_VIEWING_KEY); +async fn build_community_pool_transaction( + transaction_plan: TransactionPlan, +) -> Result { + let effect_hash = transaction_plan.effect_hash(&COMMUNITY_POOL_FULL_VIEWING_KEY); transaction_plan.build( - &DAO_FULL_VIEWING_KEY, + &COMMUNITY_POOL_FULL_VIEWING_KEY, &WitnessData { anchor: penumbra_tct::Tree::new().root(), state_commitment_proofs: Default::default(), @@ -341,9 +343,9 @@ async fn build_dao_transaction(transaction_plan: TransactionPlan) -> Result { - tracing::warn!(?error, "failed to deliver DAO transaction"); + tracing::warn!(?error, "failed to deliver Community Pool transaction"); } - Ok(dao_tx_events) => events.extend(dao_tx_events), + Ok(community_pool_tx_events) => events.extend(community_pool_tx_events), } } @@ -259,22 +264,22 @@ impl App { pub async fn deliver_tx(&mut self, tx: Arc) -> Result> { // Ensure that any normally-delivered transaction (originating from a user) does not contain - // any DAO spends or outputs; the only place those are permitted is transactions originating + // any Community Pool spends or outputs; the only place those are permitted is transactions originating // from the chain itself: anyhow::ensure!( - tx.dao_spends().peekable().peek().is_none(), - "DAO spends are not permitted in user-submitted transactions" + tx.community_pool_spends().peekable().peek().is_none(), + "Community Pool spends are not permitted in user-submitted transactions" ); anyhow::ensure!( - tx.dao_outputs().peekable().peek().is_none(), - "DAO outputs are not permitted in user-submitted transactions" + tx.community_pool_outputs().peekable().peek().is_none(), + "Community Pool outputs are not permitted in user-submitted transactions" ); - // Now that we've ensured that there are not any DAO spends or outputs, we can deliver the transaction: - self.deliver_tx_allowing_dao_spends(tx).await + // Now that we've ensured that there are not any Community Pool spends or outputs, we can deliver the transaction: + self.deliver_tx_allowing_community_pool_spends(tx).await } - async fn deliver_tx_allowing_dao_spends( + async fn deliver_tx_allowing_community_pool_spends( &mut self, tx: Arc, ) -> Result> { @@ -553,7 +558,7 @@ pub trait StateReadExt: StateRead { self.fee_params_updated() || self.governance_params_updated() || self.ibc_params_updated() - || self.dao_params_updated() + || self.community_pool_params_updated() || self.stake_params_updated() || self.distributions_params_updated() || self.chain_params_updated() @@ -565,13 +570,13 @@ pub trait StateReadExt: StateRead { let stake_params = self.get_stake_params().await?; let ibc_params = self.get_ibc_params().await?; let governance_params = self.get_governance_params().await?; - let dao_params = self.get_dao_params().await?; + let community_pool_params = self.get_community_pool_params().await?; let fee_params = self.get_fee_params().await?; let distributions_params = self.get_distributions_params().await?; Ok(AppParameters { chain_params, - dao_params, + community_pool_params, distributions_params, fee_params, governance_params, @@ -605,7 +610,7 @@ impl< + penumbra_stake::StateReadExt + penumbra_governance::component::StateReadExt + penumbra_fee::component::StateReadExt - + penumbra_dao::component::StateReadExt + + penumbra_community_pool::component::StateReadExt + penumbra_chain::component::StateReadExt + penumbra_ibc::component::StateReadExt + penumbra_distributions::component::StateReadExt diff --git a/crates/core/app/src/dao_ext.rs b/crates/core/app/src/community_pool_ext.rs similarity index 62% rename from crates/core/app/src/dao_ext.rs rename to crates/core/app/src/community_pool_ext.rs index 26412bf080..153b8342eb 100644 --- a/crates/core/app/src/dao_ext.rs +++ b/crates/core/app/src/community_pool_ext.rs @@ -14,11 +14,13 @@ use penumbra_transaction::Transaction; // dependency. #[async_trait] -pub trait DaoStateReadExt: StateRead + penumbra_stake::StateReadExt { +pub trait CommunityPoolStateReadExt: StateRead + penumbra_stake::StateReadExt { /// Get all the transactions set to be delivered in this block (scheduled in last block). - async fn pending_dao_transactions(&self) -> Result> { - // Get the proposal IDs of the DAO transactions we are about to deliver. - let prefix = state_key::deliver_dao_transactions_at_height(self.get_block_height().await?); + async fn pending_community_pool_transactions(&self) -> Result> { + // Get the proposal IDs of the Community Pool transactions we are about to deliver. + let prefix = state_key::deliver_community_pool_transactions_at_height( + self.get_block_height().await?, + ); let proposals: Vec = self .prefix_proto::(&prefix) .map(|result| anyhow::Ok(result?.1)) @@ -29,7 +31,7 @@ pub trait DaoStateReadExt: StateRead + penumbra_stake::StateReadExt { let mut transactions = Vec::new(); for proposal in proposals { transactions.push( - self.get(&state_key::dao_transaction(proposal)) + self.get(&state_key::community_pool_transaction(proposal)) .await? .ok_or_else(|| { anyhow::anyhow!("no transaction found for proposal {}", proposal) @@ -40,14 +42,14 @@ pub trait DaoStateReadExt: StateRead + penumbra_stake::StateReadExt { } } -impl DaoStateReadExt for T {} +impl CommunityPoolStateReadExt for T {} #[async_trait] -pub trait DaoStateWriteExt: StateWrite { +pub trait CommunityPoolStateWriteExt: StateWrite { /// Get all the transactions set to be delivered in this block (scheduled in last block). - fn put_dao_transaction(&mut self, proposal: u64, transaction: Transaction) { - self.put(state_key::dao_transaction(proposal), transaction); + fn put_community_pool_transaction(&mut self, proposal: u64, transaction: Transaction) { + self.put(state_key::community_pool_transaction(proposal), transaction); } } -impl DaoStateWriteExt for T {} +impl CommunityPoolStateWriteExt for T {} diff --git a/crates/core/app/src/genesis/app_state.rs b/crates/core/app/src/genesis/app_state.rs index 12bc4a6d30..3e5fcc32dd 100644 --- a/crates/core/app/src/genesis/app_state.rs +++ b/crates/core/app/src/genesis/app_state.rs @@ -1,5 +1,5 @@ use penumbra_chain::genesis::Content as ChainContent; -use penumbra_dao::genesis::Content as DaoContent; +use penumbra_community_pool::genesis::Content as CommunityPoolContent; use penumbra_distributions::genesis::Content as DistributionsContent; use penumbra_fee::genesis::Content as FeeContent; use penumbra_governance::genesis::Content as GovernanceContent; @@ -33,8 +33,8 @@ pub struct Content { pub ibc_content: IBCContent, /// Chain module genesis state. pub chain_content: ChainContent, - /// DAO module genesis state. - pub dao_content: DaoContent, + /// Community Pool module genesis state. + pub community_pool_content: CommunityPoolContent, /// Fee module genesis state. pub fee_content: FeeContent, /// Distributions module genesis state. @@ -73,7 +73,7 @@ impl From for pb::GenesisContent { stake_content: Some(value.stake_content.into()), ibc_content: Some(value.ibc_content.into()), governance_content: Some(value.governance_content.into()), - dao_content: Some(value.dao_content.into()), + community_pool_content: Some(value.community_pool_content.into()), shielded_pool_content: Some(value.shielded_pool_content.into()), fee_content: Some(value.fee_content.into()), distributions_content: Some(value.distributions_content.into()), @@ -120,9 +120,9 @@ impl TryFrom for Content { .ibc_content .ok_or_else(|| anyhow::anyhow!("proto response missing ibc content"))? .try_into()?, - dao_content: msg - .dao_content - .ok_or_else(|| anyhow::anyhow!("proto response missing dao content"))? + community_pool_content: msg + .community_pool_content + .ok_or_else(|| anyhow::anyhow!("proto response missing Community Pool content"))? .try_into()?, chain_content: msg .chain_content diff --git a/crates/core/app/src/lib.rs b/crates/core/app/src/lib.rs index 0236f4810c..37a6b618f2 100644 --- a/crates/core/app/src/lib.rs +++ b/crates/core/app/src/lib.rs @@ -1,12 +1,12 @@ #![deny(clippy::unwrap_used)] mod action_handler; -mod dao_ext; +mod community_pool_ext; mod mock_client; mod temp_storage_ext; pub use action_handler::ActionHandler; pub use app::StateWriteExt; -pub use dao_ext::DaoStateReadExt; +pub use community_pool_ext::CommunityPoolStateReadExt; pub use mock_client::MockClient; pub use temp_storage_ext::TempStorageExt; diff --git a/crates/core/app/src/params.rs b/crates/core/app/src/params.rs index 0169396d8b..bacfdc2550 100644 --- a/crates/core/app/src/params.rs +++ b/crates/core/app/src/params.rs @@ -1,5 +1,5 @@ use penumbra_chain::params::ChainParameters; -use penumbra_dao::params::DaoParameters; +use penumbra_community_pool::params::CommunityPoolParameters; use penumbra_distributions::DistributionsParameters; use penumbra_fee::FeeParameters; use penumbra_governance::params::GovernanceParameters; @@ -16,7 +16,7 @@ pub mod change; #[serde(try_from = "pb::AppParameters", into = "pb::AppParameters")] pub struct AppParameters { pub chain_params: ChainParameters, - pub dao_params: DaoParameters, + pub community_pool_params: CommunityPoolParameters, pub distributions_params: DistributionsParameters, pub fee_params: FeeParameters, pub governance_params: GovernanceParameters, @@ -37,9 +37,9 @@ impl TryFrom for AppParameters { .chain_params .ok_or_else(|| anyhow::anyhow!("proto response missing chain params"))? .try_into()?, - dao_params: msg - .dao_params - .ok_or_else(|| anyhow::anyhow!("proto response missing dao params"))? + community_pool_params: msg + .community_pool_params + .ok_or_else(|| anyhow::anyhow!("proto response missing Community Pool params"))? .try_into()?, distributions_params: msg .distributions_params @@ -69,7 +69,7 @@ impl From for pb::AppParameters { fn from(params: AppParameters) -> Self { pb::AppParameters { chain_params: Some(params.chain_params.into()), - dao_params: Some(params.dao_params.into()), + community_pool_params: Some(params.community_pool_params.into()), distributions_params: Some(params.distributions_params.into()), governance_params: Some(params.governance_params.into()), ibc_params: Some(params.ibc_params.into()), diff --git a/crates/core/app/src/params/change.rs b/crates/core/app/src/params/change.rs index 2b796f26d3..dd73496b7a 100644 --- a/crates/core/app/src/params/change.rs +++ b/crates/core/app/src/params/change.rs @@ -2,7 +2,7 @@ use std::fmt::Display; use anyhow::Result; use penumbra_chain::params::{ChainParameters, Ratio}; -use penumbra_dao::params::DaoParameters; +use penumbra_community_pool::params::CommunityPoolParameters; use penumbra_distributions::params::DistributionsParameters; use penumbra_fee::FeeParameters; use penumbra_governance::{params::GovernanceParameters, proposal::ChangedAppParameters}; @@ -55,9 +55,9 @@ impl AppParameters { DistributionsParameters { staking_issuance_per_block: _, }, - dao_params: - DaoParameters { - dao_spend_proposals_enabled: _, + community_pool_params: + CommunityPoolParameters { + community_pool_spend_proposals_enabled: _, }, // IMPORTANT: Don't use `..` here! We want to ensure every single field is verified! } = self; @@ -137,9 +137,9 @@ impl AppParameters { DistributionsParameters { staking_issuance_per_block: _, }, - dao_params: - DaoParameters { - dao_spend_proposals_enabled: _, + community_pool_params: + CommunityPoolParameters { + community_pool_spend_proposals_enabled: _, }, // IMPORTANT: Don't use `..` here! We want to ensure every single field is verified! } = self; @@ -217,7 +217,7 @@ impl AppParameters { pub fn as_changed_params(&self) -> ChangedAppParameters { ChangedAppParameters { chain_params: Some(self.chain_params.clone()), - dao_params: Some(self.dao_params.clone()), + community_pool_params: Some(self.community_pool_params.clone()), distributions_params: Some(self.distributions_params.clone()), fee_params: Some(self.fee_params.clone()), governance_params: Some(self.governance_params.clone()), @@ -241,7 +241,7 @@ impl AppParameters { || new.ibc_params.is_none() || new.governance_params.is_none() || new.fee_params.is_none() - || new.dao_params.is_none() + || new.community_pool_params.is_none() || new.distributions_params.is_none()) { anyhow::bail!("all parameters must be specified if no old parameters are provided"); @@ -253,9 +253,9 @@ impl AppParameters { .chain_params .clone() }), - dao_params: new.dao_params.clone().unwrap_or_else(|| { + community_pool_params: new.community_pool_params.clone().unwrap_or_else(|| { old.expect("old should be set if new has any None values") - .dao_params + .community_pool_params .clone() }), distributions_params: new.distributions_params.clone().unwrap_or_else(|| { diff --git a/crates/core/component/dao/Cargo.toml b/crates/core/component/community-pool/Cargo.toml similarity index 97% rename from crates/core/component/dao/Cargo.toml rename to crates/core/component/community-pool/Cargo.toml index ed7e4908da..d59368bf4b 100644 --- a/crates/core/component/dao/Cargo.toml +++ b/crates/core/component/community-pool/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "penumbra-dao" +name = "penumbra-community-pool" version = "0.64.1" edition = "2021" diff --git a/crates/core/component/community-pool/src/action.rs b/crates/core/component/community-pool/src/action.rs new file mode 100644 index 0000000000..9436e9baaf --- /dev/null +++ b/crates/core/component/community-pool/src/action.rs @@ -0,0 +1,7 @@ +mod community_pool_deposit; +mod community_pool_output; +mod community_pool_spend; + +pub use community_pool_deposit::CommunityPoolDeposit; +pub use community_pool_output::CommunityPoolOutput; +pub use community_pool_spend::CommunityPoolSpend; diff --git a/crates/core/component/dao/src/action/dao_deposit.rs b/crates/core/component/community-pool/src/action/community_pool_deposit.rs similarity index 52% rename from crates/core/component/dao/src/action/dao_deposit.rs rename to crates/core/component/community-pool/src/action/community_pool_deposit.rs index 1486fdd40e..4c905c09f0 100644 --- a/crates/core/component/dao/src/action/dao_deposit.rs +++ b/crates/core/component/community-pool/src/action/community_pool_deposit.rs @@ -4,50 +4,53 @@ use serde::{Deserialize, Serialize}; use std::convert::{TryFrom, TryInto}; use penumbra_asset::{Balance, Value}; -// TODO: why are the Dao actions not in the dao protos? +// TODO: why are the CommunityPool actions not in the Community Pool protos? use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType}; #[derive(Clone, Debug, Serialize, Deserialize)] -#[serde(try_from = "pb::DaoDeposit", into = "pb::DaoDeposit")] -pub struct DaoDeposit { +#[serde( + try_from = "pb::CommunityPoolDeposit", + into = "pb::CommunityPoolDeposit" +)] +pub struct CommunityPoolDeposit { pub value: Value, } -impl DaoDeposit { +impl CommunityPoolDeposit { pub fn balance(&self) -> Balance { - // Deposits into the DAO require value + // Deposits into the Community Pool require value -Balance::from(self.value) } } -impl EffectingData for DaoDeposit { +impl EffectingData for CommunityPoolDeposit { fn effect_hash(&self) -> EffectHash { EffectHash::from_proto_effecting_data(&self.to_proto()) } } -impl DomainType for DaoDeposit { - type Proto = pb::DaoDeposit; +impl DomainType for CommunityPoolDeposit { + type Proto = pb::CommunityPoolDeposit; } -impl From for pb::DaoDeposit { - fn from(msg: DaoDeposit) -> Self { - pb::DaoDeposit { +impl From for pb::CommunityPoolDeposit { + fn from(msg: CommunityPoolDeposit) -> Self { + pb::CommunityPoolDeposit { value: Some(msg.value.into()), } } } -impl TryFrom for DaoDeposit { +impl TryFrom for CommunityPoolDeposit { type Error = Error; - fn try_from(proto: pb::DaoDeposit) -> anyhow::Result { + fn try_from(proto: pb::CommunityPoolDeposit) -> anyhow::Result { let value = proto .value .ok_or_else(|| anyhow::anyhow!("missing value"))? .try_into() .context("malformed value")?; - Ok(DaoDeposit { value }) + Ok(CommunityPoolDeposit { value }) } } diff --git a/crates/core/component/dao/src/action/dao_output.rs b/crates/core/component/community-pool/src/action/community_pool_output.rs similarity index 62% rename from crates/core/component/dao/src/action/dao_output.rs rename to crates/core/component/community-pool/src/action/community_pool_output.rs index f320546484..6952bd5448 100644 --- a/crates/core/component/dao/src/action/dao_output.rs +++ b/crates/core/component/community-pool/src/action/community_pool_output.rs @@ -8,42 +8,42 @@ use penumbra_keys::Address; use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType}; #[derive(Clone, Debug, Serialize, Deserialize)] -#[serde(try_from = "pb::DaoOutput", into = "pb::DaoOutput")] -pub struct DaoOutput { +#[serde(try_from = "pb::CommunityPoolOutput", into = "pb::CommunityPoolOutput")] +pub struct CommunityPoolOutput { pub value: Value, pub address: Address, } -impl DaoOutput { +impl CommunityPoolOutput { pub fn balance(&self) -> Balance { - // Outputs from the DAO require value + // Outputs from the Community Pool require value -Balance::from(self.value) } } -impl EffectingData for DaoOutput { +impl EffectingData for CommunityPoolOutput { fn effect_hash(&self) -> EffectHash { EffectHash::from_proto_effecting_data(&self.to_proto()) } } -impl DomainType for DaoOutput { - type Proto = pb::DaoOutput; +impl DomainType for CommunityPoolOutput { + type Proto = pb::CommunityPoolOutput; } -impl From for pb::DaoOutput { - fn from(msg: DaoOutput) -> Self { - pb::DaoOutput { +impl From for pb::CommunityPoolOutput { + fn from(msg: CommunityPoolOutput) -> Self { + pb::CommunityPoolOutput { value: Some(msg.value.into()), address: Some(msg.address.into()), } } } -impl TryFrom for DaoOutput { +impl TryFrom for CommunityPoolOutput { type Error = Error; - fn try_from(proto: pb::DaoOutput) -> anyhow::Result { + fn try_from(proto: pb::CommunityPoolOutput) -> anyhow::Result { let value = proto .value .ok_or_else(|| anyhow::anyhow!("missing value"))? @@ -55,6 +55,6 @@ impl TryFrom for DaoOutput { .try_into() .context("malformed address")?; - Ok(DaoOutput { value, address }) + Ok(CommunityPoolOutput { value, address }) } } diff --git a/crates/core/component/dao/src/action/dao_spend.rs b/crates/core/component/community-pool/src/action/community_pool_spend.rs similarity index 55% rename from crates/core/component/dao/src/action/dao_spend.rs rename to crates/core/component/community-pool/src/action/community_pool_spend.rs index c04c703e9d..fbef03cd0a 100644 --- a/crates/core/component/dao/src/action/dao_spend.rs +++ b/crates/core/component/community-pool/src/action/community_pool_spend.rs @@ -7,46 +7,46 @@ use penumbra_effecthash::{EffectHash, EffectingData}; use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType}; #[derive(Clone, Debug, Serialize, Deserialize)] -#[serde(try_from = "pb::DaoSpend", into = "pb::DaoSpend")] -pub struct DaoSpend { +#[serde(try_from = "pb::CommunityPoolSpend", into = "pb::CommunityPoolSpend")] +pub struct CommunityPoolSpend { pub value: Value, } -impl EffectingData for DaoSpend { +impl EffectingData for CommunityPoolSpend { fn effect_hash(&self) -> EffectHash { EffectHash::from_proto_effecting_data(&self.to_proto()) } } -impl DaoSpend { +impl CommunityPoolSpend { pub fn balance(&self) -> Balance { - // Spends from the DAO produce value + // Spends from the Community Pool produce value Balance::from(self.value) } } -impl DomainType for DaoSpend { - type Proto = pb::DaoSpend; +impl DomainType for CommunityPoolSpend { + type Proto = pb::CommunityPoolSpend; } -impl From for pb::DaoSpend { - fn from(msg: DaoSpend) -> Self { - pb::DaoSpend { +impl From for pb::CommunityPoolSpend { + fn from(msg: CommunityPoolSpend) -> Self { + pb::CommunityPoolSpend { value: Some(msg.value.into()), } } } -impl TryFrom for DaoSpend { +impl TryFrom for CommunityPoolSpend { type Error = Error; - fn try_from(proto: pb::DaoSpend) -> anyhow::Result { + fn try_from(proto: pb::CommunityPoolSpend) -> anyhow::Result { let value = proto .value .ok_or_else(|| anyhow::anyhow!("missing value"))? .try_into() .context("malformed value")?; - Ok(DaoSpend { value }) + Ok(CommunityPoolSpend { value }) } } diff --git a/crates/core/component/community-pool/src/component.rs b/crates/core/component/community-pool/src/component.rs new file mode 100644 index 0000000000..bf31c2ed60 --- /dev/null +++ b/crates/core/component/community-pool/src/component.rs @@ -0,0 +1,8 @@ +/// The Community Pool isn't really a "component" because it doesn't really execute anything by itself. It's +/// just a collection of state that is modified by CommunityPoolSpend and CommunityPoolDeposit actions. +pub mod state_key; + +mod action_handler; +mod view; + +pub use view::{StateReadExt, StateWriteExt}; diff --git a/crates/core/component/community-pool/src/component/action_handler.rs b/crates/core/component/community-pool/src/component/action_handler.rs new file mode 100644 index 0000000000..3c44c51fc2 --- /dev/null +++ b/crates/core/component/community-pool/src/component/action_handler.rs @@ -0,0 +1,3 @@ +mod community_pool_deposit; +mod community_pool_output; +mod community_pool_spend; diff --git a/crates/core/component/dao/src/component/action_handler/dao_deposit.rs b/crates/core/component/community-pool/src/component/action_handler/community_pool_deposit.rs similarity index 63% rename from crates/core/component/dao/src/component/action_handler/dao_deposit.rs rename to crates/core/component/community-pool/src/component/action_handler/community_pool_deposit.rs index 59adc464d9..6922085815 100644 --- a/crates/core/component/dao/src/component/action_handler/dao_deposit.rs +++ b/crates/core/component/community-pool/src/component/action_handler/community_pool_deposit.rs @@ -5,22 +5,22 @@ use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use cnidarium_component::ActionHandler; -use crate::{component::StateWriteExt as _, DaoDeposit}; +use crate::{component::StateWriteExt as _, CommunityPoolDeposit}; #[async_trait] -impl ActionHandler for DaoDeposit { +impl ActionHandler for CommunityPoolDeposit { type CheckStatelessContext = (); async fn check_stateless(&self, _context: ()) -> Result<()> { - // Any deposit into the DAO is valid. + // Any deposit into the Community Pool is valid. Ok(()) } async fn check_stateful(&self, _state: Arc) -> Result<()> { - // Any deposit into the DAO is valid. + // Any deposit into the Community Pool is valid. Ok(()) } async fn execute(&self, mut state: S) -> Result<()> { - state.dao_deposit(self.value).await + state.community_pool_deposit(self.value).await } } diff --git a/crates/core/component/dao/src/component/action_handler/dao_output.rs b/crates/core/component/community-pool/src/component/action_handler/community_pool_output.rs similarity index 54% rename from crates/core/component/dao/src/component/action_handler/dao_output.rs rename to crates/core/component/community-pool/src/component/action_handler/community_pool_output.rs index dbf91e220f..ee923341f2 100644 --- a/crates/core/component/dao/src/component/action_handler/dao_output.rs +++ b/crates/core/component/community-pool/src/component/action_handler/community_pool_output.rs @@ -7,25 +7,29 @@ use cnidarium_component::ActionHandler; use penumbra_sct::CommitmentSource; use penumbra_shielded_pool::component::NoteManager; -use crate::DaoOutput; +use crate::CommunityPoolOutput; #[async_trait] -impl ActionHandler for DaoOutput { +impl ActionHandler for CommunityPoolOutput { type CheckStatelessContext = (); async fn check_stateless(&self, _context: ()) -> Result<()> { - // Any output from the DAO is valid (it's just a transparent output). + // Any output from the Community Pool is valid (it's just a transparent output). Ok(()) } async fn check_stateful(&self, _state: Arc) -> Result<()> { - // Any output from the DAO is valid (it's just a transparent output). + // Any output from the Community Pool is valid (it's just a transparent output). Ok(()) } async fn execute(&self, mut state: S) -> Result<()> { - // Executing a DAO output is just minting a note to the recipient of the output. + // Executing a Community Pool output is just minting a note to the recipient of the output. state - .mint_note(self.value, &self.address, CommitmentSource::DaoOutput) + .mint_note( + self.value, + &self.address, + CommitmentSource::CommunityPoolOutput, + ) .await } } diff --git a/crates/core/component/dao/src/component/action_handler/dao_spend.rs b/crates/core/component/community-pool/src/component/action_handler/community_pool_spend.rs similarity index 59% rename from crates/core/component/dao/src/component/action_handler/dao_spend.rs rename to crates/core/component/community-pool/src/component/action_handler/community_pool_spend.rs index 6fdedc2d53..b68baffde1 100644 --- a/crates/core/component/dao/src/component/action_handler/dao_spend.rs +++ b/crates/core/component/community-pool/src/component/action_handler/community_pool_spend.rs @@ -5,25 +5,25 @@ use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use cnidarium_component::ActionHandler; -use crate::{component::StateWriteExt as _, DaoSpend}; +use crate::{component::StateWriteExt as _, CommunityPoolSpend}; #[async_trait] -impl ActionHandler for DaoSpend { +impl ActionHandler for CommunityPoolSpend { type CheckStatelessContext = (); async fn check_stateless(&self, _context: ()) -> Result<()> { - // We can't statelessly check that the DAO has enough funds to spend, because we don't know + // We can't statelessly check that the Community Pool has enough funds to spend, because we don't know // what its state is here. Ok(()) } async fn check_stateful(&self, _state: Arc) -> Result<()> { // Instead of checking here, we just check during execution, which will fail if we try to - // overdraw the DAO. + // overdraw the Community Pool. Ok(()) } async fn execute(&self, mut state: S) -> Result<()> { - // This will fail if we try to overdraw the DAO, so we can never spend more than we have. - state.dao_withdraw(self.value).await + // This will fail if we try to overdraw the Community Pool, so we can never spend more than we have. + state.community_pool_withdraw(self.value).await } } diff --git a/crates/core/component/community-pool/src/component/state_key.rs b/crates/core/component/community-pool/src/component/state_key.rs new file mode 100644 index 0000000000..0532608e0a --- /dev/null +++ b/crates/core/component/community-pool/src/component/state_key.rs @@ -0,0 +1,18 @@ +use penumbra_asset::asset; + +pub fn community_pool_params() -> &'static str { + "community_pool/params" +} + +pub fn community_pool_params_updated() -> &'static str { + "community_pool/community_pool_params_updated" +} + +pub fn balance_for_asset(asset_id: asset::Id) -> String { + format!("community_pool/asset/{asset_id}") +} + +pub fn all_assets_balance() -> &'static str { + // note: this must be the prefix of the above. + "community_pool/asset/" +} diff --git a/crates/core/component/dao/src/component/view.rs b/crates/core/component/community-pool/src/component/view.rs similarity index 60% rename from crates/core/component/dao/src/component/view.rs rename to crates/core/component/community-pool/src/component/view.rs index 7c6f05eb42..e4982afa63 100644 --- a/crates/core/component/dao/src/component/view.rs +++ b/crates/core/component/community-pool/src/component/view.rs @@ -9,33 +9,33 @@ use penumbra_asset::{asset, Value}; use penumbra_num::Amount; use penumbra_proto::{StateReadProto, StateWriteProto}; -use crate::params::DaoParameters; +use crate::params::CommunityPoolParameters; use super::state_key; #[async_trait] pub trait StateReadExt: StateRead { - /// Indicates if the DAO parameters have been updated in this block. - fn dao_params_updated(&self) -> bool { - self.object_get::<()>(state_key::dao_params_updated()) + /// Indicates if the Community Pool parameters have been updated in this block. + fn community_pool_params_updated(&self) -> bool { + self.object_get::<()>(state_key::community_pool_params_updated()) .is_some() } - /// Gets the DAO parameters from the JMT. - async fn get_dao_params(&self) -> Result { - self.get(state_key::dao_params()) + /// Gets the Community Pool parameters from the JMT. + async fn get_community_pool_params(&self) -> Result { + self.get(state_key::community_pool_params()) .await? - .ok_or_else(|| anyhow::anyhow!("Missing DaoParameters")) + .ok_or_else(|| anyhow::anyhow!("Missing CommunityPoolParameters")) } - async fn dao_asset_balance(&self, asset_id: asset::Id) -> Result { + async fn community_pool_asset_balance(&self, asset_id: asset::Id) -> Result { Ok(self .get(&state_key::balance_for_asset(asset_id)) .await? .unwrap_or_else(|| Amount::from(0u64))) } - async fn dao_balance(&self) -> Result> { + async fn community_pool_balance(&self) -> Result> { let prefix = state_key::all_assets_balance(); self.prefix(prefix) .map(|result| { @@ -53,23 +53,23 @@ impl StateReadExt for T where T: StateRead + ?Sized {} #[async_trait] pub trait StateWriteExt: StateWrite { - /// Writes the provided DAO parameters to the JMT. - fn put_dao_params(&mut self, params: DaoParameters) { - // Note that the dao params have been updated: - self.object_put(state_key::dao_params_updated(), ()); + /// Writes the provided Community Pool parameters to the JMT. + fn put_community_pool_params(&mut self, params: CommunityPoolParameters) { + // Note that the Community Pool params have been updated: + self.object_put(state_key::community_pool_params_updated(), ()); - // Change the DAO parameters: - self.put(state_key::dao_params().into(), params) + // Change the Community Pool parameters: + self.put(state_key::community_pool_params().into(), params) } - async fn dao_deposit(&mut self, value: Value) -> Result<()> { + async fn community_pool_deposit(&mut self, value: Value) -> Result<()> { let key = state_key::balance_for_asset(value.asset_id); let current = self.get(&key).await?.unwrap_or_else(|| Amount::from(0u64)); self.put(key, current + value.amount); Ok(()) } - async fn dao_withdraw(&mut self, value: Value) -> Result<()> { + async fn community_pool_withdraw(&mut self, value: Value) -> Result<()> { let key = state_key::balance_for_asset(value.asset_id); let current = self.get(&key).await?.unwrap_or_else(|| Amount::from(0u64)); if let Some(remaining) = u128::from(current).checked_sub(u128::from(value.amount)) { @@ -80,7 +80,7 @@ pub trait StateWriteExt: StateWrite { } } else { anyhow::bail!( - "insufficient balance to withdraw {} of asset ID {} from the DAO", + "insufficient balance to withdraw {} of asset ID {} from the Community Pool", value.amount, value.asset_id ); diff --git a/crates/core/component/community-pool/src/event.rs b/crates/core/component/community-pool/src/event.rs new file mode 100644 index 0000000000..60997ace10 --- /dev/null +++ b/crates/core/component/community-pool/src/event.rs @@ -0,0 +1,5 @@ +// TODO: events for +// +// - Community Pool spend +// - Community Pool deposit +// ? diff --git a/crates/core/component/dao/src/genesis.rs b/crates/core/component/community-pool/src/genesis.rs similarity index 55% rename from crates/core/component/dao/src/genesis.rs rename to crates/core/component/community-pool/src/genesis.rs index 4a550c1c23..1ffeacec4a 100644 --- a/crates/core/component/dao/src/genesis.rs +++ b/crates/core/component/community-pool/src/genesis.rs @@ -1,20 +1,20 @@ use anyhow::Context; -use penumbra_proto::{penumbra::core::component::dao::v1alpha1 as pb, DomainType}; +use penumbra_proto::{penumbra::core::component::community_pool::v1alpha1 as pb, DomainType}; use serde::{Deserialize, Serialize}; -use crate::params::DaoParameters; +use crate::params::CommunityPoolParameters; #[derive(Deserialize, Serialize, Debug, Clone, Default)] #[serde(try_from = "pb::GenesisContent", into = "pb::GenesisContent")] pub struct Content { - /// The initial configuration parameters for the DAO component. - pub dao_params: DaoParameters, + /// The initial configuration parameters for the Community Pool component. + pub community_pool_params: CommunityPoolParameters, } impl From for pb::GenesisContent { fn from(value: Content) -> Self { pb::GenesisContent { - dao_params: Some(value.dao_params.into()), + community_pool_params: Some(value.community_pool_params.into()), } } } @@ -24,9 +24,9 @@ impl TryFrom for Content { fn try_from(msg: pb::GenesisContent) -> Result { Ok(Content { - dao_params: msg - .dao_params - .context("dao params not present in protobuf message")? + community_pool_params: msg + .community_pool_params + .context("Community Pool params not present in protobuf message")? .try_into()?, }) } diff --git a/crates/core/component/dao/src/lib.rs b/crates/core/component/community-pool/src/lib.rs similarity index 82% rename from crates/core/component/dao/src/lib.rs rename to crates/core/component/community-pool/src/lib.rs index 7d16f3f9c3..088fd0edbf 100644 --- a/crates/core/component/dao/src/lib.rs +++ b/crates/core/component/community-pool/src/lib.rs @@ -8,7 +8,7 @@ pub mod component; pub mod event; mod action; -pub use action::{DaoDeposit, DaoOutput, DaoSpend}; +pub use action::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; pub mod genesis; pub mod params; diff --git a/crates/core/component/community-pool/src/params.rs b/crates/core/component/community-pool/src/params.rs new file mode 100644 index 0000000000..b120208f25 --- /dev/null +++ b/crates/core/component/community-pool/src/params.rs @@ -0,0 +1,43 @@ +use penumbra_proto::core::component::community_pool::v1alpha1 as pb; +use penumbra_proto::DomainType; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] +#[serde( + try_from = "pb::CommunityPoolParameters", + into = "pb::CommunityPoolParameters" +)] +pub struct CommunityPoolParameters { + /// Whether Community Pool spend proposals are enabled. + pub community_pool_spend_proposals_enabled: bool, +} + +impl DomainType for CommunityPoolParameters { + type Proto = pb::CommunityPoolParameters; +} + +impl TryFrom for CommunityPoolParameters { + type Error = anyhow::Error; + + fn try_from(msg: pb::CommunityPoolParameters) -> anyhow::Result { + Ok(CommunityPoolParameters { + community_pool_spend_proposals_enabled: msg.community_pool_spend_proposals_enabled, + }) + } +} + +impl From for pb::CommunityPoolParameters { + fn from(params: CommunityPoolParameters) -> Self { + pb::CommunityPoolParameters { + community_pool_spend_proposals_enabled: params.community_pool_spend_proposals_enabled, + } + } +} + +impl Default for CommunityPoolParameters { + fn default() -> Self { + Self { + community_pool_spend_proposals_enabled: true, + } + } +} diff --git a/crates/core/component/compact-block/Cargo.toml b/crates/core/component/compact-block/Cargo.toml index e6a5561e60..137438ddf6 100644 --- a/crates/core/component/compact-block/Cargo.toml +++ b/crates/core/component/compact-block/Cargo.toml @@ -31,7 +31,7 @@ penumbra-chain = { path = "../chain", default-features = false } penumbra-shielded-pool = { path = "../shielded-pool", default-features = false } penumbra-dex = { path = "../dex", default-features = false } penumbra-ibc = { path = "../ibc", default-features = false } -penumbra-dao = { path = "../dao", default-features = false } +penumbra-community-pool = { path = "../community-pool", default-features = false } penumbra-governance = { path = "../governance", default-features = false } penumbra-stake = { path = "../stake", default-features = false } penumbra-fee = { path = "../fee", default-features = false } diff --git a/crates/core/component/dao/src/action.rs b/crates/core/component/dao/src/action.rs deleted file mode 100644 index 92f9d5e096..0000000000 --- a/crates/core/component/dao/src/action.rs +++ /dev/null @@ -1,7 +0,0 @@ -mod dao_deposit; -mod dao_output; -mod dao_spend; - -pub use dao_deposit::DaoDeposit; -pub use dao_output::DaoOutput; -pub use dao_spend::DaoSpend; diff --git a/crates/core/component/dao/src/component.rs b/crates/core/component/dao/src/component.rs deleted file mode 100644 index 8e6e5d874b..0000000000 --- a/crates/core/component/dao/src/component.rs +++ /dev/null @@ -1,8 +0,0 @@ -/// The DAO isn't really a "component" because it doesn't really execute anything by itself. It's -/// just a collection of state that is modified by DaoSpend and DaoDeposit actions. -pub mod state_key; - -mod action_handler; -mod view; - -pub use view::{StateReadExt, StateWriteExt}; diff --git a/crates/core/component/dao/src/component/action_handler.rs b/crates/core/component/dao/src/component/action_handler.rs deleted file mode 100644 index ef085d7022..0000000000 --- a/crates/core/component/dao/src/component/action_handler.rs +++ /dev/null @@ -1,3 +0,0 @@ -mod dao_deposit; -mod dao_output; -mod dao_spend; diff --git a/crates/core/component/dao/src/component/state_key.rs b/crates/core/component/dao/src/component/state_key.rs deleted file mode 100644 index ace8c99aba..0000000000 --- a/crates/core/component/dao/src/component/state_key.rs +++ /dev/null @@ -1,18 +0,0 @@ -use penumbra_asset::asset; - -pub fn dao_params() -> &'static str { - "dao/params" -} - -pub fn dao_params_updated() -> &'static str { - "dao/dao_params_updated" -} - -pub fn balance_for_asset(asset_id: asset::Id) -> String { - format!("dao/asset/{asset_id}") -} - -pub fn all_assets_balance() -> &'static str { - // note: this must be the prefix of the above. - "dao/asset/" -} diff --git a/crates/core/component/dao/src/event.rs b/crates/core/component/dao/src/event.rs deleted file mode 100644 index 8dad9c00dd..0000000000 --- a/crates/core/component/dao/src/event.rs +++ /dev/null @@ -1,5 +0,0 @@ -// TODO: events for -// -// - dao spend -// - dao deposit -// ? diff --git a/crates/core/component/dao/src/params.rs b/crates/core/component/dao/src/params.rs deleted file mode 100644 index 8094816bad..0000000000 --- a/crates/core/component/dao/src/params.rs +++ /dev/null @@ -1,40 +0,0 @@ -use penumbra_proto::core::component::dao::v1alpha1 as pb; -use penumbra_proto::DomainType; -use serde::{Deserialize, Serialize}; - -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] -#[serde(try_from = "pb::DaoParameters", into = "pb::DaoParameters")] -pub struct DaoParameters { - /// Whether DAO spend proposals are enabled. - pub dao_spend_proposals_enabled: bool, -} - -impl DomainType for DaoParameters { - type Proto = pb::DaoParameters; -} - -impl TryFrom for DaoParameters { - type Error = anyhow::Error; - - fn try_from(msg: pb::DaoParameters) -> anyhow::Result { - Ok(DaoParameters { - dao_spend_proposals_enabled: msg.dao_spend_proposals_enabled, - }) - } -} - -impl From for pb::DaoParameters { - fn from(params: DaoParameters) -> Self { - pb::DaoParameters { - dao_spend_proposals_enabled: params.dao_spend_proposals_enabled, - } - } -} - -impl Default for DaoParameters { - fn default() -> Self { - Self { - dao_spend_proposals_enabled: true, - } - } -} diff --git a/crates/core/component/governance/Cargo.toml b/crates/core/component/governance/Cargo.toml index ce88d47211..06b893ae81 100644 --- a/crates/core/component/governance/Cargo.toml +++ b/crates/core/component/governance/Cargo.toml @@ -39,7 +39,7 @@ penumbra-proof-params = { path = "../../../crypto/proof-params", default-feature penumbra-sct = { path = "../sct", default-features = false } penumbra-shielded-pool = { path = "../shielded-pool", default-features = false } penumbra-stake = { path = "../stake", default-features = false } -penumbra-dao = { path = "../dao", default-features = false } +penumbra-community-pool = { path = "../community-pool", default-features = false } penumbra-fee = { path = "../fee", default-features = false } penumbra-ibc = { path = "../ibc", default-features = false } penumbra-distributions = { path = "../distributions", default-features = false } diff --git a/crates/core/component/governance/src/component/view.rs b/crates/core/component/governance/src/component/view.rs index 7bb10fe136..acbc6d0a8e 100644 --- a/crates/core/component/governance/src/component/view.rs +++ b/crates/core/component/governance/src/component/view.rs @@ -864,12 +864,12 @@ pub trait StateWriteExt: StateWrite { tracing::info!("app parameters update scheduled successfully"); } - ProposalPayload::DaoSpend { + ProposalPayload::CommunityPoolSpend { transaction_plan: _, } => { // All we need to do here is signal to the `App` that we'd like this transaction to // be slotted in at the end of the block: - self.deliver_dao_transaction(proposal_id).await?; + self.deliver_community_pool_transaction(proposal_id).await?; } ProposalPayload::UpgradePlan { height } => { tracing::info!(target_height = height, "upgrade plan proposal passed"); @@ -880,14 +880,17 @@ pub trait StateWriteExt: StateWrite { Ok(Ok(())) } - async fn deliver_dao_transaction(&mut self, proposal: u64) -> Result<()> { + async fn deliver_community_pool_transaction(&mut self, proposal: u64) -> Result<()> { // Schedule for beginning of next block let delivery_height = self.get_block_height().await? + 1; - tracing::info!(%proposal, %delivery_height, "scheduling DAO transaction for delivery at next block"); + tracing::info!(%proposal, %delivery_height, "scheduling Community Pool transaction for delivery at next block"); self.put_proto( - state_key::deliver_single_dao_transaction_at_height(delivery_height, proposal), + state_key::deliver_single_community_pool_transaction_at_height( + delivery_height, + proposal, + ), proposal, ); Ok(()) diff --git a/crates/core/component/governance/src/proposal.rs b/crates/core/component/governance/src/proposal.rs index deaca2ce95..3ea6bdab34 100644 --- a/crates/core/component/governance/src/proposal.rs +++ b/crates/core/component/governance/src/proposal.rs @@ -5,7 +5,7 @@ use std::str::FromStr; use crate::params::GovernanceParameters; use penumbra_chain::params::ChainParameters; -use penumbra_dao::params::DaoParameters; +use penumbra_community_pool::params::CommunityPoolParameters; use penumbra_distributions::params::DistributionsParameters; use penumbra_fee::params::FeeParameters; use penumbra_ibc::params::IBCParameters; @@ -68,8 +68,8 @@ impl From for pb::Proposal { new_parameters: Some((*new).into()), }); } - ProposalPayload::DaoSpend { transaction_plan } => { - proposal.dao_spend = Some(pb::proposal::DaoSpend { + ProposalPayload::CommunityPoolSpend { transaction_plan } => { + proposal.community_pool_spend = Some(pb::proposal::CommunityPoolSpend { transaction_plan: Some(pbjson_types::Any { type_url: TRANSACTION_PLAN_TYPE_URL.to_owned(), value: transaction_plan.into(), @@ -119,10 +119,10 @@ impl TryFrom for Proposal { .try_into()?, ), } - } else if let Some(dao_spend) = inner.dao_spend { - ProposalPayload::DaoSpend { + } else if let Some(community_pool_spend) = inner.community_pool_spend { + ProposalPayload::CommunityPoolSpend { transaction_plan: { - let transaction_plan = dao_spend + let transaction_plan = community_pool_spend .transaction_plan .ok_or_else(|| anyhow::anyhow!("missing transaction plan"))?; if transaction_plan.type_url != TRANSACTION_PLAN_TYPE_URL { @@ -196,9 +196,9 @@ pub enum ProposalKind { /// A parameter change proposal. #[cfg_attr(feature = "clap", clap(display_order = 300))] ParameterChange, - /// A DAO spend proposal. + /// A Community Pool spend proposal. #[cfg_attr(feature = "clap", clap(display_order = 400))] - DaoSpend, + CommunityPoolSpend, /// An upgrade proposal. #[cfg_attr(feature = "clap", clap(display_order = 500))] UpgradePlan, @@ -212,7 +212,7 @@ impl FromStr for ProposalKind { "signaling" => Ok(ProposalKind::Signaling), "emergency" => Ok(ProposalKind::Emergency), "parameterchange" => Ok(ProposalKind::ParameterChange), - "daospend" => Ok(ProposalKind::DaoSpend), + "communitypoolspend" => Ok(ProposalKind::CommunityPoolSpend), "upgrade_plan" => Ok(ProposalKind::UpgradePlan), _ => Err(anyhow::anyhow!("invalid proposal kind: {}", s)), } @@ -226,7 +226,7 @@ impl Proposal { ProposalPayload::Signaling { .. } => ProposalKind::Signaling, ProposalPayload::Emergency { .. } => ProposalKind::Emergency, ProposalPayload::ParameterChange { .. } => ProposalKind::ParameterChange, - ProposalPayload::DaoSpend { .. } => ProposalKind::DaoSpend, + ProposalPayload::CommunityPoolSpend { .. } => ProposalKind::CommunityPoolSpend, ProposalPayload::UpgradePlan { .. } => ProposalKind::UpgradePlan, } } @@ -263,13 +263,13 @@ pub enum ProposalPayload { /// passed. new: Box, }, - /// A DAO spend proposal describes proposed transaction(s) to be executed or cancelled at - /// specific heights, with the spend authority of the DAO. - DaoSpend { + /// A Community Pool spend proposal describes proposed transaction(s) to be executed or cancelled at + /// specific heights, with the spend authority of the Community Pool. + CommunityPoolSpend { /// The transaction plan to be executed at the time the proposal is passed. /// - /// This must be a transaction plan which can be executed by the DAO, which means it can't - /// require any witness data or authorization signatures, but it may use the `DaoSpend` + /// This must be a transaction plan which can be executed by the Community Pool, which means it can't + /// require any witness data or authorization signatures, but it may use the `CommunityPoolSpend` /// action. transaction_plan: Vec, }, @@ -292,7 +292,7 @@ pub enum ProposalPayloadToml { old: Box, new: Box, }, - DaoSpend { + CommunityPoolSpend { transaction: String, }, UpgradePlan { @@ -312,13 +312,18 @@ impl TryFrom for ProposalPayload { ProposalPayloadToml::ParameterChange { old, new } => { ProposalPayload::ParameterChange { old, new } } - ProposalPayloadToml::DaoSpend { transaction } => ProposalPayload::DaoSpend { - transaction_plan: Bytes::from( - base64::Engine::decode(&base64::engine::general_purpose::STANDARD, transaction) + ProposalPayloadToml::CommunityPoolSpend { transaction } => { + ProposalPayload::CommunityPoolSpend { + transaction_plan: Bytes::from( + base64::Engine::decode( + &base64::engine::general_purpose::STANDARD, + transaction, + ) .context("couldn't decode transaction plan from base64")?, - ) - .to_vec(), - }, + ) + .to_vec(), + } + } ProposalPayloadToml::UpgradePlan { height } => ProposalPayload::UpgradePlan { height }, }) } @@ -334,12 +339,14 @@ impl From for ProposalPayloadToml { ProposalPayload::ParameterChange { old, new } => { ProposalPayloadToml::ParameterChange { old, new } } - ProposalPayload::DaoSpend { transaction_plan } => ProposalPayloadToml::DaoSpend { - transaction: base64::Engine::encode( - &base64::engine::general_purpose::STANDARD, - transaction_plan, - ), - }, + ProposalPayload::CommunityPoolSpend { transaction_plan } => { + ProposalPayloadToml::CommunityPoolSpend { + transaction: base64::Engine::encode( + &base64::engine::general_purpose::STANDARD, + transaction_plan, + ), + } + } ProposalPayload::UpgradePlan { height } => ProposalPayloadToml::UpgradePlan { height }, } } @@ -358,8 +365,8 @@ impl ProposalPayload { matches!(self, ProposalPayload::ParameterChange { .. }) } - pub fn is_dao_spend(&self) -> bool { - matches!(self, ProposalPayload::DaoSpend { .. }) + pub fn is_community_pool_spend(&self) -> bool { + matches!(self, ProposalPayload::CommunityPoolSpend { .. }) } } @@ -375,7 +382,7 @@ impl ProposalPayload { )] pub struct ChangedAppParameters { pub chain_params: Option, - pub dao_params: Option, + pub community_pool_params: Option, pub distributions_params: Option, pub ibc_params: Option, pub stake_params: Option, @@ -393,7 +400,10 @@ impl TryFrom for ChangedAppParameters { fn try_from(msg: pb::ChangedAppParameters) -> anyhow::Result { Ok(ChangedAppParameters { chain_params: msg.chain_params.map(TryInto::try_into).transpose()?, - dao_params: msg.dao_params.map(TryInto::try_into).transpose()?, + community_pool_params: msg + .community_pool_params + .map(TryInto::try_into) + .transpose()?, distributions_params: msg .distributions_params .map(TryInto::try_into) @@ -410,7 +420,7 @@ impl From for pb::ChangedAppParameters { fn from(params: ChangedAppParameters) -> Self { pb::ChangedAppParameters { chain_params: params.chain_params.map(Into::into), - dao_params: params.dao_params.map(Into::into), + community_pool_params: params.community_pool_params.map(Into::into), distributions_params: params.distributions_params.map(Into::into), fee_params: params.fee_params.map(Into::into), governance_params: params.governance_params.map(Into::into), diff --git a/crates/core/component/governance/src/state_key.rs b/crates/core/component/governance/src/state_key.rs index ba3268e8d1..3afa6dc536 100644 --- a/crates/core/component/governance/src/state_key.rs +++ b/crates/core/component/governance/src/state_key.rs @@ -13,8 +13,8 @@ pub fn proposal_definition(proposal_id: u64) -> String { format!("governance/proposal/{proposal_id:020}/data") } -pub fn dao_transaction(proposal_id: u64) -> String { - format!("governance/proposal/{proposal_id:020}/dao_transaction") +pub fn community_pool_transaction(proposal_id: u64) -> String { + format!("governance/proposal/{proposal_id:020}/community_pool_transaction") } pub fn proposal_state(proposal_id: u64) -> String { @@ -108,13 +108,16 @@ pub fn all_untallied_delegator_votes() -> &'static str { "governance/untallied_delegator_vote/" } -pub fn deliver_single_dao_transaction_at_height(block_height: u64, proposal_id: u64) -> String { - format!("governance/deliver_dao_transactions/{block_height}/{proposal_id:020}") +pub fn deliver_single_community_pool_transaction_at_height( + block_height: u64, + proposal_id: u64, +) -> String { + format!("governance/deliver_community_pool_transactions/{block_height}/{proposal_id:020}") } -pub fn deliver_dao_transactions_at_height(block_height: u64) -> String { - // Note: this has to be the prefix of the `deliver_single_dao_transaction_at_height` function above. - format!("governance/deliver_dao_transactions/{block_height}/") +pub fn deliver_community_pool_transactions_at_height(block_height: u64) -> String { + // Note: this has to be the prefix of the `deliver_single_community_pool_transaction_at_height` function above. + format!("governance/deliver_community_pool_transactions/{block_height}/") } // This is in the app's JMT namespace, but governance needs to access diff --git a/crates/core/component/sct/src/source.rs b/crates/core/component/sct/src/source.rs index 3f999d7e05..5795586bc9 100644 --- a/crates/core/component/sct/src/source.rs +++ b/crates/core/component/sct/src/source.rs @@ -17,8 +17,8 @@ pub enum CommitmentSource { }, /// The commitment was created through a validator's funding stream. FundingStreamReward { epoch_index: u64 }, - /// The commitment was created through a `DaoOutput` in a governance-initated transaction. - DaoOutput, + /// The commitment was created through a `CommunityPoolOutput` in a governance-initated transaction. + CommunityPoolOutput, /// The commitment was created by an inbound ICS20 transfer. Ics20Transfer { /// The sequence number of the transfer packet. @@ -70,7 +70,9 @@ impl From for pb::CommitmentSource { CommitmentSource::FundingStreamReward { epoch_index } => { Source::FundingStreamReward(pbcs::FundingStreamReward { epoch_index }) } - CommitmentSource::DaoOutput => Source::DaoOutput(pbcs::DaoOutput {}), + CommitmentSource::CommunityPoolOutput => { + Source::CommunityPoolOutput(pbcs::CommunityPoolOutput {}) + } CommitmentSource::Ics20Transfer { packet_seq, channel_id, @@ -94,7 +96,7 @@ impl TryFrom for CommitmentSource { Ok(match source { Source::Genesis(_) => Self::Genesis, - Source::DaoOutput(_) => Self::DaoOutput, + Source::CommunityPoolOutput(_) => Self::CommunityPoolOutput, Source::FundingStreamReward(x) => Self::FundingStreamReward { epoch_index: x.epoch_index, }, diff --git a/crates/core/component/stake/Cargo.toml b/crates/core/component/stake/Cargo.toml index bb053bb6c5..bc0ee2d9a0 100644 --- a/crates/core/component/stake/Cargo.toml +++ b/crates/core/component/stake/Cargo.toml @@ -14,7 +14,7 @@ component = [ "penumbra-chain/component", "penumbra-sct/component", "penumbra-shielded-pool/component", - "penumbra-dao/component", + "penumbra-community-pool/component", "penumbra-distributions/component", "tokio", "im", @@ -42,7 +42,7 @@ cnidarium = { path = "../../../cnidarium", default-features = false, optional = cnidarium-component = { path = "../../../cnidarium-component", default-features = false, optional = true } penumbra-asset = { path = "../../../core/asset", default-features = false } penumbra-chain = { path = "../chain", default-features = false } -penumbra-dao = { path = "../dao", default-features = false } +penumbra-community-pool = { path = "../community-pool", default-features = false } penumbra-distributions = { path = "../distributions", default-features = false } penumbra-keys = { path = "../../../core/keys", default-features = false } penumbra-effecthash = { path = "../../../core/effecthash", default-features = false } diff --git a/crates/core/component/stake/src/component.rs b/crates/core/component/stake/src/component.rs index a470443d10..9afbfaba6b 100644 --- a/crates/core/component/stake/src/component.rs +++ b/crates/core/component/stake/src/component.rs @@ -21,7 +21,7 @@ use penumbra_chain::{ component::{StateReadExt as _, StateWriteExt as _}, Epoch, }; -use penumbra_dao::component::StateWriteExt as _; +use penumbra_community_pool::component::StateWriteExt as _; use cnidarium::{StateRead, StateWrite}; use penumbra_distributions::component::StateReadExt as _; @@ -508,9 +508,9 @@ pub(crate) trait StakingImpl: StateWriteExt { ) .await?; } - // If the recipient is the DAO, deposit the funds into the DAO - Recipient::Dao => { - self.dao_deposit(Value { + // If the recipient is the Community Pool, deposit the funds into the Community Pool + Recipient::CommunityPool => { + self.community_pool_deposit(Value { amount: commission_reward_amount.into(), asset_id: *STAKING_TOKEN_ASSET_ID, }) diff --git a/crates/core/component/stake/src/funding_stream.rs b/crates/core/component/stake/src/funding_stream.rs index ed8bbf1233..73a8dcad4f 100644 --- a/crates/core/component/stake/src/funding_stream.rs +++ b/crates/core/component/stake/src/funding_stream.rs @@ -18,7 +18,7 @@ pub enum FundingStream { /// validator's total staking reward that goes to this funding stream. rate_bps: u16, }, - ToDao { + ToCommunityPool { /// The portion (in terms of [basis points](https://en.wikipedia.org/wiki/Basis_point)) of the /// validator's total staking reward that goes to this funding stream. rate_bps: u16, @@ -29,21 +29,21 @@ pub enum FundingStream { #[derive(Debug, PartialEq, Eq, Clone, Copy)] pub enum Recipient { Address(Address), - Dao, + CommunityPool, } impl FundingStream { pub fn rate_bps(&self) -> u16 { match self { FundingStream::ToAddress { rate_bps, .. } => *rate_bps, - FundingStream::ToDao { rate_bps } => *rate_bps, + FundingStream::ToCommunityPool { rate_bps } => *rate_bps, } } pub fn recipient(&self) -> Recipient { match self { FundingStream::ToAddress { address, .. } => Recipient::Address(*address), - FundingStream::ToDao { .. } => Recipient::Dao, + FundingStream::ToCommunityPool { .. } => Recipient::CommunityPool, } } } @@ -83,11 +83,13 @@ impl From for pb::FundingStream { rate_bps: rate_bps.into(), }), ), - FundingStream::ToDao { rate_bps } => Some(pb::funding_stream::Recipient::ToDao( - pb::funding_stream::ToDao { - rate_bps: rate_bps.into(), - }, - )), + FundingStream::ToCommunityPool { rate_bps } => { + Some(pb::funding_stream::Recipient::ToCommunityPool( + pb::funding_stream::ToCommunityPool { + rate_bps: rate_bps.into(), + }, + )) + } }, } } @@ -115,15 +117,15 @@ impl TryFrom for FundingStream { } Ok(FundingStream::ToAddress { address, rate_bps }) } - pb::funding_stream::Recipient::ToDao(to_dao) => { - let rate_bps = to_dao + pb::funding_stream::Recipient::ToCommunityPool(to_community_pool) => { + let rate_bps = to_community_pool .rate_bps .try_into() .map_err(|e| anyhow::anyhow!("invalid funding stream rate: {}", e))?; if rate_bps > 10_000 { anyhow::bail!("funding stream rate exceeds 100% (10,000bps)"); } - Ok(FundingStream::ToDao { rate_bps }) + Ok(FundingStream::ToCommunityPool { rate_bps }) } } } diff --git a/crates/core/component/stake/src/validator.rs b/crates/core/component/stake/src/validator.rs index 970ad3e7ff..ab45ea3e8c 100644 --- a/crates/core/component/stake/src/validator.rs +++ b/crates/core/component/stake/src/validator.rs @@ -163,16 +163,15 @@ pub enum FundingStreamToml { address: Address, rate_bps: u16, }, - Dao { - recipient: DAO, + CommunityPool { + recipient: CommunityPool, rate_bps: u16, }, } -// Unit struct solely to add a `recipient = "DAO"` field to the TOML representation -#[allow(non_camel_case_types)] // no way to use `rename` with `serde_unit_struct` +// Unit struct solely to add a `recipient = "CommunityPool"` field to the TOML representation #[derive(Debug, PartialEq, Eq, Clone, Deserialize_unit_struct, Serialize_unit_struct)] -pub struct DAO; +pub struct CommunityPool; impl From for FundingStreamToml { fn from(f: FundingStream) -> Self { @@ -180,9 +179,9 @@ impl From for FundingStreamToml { FundingStream::ToAddress { address, rate_bps } => { FundingStreamToml::Address { address, rate_bps } } - FundingStream::ToDao { rate_bps } => FundingStreamToml::Dao { + FundingStream::ToCommunityPool { rate_bps } => FundingStreamToml::CommunityPool { rate_bps, - recipient: DAO, + recipient: CommunityPool, }, } } @@ -194,7 +193,9 @@ impl From for FundingStream { FundingStreamToml::Address { address, rate_bps } => { FundingStream::ToAddress { address, rate_bps } } - FundingStreamToml::Dao { rate_bps, .. } => FundingStream::ToDao { rate_bps }, + FundingStreamToml::CommunityPool { rate_bps, .. } => { + FundingStream::ToCommunityPool { rate_bps } + } } } } diff --git a/crates/core/transaction/Cargo.toml b/crates/core/transaction/Cargo.toml index 7b82173a02..09517a71dd 100644 --- a/crates/core/transaction/Cargo.toml +++ b/crates/core/transaction/Cargo.toml @@ -16,7 +16,7 @@ penumbra-shielded-pool = { path = "../component/shielded-pool/", default-feature penumbra-sct = { path = "../component/sct/", default-features = false } penumbra-stake = { path = "../component/stake", default-features = false } penumbra-ibc = { path = "../component/ibc/", default-features = false } -penumbra-dao = { path = "../component/dao/", default-features = false } +penumbra-community-pool = { path = "../component/community-pool/", default-features = false } penumbra-dex = { path = "../component/dex/", default-features = false } penumbra-fee = { path = "../component/fee/", default-features = false } penumbra-num = { path = "../num", default-features = false } diff --git a/crates/core/transaction/src/action.rs b/crates/core/transaction/src/action.rs index 486ec730d8..de2667d639 100644 --- a/crates/core/transaction/src/action.rs +++ b/crates/core/transaction/src/action.rs @@ -36,9 +36,9 @@ pub enum Action { Ics20Withdrawal(penumbra_shielded_pool::Ics20Withdrawal), - DaoSpend(penumbra_dao::DaoSpend), - DaoOutput(penumbra_dao::DaoOutput), - DaoDeposit(penumbra_dao::DaoDeposit), + CommunityPoolSpend(penumbra_community_pool::CommunityPoolSpend), + CommunityPoolOutput(penumbra_community_pool::CommunityPoolOutput), + CommunityPoolDeposit(penumbra_community_pool::CommunityPoolDeposit), } impl EffectingData for Action { @@ -63,9 +63,9 @@ impl EffectingData for Action { Action::PositionWithdraw(p) => p.effect_hash(), Action::PositionRewardClaim(p) => p.effect_hash(), Action::Ics20Withdrawal(w) => w.effect_hash(), - Action::DaoSpend(d) => d.effect_hash(), - Action::DaoOutput(d) => d.effect_hash(), - Action::DaoDeposit(d) => d.effect_hash(), + Action::CommunityPoolSpend(d) => d.effect_hash(), + Action::CommunityPoolOutput(d) => d.effect_hash(), + Action::CommunityPoolDeposit(d) => d.effect_hash(), } } } @@ -110,9 +110,9 @@ impl Action { Action::Undelegate(_) => tracing::info_span!("Undelegate", ?idx), Action::UndelegateClaim(_) => tracing::info_span!("UndelegateClaim", ?idx), Action::Ics20Withdrawal(_) => tracing::info_span!("Ics20Withdrawal", ?idx), - Action::DaoDeposit(_) => tracing::info_span!("DaoDeposit", ?idx), - Action::DaoSpend(_) => tracing::info_span!("DaoSpend", ?idx), - Action::DaoOutput(_) => tracing::info_span!("DaoOutput", ?idx), + Action::CommunityPoolDeposit(_) => tracing::info_span!("CommunityPoolDeposit", ?idx), + Action::CommunityPoolSpend(_) => tracing::info_span!("CommunityPoolSpend", ?idx), + Action::CommunityPoolOutput(_) => tracing::info_span!("CommunityPoolOutput", ?idx), } } } @@ -137,9 +137,9 @@ impl IsAction for Action { Action::PositionWithdraw(p) => p.balance_commitment(), Action::PositionRewardClaim(p) => p.balance_commitment(), Action::Ics20Withdrawal(withdrawal) => withdrawal.balance_commitment(), - Action::DaoDeposit(deposit) => deposit.balance_commitment(), - Action::DaoSpend(spend) => spend.balance_commitment(), - Action::DaoOutput(output) => output.balance_commitment(), + Action::CommunityPoolDeposit(deposit) => deposit.balance_commitment(), + Action::CommunityPoolSpend(spend) => spend.balance_commitment(), + Action::CommunityPoolOutput(output) => output.balance_commitment(), // These actions just post Protobuf data to the chain, and leave the // value balance unchanged. Action::IbcRelay(x) => x.balance_commitment(), @@ -166,9 +166,9 @@ impl IsAction for Action { Action::PositionWithdraw(x) => x.view_from_perspective(txp), Action::PositionRewardClaim(x) => x.view_from_perspective(txp), Action::Ics20Withdrawal(x) => x.view_from_perspective(txp), - Action::DaoSpend(x) => x.view_from_perspective(txp), - Action::DaoOutput(x) => x.view_from_perspective(txp), - Action::DaoDeposit(x) => x.view_from_perspective(txp), + Action::CommunityPoolSpend(x) => x.view_from_perspective(txp), + Action::CommunityPoolOutput(x) => x.view_from_perspective(txp), + Action::CommunityPoolDeposit(x) => x.view_from_perspective(txp), // TODO: figure out where to implement the actual decryption methods for these? where are their action definitions? Action::ValidatorDefinition(x) => ActionView::ValidatorDefinition(x.to_owned()), Action::IbcRelay(x) => ActionView::IbcRelay(x.to_owned()), @@ -240,14 +240,14 @@ impl From for pb::Action { Action::Ics20Withdrawal(withdrawal) => pb::Action { action: Some(pb::action::Action::Ics20Withdrawal(withdrawal.into())), }, - Action::DaoSpend(inner) => pb::Action { - action: Some(pb::action::Action::DaoSpend(inner.into())), + Action::CommunityPoolSpend(inner) => pb::Action { + action: Some(pb::action::Action::CommunityPoolSpend(inner.into())), }, - Action::DaoOutput(inner) => pb::Action { - action: Some(pb::action::Action::DaoOutput(inner.into())), + Action::CommunityPoolOutput(inner) => pb::Action { + action: Some(pb::action::Action::CommunityPoolOutput(inner.into())), }, - Action::DaoDeposit(inner) => pb::Action { - action: Some(pb::action::Action::DaoDeposit(inner.into())), + Action::CommunityPoolDeposit(inner) => pb::Action { + action: Some(pb::action::Action::CommunityPoolDeposit(inner.into())), }, } } @@ -305,9 +305,15 @@ impl TryFrom for Action { pb::action::Action::Ics20Withdrawal(inner) => { Ok(Action::Ics20Withdrawal(inner.try_into()?)) } - pb::action::Action::DaoSpend(inner) => Ok(Action::DaoSpend(inner.try_into()?)), - pb::action::Action::DaoOutput(inner) => Ok(Action::DaoOutput(inner.try_into()?)), - pb::action::Action::DaoDeposit(inner) => Ok(Action::DaoDeposit(inner.try_into()?)), + pb::action::Action::CommunityPoolSpend(inner) => { + Ok(Action::CommunityPoolSpend(inner.try_into()?)) + } + pb::action::Action::CommunityPoolOutput(inner) => { + Ok(Action::CommunityPoolOutput(inner.try_into()?)) + } + pb::action::Action::CommunityPoolDeposit(inner) => { + Ok(Action::CommunityPoolDeposit(inner.try_into()?)) + } } } } diff --git a/crates/core/transaction/src/gas.rs b/crates/core/transaction/src/gas.rs index 9876069885..fb8e23aa15 100644 --- a/crates/core/transaction/src/gas.rs +++ b/crates/core/transaction/src/gas.rs @@ -1,5 +1,5 @@ use penumbra_chain::params::ChainParameters; -use penumbra_dao::{DaoDeposit, DaoOutput, DaoSpend}; +use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; use penumbra_dex::{ PositionClose, PositionOpen, PositionRewardClaim, PositionWithdraw, Swap, SwapClaim, }; @@ -260,9 +260,9 @@ impl GasCost for ActionPlan { ActionPlan::PositionClose(pc) => pc.gas_cost(), ActionPlan::PositionWithdraw(_) => position_withdraw_gas_cost(), ActionPlan::PositionRewardClaim(_) => position_reward_claim_gas_cost(), - ActionPlan::DaoSpend(ds) => ds.gas_cost(), - ActionPlan::DaoOutput(d) => d.gas_cost(), - ActionPlan::DaoDeposit(dd) => dd.gas_cost(), + ActionPlan::CommunityPoolSpend(ds) => ds.gas_cost(), + ActionPlan::CommunityPoolOutput(d) => d.gas_cost(), + ActionPlan::CommunityPoolDeposit(dd) => dd.gas_cost(), ActionPlan::Withdrawal(w) => w.gas_cost(), } } @@ -288,9 +288,9 @@ impl GasCost for Action { Action::PositionWithdraw(p) => p.gas_cost(), Action::PositionRewardClaim(p) => p.gas_cost(), Action::Ics20Withdrawal(withdrawal) => withdrawal.gas_cost(), - Action::DaoDeposit(deposit) => deposit.gas_cost(), - Action::DaoSpend(spend) => spend.gas_cost(), - Action::DaoOutput(output) => output.gas_cost(), + Action::CommunityPoolDeposit(deposit) => deposit.gas_cost(), + Action::CommunityPoolSpend(spend) => spend.gas_cost(), + Action::CommunityPoolOutput(output) => output.gas_cost(), Action::IbcRelay(x) => x.gas_cost(), Action::ValidatorDefinition(x) => x.gas_cost(), } @@ -487,7 +487,7 @@ impl GasCost for Ics20Withdrawal { } } -impl GasCost for DaoDeposit { +impl GasCost for CommunityPoolDeposit { fn gas_cost(&self) -> Gas { Gas { // Each [`Action`] has a `0` `block_space` cost, since the [`Transaction`] itself @@ -495,7 +495,7 @@ impl GasCost for DaoDeposit { block_space: 0, // The compact block space cost is based on the byte size of the data the [`Action`] adds // to the compact block. - // For a DaoDeposit the compact block is not modified. + // For a CommunityPoolDeposit the compact block is not modified. compact_block_space: 0u64, // Does not include a zk-SNARK proof, so there's no verification cost. verification: 0, @@ -505,7 +505,7 @@ impl GasCost for DaoDeposit { } } -impl GasCost for DaoSpend { +impl GasCost for CommunityPoolSpend { fn gas_cost(&self) -> Gas { Gas { // Each [`Action`] has a `0` `block_space` cost, since the [`Transaction`] itself @@ -513,7 +513,7 @@ impl GasCost for DaoSpend { block_space: 0, // The compact block space cost is based on the byte size of the data the [`Action`] adds // to the compact block. - // For a DaoSpend the compact block is not modified. + // For a CommunityPoolSpend the compact block is not modified. compact_block_space: 0u64, // Does not include a zk-SNARK proof, so there's no verification cost. verification: 0, @@ -523,9 +523,9 @@ impl GasCost for DaoSpend { } } -impl GasCost for DaoOutput { +impl GasCost for CommunityPoolOutput { fn gas_cost(&self) -> Gas { - // We hardcode the gas costs of a `DaoOutput` to 0, since it's a protocol action. + // We hardcode the gas costs of a `CommunityPoolOutput` to 0, since it's a protocol action. Gas { block_space: 0, compact_block_space: 0, diff --git a/crates/core/transaction/src/is_action.rs b/crates/core/transaction/src/is_action.rs index 2f388c3f8b..6e0ee23498 100644 --- a/crates/core/transaction/src/is_action.rs +++ b/crates/core/transaction/src/is_action.rs @@ -1,7 +1,7 @@ use ark_ff::Zero; use decaf377::Fr; use penumbra_asset::{balance, Value}; -use penumbra_dao::{DaoDeposit, DaoOutput, DaoSpend}; +use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; use penumbra_dex::{ lp::{ action::{PositionClose, PositionOpen, PositionRewardClaim, PositionWithdraw}, @@ -215,34 +215,34 @@ impl IsAction for Ics20Withdrawal { } } -impl IsAction for DaoDeposit { +impl IsAction for CommunityPoolDeposit { fn balance_commitment(&self) -> balance::Commitment { self.balance().commit(Fr::zero()) } fn view_from_perspective(&self, _txp: &TransactionPerspective) -> ActionView { - ActionView::DaoDeposit(self.clone()) + ActionView::CommunityPoolDeposit(self.clone()) } } -impl IsAction for DaoOutput { +impl IsAction for CommunityPoolOutput { fn balance_commitment(&self) -> balance::Commitment { - // Outputs from the DAO require value + // Outputs from the Community Pool require value self.balance().commit(Fr::zero()) } fn view_from_perspective(&self, _txp: &TransactionPerspective) -> ActionView { - ActionView::DaoOutput(self.clone()) + ActionView::CommunityPoolOutput(self.clone()) } } -impl IsAction for DaoSpend { +impl IsAction for CommunityPoolSpend { fn balance_commitment(&self) -> balance::Commitment { self.balance().commit(Fr::zero()) } fn view_from_perspective(&self, _txp: &TransactionPerspective) -> ActionView { - ActionView::DaoSpend(self.clone()) + ActionView::CommunityPoolSpend(self.clone()) } } diff --git a/crates/core/transaction/src/plan.rs b/crates/core/transaction/src/plan.rs index 62a4f3ee25..8c04c321f0 100644 --- a/crates/core/transaction/src/plan.rs +++ b/crates/core/transaction/src/plan.rs @@ -2,7 +2,7 @@ //! creation. use anyhow::Result; -use penumbra_dao::{DaoDeposit, DaoOutput, DaoSpend}; +use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; use penumbra_dex::{ lp::action::{PositionClose, PositionOpen}, lp::plan::PositionWithdrawPlan, @@ -253,9 +253,9 @@ impl TransactionPlan { }) } - pub fn dao_spends(&self) -> impl Iterator { + pub fn community_pool_spends(&self) -> impl Iterator { self.actions.iter().filter_map(|action| { - if let ActionPlan::DaoSpend(v) = action { + if let ActionPlan::CommunityPoolSpend(v) = action { Some(v) } else { None @@ -263,9 +263,9 @@ impl TransactionPlan { }) } - pub fn dao_deposits(&self) -> impl Iterator { + pub fn community_pool_deposits(&self) -> impl Iterator { self.actions.iter().filter_map(|action| { - if let ActionPlan::DaoDeposit(v) = action { + if let ActionPlan::CommunityPoolDeposit(v) = action { Some(v) } else { None @@ -273,9 +273,9 @@ impl TransactionPlan { }) } - pub fn dao_outputs(&self) -> impl Iterator { + pub fn community_pool_outputs(&self) -> impl Iterator { self.actions.iter().filter_map(|action| { - if let ActionPlan::DaoOutput(v) = action { + if let ActionPlan::CommunityPoolOutput(v) = action { Some(v) } else { None diff --git a/crates/core/transaction/src/plan/action.rs b/crates/core/transaction/src/plan/action.rs index 63655303e1..2558c462e6 100644 --- a/crates/core/transaction/src/plan/action.rs +++ b/crates/core/transaction/src/plan/action.rs @@ -4,7 +4,7 @@ use anyhow::{anyhow, Context, Result}; use ark_ff::Zero; use decaf377::Fr; use penumbra_asset::Balance; -use penumbra_dao::{DaoDeposit, DaoOutput, DaoSpend}; +use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; use penumbra_effecthash::{EffectHash, EffectingData}; use penumbra_dex::{ @@ -73,9 +73,9 @@ pub enum ActionPlan { // must be used. PositionRewardClaim(PositionRewardClaimPlan), - DaoSpend(DaoSpend), - DaoOutput(DaoOutput), - DaoDeposit(DaoDeposit), + CommunityPoolSpend(CommunityPoolSpend), + CommunityPoolOutput(CommunityPoolOutput), + CommunityPoolDeposit(CommunityPoolDeposit), Withdrawal(Ics20Withdrawal), } @@ -155,9 +155,9 @@ impl ActionPlan { PositionRewardClaim(_plan) => unimplemented!( "this api is wrong and needs to be fixed, but we don't do reward claims anyways" ), - DaoSpend(plan) => Action::DaoSpend(plan.clone()), - DaoOutput(plan) => Action::DaoOutput(plan.clone()), - DaoDeposit(plan) => Action::DaoDeposit(plan.clone()), + CommunityPoolSpend(plan) => Action::CommunityPoolSpend(plan.clone()), + CommunityPoolOutput(plan) => Action::CommunityPoolOutput(plan.clone()), + CommunityPoolDeposit(plan) => Action::CommunityPoolDeposit(plan.clone()), // Fixme: action name Withdrawal(plan) => Action::Ics20Withdrawal(plan.clone()), }) @@ -178,9 +178,9 @@ impl ActionPlan { ProposalWithdraw(proposal_withdraw) => proposal_withdraw.balance(), ProposalDepositClaim(proposal_deposit_claim) => proposal_deposit_claim.balance(), DelegatorVote(delegator_vote) => delegator_vote.balance(), - DaoSpend(dao_spend) => dao_spend.balance(), - DaoOutput(dao_output) => dao_output.balance(), - DaoDeposit(dao_deposit) => dao_deposit.balance(), + CommunityPoolSpend(community_pool_spend) => community_pool_spend.balance(), + CommunityPoolOutput(community_pool_output) => community_pool_output.balance(), + CommunityPoolDeposit(community_pool_deposit) => community_pool_deposit.balance(), PositionOpen(position_open) => position_open.balance(), PositionClose(position_close) => position_close.balance(), PositionWithdraw(position_withdraw) => position_withdraw.balance(), @@ -213,9 +213,9 @@ impl ActionPlan { PositionClose(_) => Fr::zero(), PositionWithdraw(_) => Fr::zero(), PositionRewardClaim(_) => Fr::zero(), - DaoSpend(_) => Fr::zero(), - DaoOutput(_) => Fr::zero(), - DaoDeposit(_) => Fr::zero(), + CommunityPoolSpend(_) => Fr::zero(), + CommunityPoolOutput(_) => Fr::zero(), + CommunityPoolDeposit(_) => Fr::zero(), Withdrawal(_) => Fr::zero(), } } @@ -243,9 +243,9 @@ impl ActionPlan { PositionClose(plan) => plan.effect_hash(), PositionWithdraw(plan) => plan.position_withdraw().effect_hash(), PositionRewardClaim(_plan) => todo!("position reward claim plan is not implemented"), - DaoSpend(plan) => plan.effect_hash(), - DaoOutput(plan) => plan.effect_hash(), - DaoDeposit(plan) => plan.effect_hash(), + CommunityPoolSpend(plan) => plan.effect_hash(), + CommunityPoolOutput(plan) => plan.effect_hash(), + CommunityPoolDeposit(plan) => plan.effect_hash(), Withdrawal(plan) => plan.effect_hash(), } } @@ -416,14 +416,16 @@ impl From for pb_t::ActionPlan { ActionPlan::PositionRewardClaim(inner) => pb_t::ActionPlan { action: Some(pb_t::action_plan::Action::PositionRewardClaim(inner.into())), }, - ActionPlan::DaoDeposit(inner) => pb_t::ActionPlan { - action: Some(pb_t::action_plan::Action::DaoDeposit(inner.into())), + ActionPlan::CommunityPoolDeposit(inner) => pb_t::ActionPlan { + action: Some(pb_t::action_plan::Action::CommunityPoolDeposit( + inner.into(), + )), }, - ActionPlan::DaoSpend(inner) => pb_t::ActionPlan { - action: Some(pb_t::action_plan::Action::DaoSpend(inner.into())), + ActionPlan::CommunityPoolSpend(inner) => pb_t::ActionPlan { + action: Some(pb_t::action_plan::Action::CommunityPoolSpend(inner.into())), }, - ActionPlan::DaoOutput(inner) => pb_t::ActionPlan { - action: Some(pb_t::action_plan::Action::DaoOutput(inner.into())), + ActionPlan::CommunityPoolOutput(inner) => pb_t::ActionPlan { + action: Some(pb_t::action_plan::Action::CommunityPoolOutput(inner.into())), }, ActionPlan::Withdrawal(inner) => pb_t::ActionPlan { action: Some(pb_t::action_plan::Action::Withdrawal(inner.into())), @@ -492,14 +494,14 @@ impl TryFrom for ActionPlan { pb_t::action_plan::Action::PositionRewardClaim(inner) => { Ok(ActionPlan::PositionRewardClaim(inner.try_into()?)) } - pb_t::action_plan::Action::DaoSpend(inner) => { - Ok(ActionPlan::DaoSpend(inner.try_into()?)) + pb_t::action_plan::Action::CommunityPoolSpend(inner) => { + Ok(ActionPlan::CommunityPoolSpend(inner.try_into()?)) } - pb_t::action_plan::Action::DaoDeposit(inner) => { - Ok(ActionPlan::DaoDeposit(inner.try_into()?)) + pb_t::action_plan::Action::CommunityPoolDeposit(inner) => { + Ok(ActionPlan::CommunityPoolDeposit(inner.try_into()?)) } - pb_t::action_plan::Action::DaoOutput(inner) => { - Ok(ActionPlan::DaoOutput(inner.try_into()?)) + pb_t::action_plan::Action::CommunityPoolOutput(inner) => { + Ok(ActionPlan::CommunityPoolOutput(inner.try_into()?)) } pb_t::action_plan::Action::Withdrawal(inner) => { Ok(ActionPlan::Withdrawal(inner.try_into()?)) diff --git a/crates/core/transaction/src/transaction.rs b/crates/core/transaction/src/transaction.rs index b17f98bf5b..f7f3cf67a0 100644 --- a/crates/core/transaction/src/transaction.rs +++ b/crates/core/transaction/src/transaction.rs @@ -8,7 +8,7 @@ use ark_ff::Zero; use decaf377::Fr; use decaf377_rdsa::{Binding, Signature, VerificationKey, VerificationKeyBytes}; use penumbra_chain::TransactionContext; -use penumbra_dao::{DaoDeposit, DaoOutput, DaoSpend}; +use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; use penumbra_dex::{ lp::action::{PositionClose, PositionOpen}, swap::Swap, @@ -237,9 +237,9 @@ impl Transaction { | Action::PositionWithdraw(_) | Action::PositionRewardClaim(_) | Action::Ics20Withdrawal(_) - | Action::DaoSpend(_) - | Action::DaoOutput(_) - | Action::DaoDeposit(_) => {} + | Action::CommunityPoolSpend(_) + | Action::CommunityPoolOutput(_) + | Action::CommunityPoolDeposit(_) => {} } } @@ -463,9 +463,9 @@ impl Transaction { .filter_map(|x| x) } - pub fn dao_deposits(&self) -> impl Iterator { + pub fn community_pool_deposits(&self) -> impl Iterator { self.actions().filter_map(|action| { - if let Action::DaoDeposit(d) = action { + if let Action::CommunityPoolDeposit(d) = action { Some(d) } else { None @@ -473,9 +473,9 @@ impl Transaction { }) } - pub fn dao_spends(&self) -> impl Iterator { + pub fn community_pool_spends(&self) -> impl Iterator { self.actions().filter_map(|action| { - if let Action::DaoSpend(s) = action { + if let Action::CommunityPoolSpend(s) = action { Some(s) } else { None @@ -493,9 +493,9 @@ impl Transaction { }) } - pub fn dao_outputs(&self) -> impl Iterator { + pub fn community_pool_outputs(&self) -> impl Iterator { self.actions().filter_map(|action| { - if let Action::DaoOutput(o) = action { + if let Action::CommunityPoolOutput(o) = action { Some(o) } else { None diff --git a/crates/core/transaction/src/view/action_view.rs b/crates/core/transaction/src/view/action_view.rs index e8e3dc6419..fde65cb2bc 100644 --- a/crates/core/transaction/src/view/action_view.rs +++ b/crates/core/transaction/src/view/action_view.rs @@ -1,4 +1,4 @@ -use penumbra_dao::{DaoDeposit, DaoOutput, DaoSpend}; +use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; use penumbra_dex::{ lp::action::{PositionClose, PositionOpen, PositionRewardClaim, PositionWithdraw}, swap::SwapView, @@ -42,9 +42,9 @@ pub enum ActionView { Undelegate(Undelegate), UndelegateClaim(UndelegateClaim), Ics20Withdrawal(Ics20Withdrawal), - DaoDeposit(DaoDeposit), - DaoSpend(DaoSpend), - DaoOutput(DaoOutput), + CommunityPoolDeposit(CommunityPoolDeposit), + CommunityPoolSpend(CommunityPoolSpend), + CommunityPoolOutput(CommunityPoolOutput), } impl DomainType for ActionView { @@ -80,9 +80,9 @@ impl TryFrom for ActionView { AV::PositionWithdraw(x) => ActionView::PositionWithdraw(x.try_into()?), AV::PositionRewardClaim(x) => ActionView::PositionRewardClaim(x.try_into()?), AV::Ics20Withdrawal(x) => ActionView::Ics20Withdrawal(x.try_into()?), - AV::DaoDeposit(x) => ActionView::DaoDeposit(x.try_into()?), - AV::DaoSpend(x) => ActionView::DaoSpend(x.try_into()?), - AV::DaoOutput(x) => ActionView::DaoOutput(x.try_into()?), + AV::CommunityPoolDeposit(x) => ActionView::CommunityPoolDeposit(x.try_into()?), + AV::CommunityPoolSpend(x) => ActionView::CommunityPoolSpend(x.try_into()?), + AV::CommunityPoolOutput(x) => ActionView::CommunityPoolOutput(x.try_into()?), }, ) } @@ -112,9 +112,9 @@ impl From for pbt::ActionView { ActionView::PositionWithdraw(x) => AV::PositionWithdraw(x.into()), ActionView::PositionRewardClaim(x) => AV::PositionRewardClaim(x.into()), ActionView::Ics20Withdrawal(x) => AV::Ics20Withdrawal(x.into()), - ActionView::DaoDeposit(x) => AV::DaoDeposit(x.into()), - ActionView::DaoSpend(x) => AV::DaoSpend(x.into()), - ActionView::DaoOutput(x) => AV::DaoOutput(x.into()), + ActionView::CommunityPoolDeposit(x) => AV::CommunityPoolDeposit(x.into()), + ActionView::CommunityPoolSpend(x) => AV::CommunityPoolSpend(x.into()), + ActionView::CommunityPoolOutput(x) => AV::CommunityPoolOutput(x.into()), }), } } @@ -142,9 +142,9 @@ impl From for Action { ActionView::PositionWithdraw(x) => Action::PositionWithdraw(x), ActionView::PositionRewardClaim(x) => Action::PositionRewardClaim(x), ActionView::Ics20Withdrawal(x) => Action::Ics20Withdrawal(x), - ActionView::DaoDeposit(x) => Action::DaoDeposit(x), - ActionView::DaoSpend(x) => Action::DaoSpend(x), - ActionView::DaoOutput(x) => Action::DaoOutput(x), + ActionView::CommunityPoolDeposit(x) => Action::CommunityPoolDeposit(x), + ActionView::CommunityPoolSpend(x) => Action::CommunityPoolSpend(x), + ActionView::CommunityPoolOutput(x) => Action::CommunityPoolOutput(x), } } } diff --git a/crates/crypto/proof-setup/Cargo.toml b/crates/crypto/proof-setup/Cargo.toml index fd41765527..dbbc3483ca 100644 --- a/crates/crypto/proof-setup/Cargo.toml +++ b/crates/crypto/proof-setup/Cargo.toml @@ -15,12 +15,16 @@ blake2b_simd = "0.5" rand_core = { version = "0.6", features = ["getrandom"] } decaf377 = { version = "0.5", default_features = false } penumbra-dex = { path = "../../core/component/dex/" } -penumbra-dao = { path = "../../core/component/dao/", features = ["component"] } +penumbra-community-pool = { path = "../../core/component/community-pool/", features = [ + "component", +] } penumbra-governance = { path = "../../core/component/governance/" } penumbra-proof-params = { path = "../proof-params" } penumbra-proto = { path = "../../proto" } penumbra-shielded-pool = { path = "../../core/component/shielded-pool/" } -penumbra-stake = { path = "../../core/component/stake/", features = ["component"] } +penumbra-stake = { path = "../../core/component/stake/", features = [ + "component", +] } rayon = { version = "1.8.0", optional = true } [dev-dependencies] @@ -37,4 +41,11 @@ harness = false [features] default = [] -parallel = ["ark-ec/parallel", "ark-ff/parallel", "ark-groth16/parallel", "decaf377/parallel", "rayon", "penumbra-shielded-pool/parallel"] +parallel = [ + "ark-ec/parallel", + "ark-ff/parallel", + "ark-groth16/parallel", + "decaf377/parallel", + "rayon", + "penumbra-shielded-pool/parallel", +] diff --git a/crates/proto/src/gen/penumbra.core.app.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.app.v1alpha1.rs index 03b31b0207..a07aec71e3 100644 --- a/crates/proto/src/gen/penumbra.core.app.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.core.app.v1alpha1.rs @@ -22,9 +22,7 @@ impl ::prost::Name for TransactionsByHeightRequest { pub struct TransactionsByHeightResponse { /// The transactions. #[prost(message, repeated, tag = "1")] - pub transactions: ::prost::alloc::vec::Vec< - super::super::transaction::v1alpha1::Transaction, - >, + pub transactions: ::prost::alloc::vec::Vec, /// The block height. #[prost(uint64, tag = "2")] pub block_height: u64, @@ -41,34 +39,27 @@ impl ::prost::Name for TransactionsByHeightResponse { pub struct AppParameters { /// Chain module parameters. #[prost(message, optional, tag = "1")] - pub chain_params: ::core::option::Option< - super::super::component::chain::v1alpha1::ChainParameters, - >, - /// DAO module parameters. + pub chain_params: + ::core::option::Option, + /// Community Pool module parameters. #[prost(message, optional, tag = "2")] - pub dao_params: ::core::option::Option< - super::super::component::dao::v1alpha1::DaoParameters, + pub community_pool_params: ::core::option::Option< + super::super::component::community_pool::v1alpha1::CommunityPoolParameters, >, /// Governance module parameters. #[prost(message, optional, tag = "3")] - pub governance_params: ::core::option::Option< - super::super::component::governance::v1alpha1::GovernanceParameters, - >, + pub governance_params: + ::core::option::Option, /// IBC module parameters. #[prost(message, optional, tag = "4")] - pub ibc_params: ::core::option::Option< - super::super::component::ibc::v1alpha1::IbcParameters, - >, + pub ibc_params: ::core::option::Option, /// Stake module parameters. #[prost(message, optional, tag = "5")] - pub stake_params: ::core::option::Option< - super::super::component::stake::v1alpha1::StakeParameters, - >, + pub stake_params: + ::core::option::Option, /// Fee module parameters. #[prost(message, optional, tag = "6")] - pub fee_params: ::core::option::Option< - super::super::component::fee::v1alpha1::FeeParameters, - >, + pub fee_params: ::core::option::Option, /// Distributions module parameters. #[prost(message, optional, tag = "7")] pub distributions_params: ::core::option::Option< @@ -139,44 +130,34 @@ impl ::prost::Name for GenesisAppState { pub struct GenesisContent { /// Stake module genesis state. #[prost(message, optional, tag = "1")] - pub stake_content: ::core::option::Option< - super::super::component::stake::v1alpha1::GenesisContent, - >, + pub stake_content: + ::core::option::Option, /// Shielded pool module genesis state. #[prost(message, optional, tag = "2")] - pub shielded_pool_content: ::core::option::Option< - super::super::component::shielded_pool::v1alpha1::GenesisContent, - >, + pub shielded_pool_content: + ::core::option::Option, /// Governance module genesis state. #[prost(message, optional, tag = "3")] - pub governance_content: ::core::option::Option< - super::super::component::governance::v1alpha1::GenesisContent, - >, + pub governance_content: + ::core::option::Option, /// IBC module genesis state. #[prost(message, optional, tag = "4")] - pub ibc_content: ::core::option::Option< - super::super::component::ibc::v1alpha1::GenesisContent, - >, + pub ibc_content: ::core::option::Option, /// Chain module genesis state. #[prost(message, optional, tag = "5")] - pub chain_content: ::core::option::Option< - super::super::component::chain::v1alpha1::GenesisContent, - >, - /// DAO module genesis state. + pub chain_content: + ::core::option::Option, + /// Community Pool module genesis state. #[prost(message, optional, tag = "6")] - pub dao_content: ::core::option::Option< - super::super::component::dao::v1alpha1::GenesisContent, - >, + pub community_pool_content: + ::core::option::Option, /// Fee module genesis state. #[prost(message, optional, tag = "7")] - pub fee_content: ::core::option::Option< - super::super::component::fee::v1alpha1::GenesisContent, - >, + pub fee_content: ::core::option::Option, /// Distributions module genesis state. #[prost(message, optional, tag = "8")] - pub distributions_content: ::core::option::Option< - super::super::component::distributions::v1alpha1::GenesisContent, - >, + pub distributions_content: + ::core::option::Option, } impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; @@ -189,8 +170,8 @@ impl ::prost::Name for GenesisContent { #[cfg(feature = "rpc")] pub mod query_service_client { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; use tonic::codegen::http::Uri; + use tonic::codegen::*; /// Query operations for the overall Penumbra application. #[derive(Debug, Clone)] pub struct QueryServiceClient { @@ -235,9 +216,8 @@ pub mod query_service_client { >::ResponseBody, >, >, - , - >>::Error: Into + Send + Sync, + >>::Error: + Into + Send + Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -276,62 +256,46 @@ pub mod query_service_client { pub async fn app_parameters( &mut self, request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/penumbra.core.app.v1alpha1.QueryService/AppParameters", ); let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "penumbra.core.app.v1alpha1.QueryService", - "AppParameters", - ), - ); + req.extensions_mut().insert(GrpcMethod::new( + "penumbra.core.app.v1alpha1.QueryService", + "AppParameters", + )); self.inner.unary(req, path, codec).await } /// Returns the CometBFT transactions that occurred during a given block. pub async fn transactions_by_height( &mut self, request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/penumbra.core.app.v1alpha1.QueryService/TransactionsByHeight", ); let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "penumbra.core.app.v1alpha1.QueryService", - "TransactionsByHeight", - ), - ); + req.extensions_mut().insert(GrpcMethod::new( + "penumbra.core.app.v1alpha1.QueryService", + "TransactionsByHeight", + )); self.inner.unary(req, path, codec).await } } @@ -348,18 +312,12 @@ pub mod query_service_server { async fn app_parameters( &self, request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; + ) -> std::result::Result, tonic::Status>; /// Returns the CometBFT transactions that occurred during a given block. async fn transactions_by_height( &self, request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; + ) -> std::result::Result, tonic::Status>; } /// Query operations for the overall Penumbra application. #[derive(Debug)] @@ -385,10 +343,7 @@ pub mod query_service_server { max_encoding_message_size: None, } } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService + pub fn with_interceptor(inner: T, interceptor: F) -> InterceptedService where F: tonic::service::Interceptor, { @@ -444,15 +399,11 @@ pub mod query_service_server { "/penumbra.core.app.v1alpha1.QueryService/AppParameters" => { #[allow(non_camel_case_types)] struct AppParametersSvc(pub Arc); - impl< - T: QueryService, - > tonic::server::UnaryService - for AppParametersSvc { + impl tonic::server::UnaryService + for AppParametersSvc + { type Response = super::AppParametersResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; + type Future = BoxFuture, tonic::Status>; fn call( &mut self, request: tonic::Request, @@ -490,23 +441,19 @@ pub mod query_service_server { "/penumbra.core.app.v1alpha1.QueryService/TransactionsByHeight" => { #[allow(non_camel_case_types)] struct TransactionsByHeightSvc(pub Arc); - impl< - T: QueryService, - > tonic::server::UnaryService - for TransactionsByHeightSvc { + impl + tonic::server::UnaryService + for TransactionsByHeightSvc + { type Response = super::TransactionsByHeightResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; + type Future = BoxFuture, tonic::Status>; fn call( &mut self, request: tonic::Request, ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - ::transactions_by_height(&inner, request) - .await + ::transactions_by_height(&inner, request).await }; Box::pin(fut) } @@ -534,18 +481,14 @@ pub mod query_service_server { }; Box::pin(fut) } - _ => { - Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) - }) - } + _ => Box::pin(async move { + Ok(http::Response::builder() + .status(200) + .header("grpc-status", "12") + .header("content-type", "application/grpc") + .body(empty_body()) + .unwrap()) + }), } } } diff --git a/crates/proto/src/gen/penumbra.core.app.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.app.v1alpha1.serde.rs index e93121a00b..2a398eba80 100644 --- a/crates/proto/src/gen/penumbra.core.app.v1alpha1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.app.v1alpha1.serde.rs @@ -9,7 +9,7 @@ impl serde::Serialize for AppParameters { if self.chain_params.is_some() { len += 1; } - if self.dao_params.is_some() { + if self.community_pool_params.is_some() { len += 1; } if self.governance_params.is_some() { @@ -31,8 +31,8 @@ impl serde::Serialize for AppParameters { if let Some(v) = self.chain_params.as_ref() { struct_ser.serialize_field("chainParams", v)?; } - if let Some(v) = self.dao_params.as_ref() { - struct_ser.serialize_field("daoParams", v)?; + if let Some(v) = self.community_pool_params.as_ref() { + struct_ser.serialize_field("communityPoolParams", v)?; } if let Some(v) = self.governance_params.as_ref() { struct_ser.serialize_field("governanceParams", v)?; @@ -61,8 +61,8 @@ impl<'de> serde::Deserialize<'de> for AppParameters { const FIELDS: &[&str] = &[ "chain_params", "chainParams", - "dao_params", - "daoParams", + "community_pool_params", + "communityPoolParams", "governance_params", "governanceParams", "ibc_params", @@ -78,7 +78,7 @@ impl<'de> serde::Deserialize<'de> for AppParameters { #[allow(clippy::enum_variant_names)] enum GeneratedField { ChainParams, - DaoParams, + CommunityPoolParams, GovernanceParams, IbcParams, StakeParams, @@ -106,7 +106,7 @@ impl<'de> serde::Deserialize<'de> for AppParameters { { match value { "chainParams" | "chain_params" => Ok(GeneratedField::ChainParams), - "daoParams" | "dao_params" => Ok(GeneratedField::DaoParams), + "communityPoolParams" | "community_pool_params" => Ok(GeneratedField::CommunityPoolParams), "governanceParams" | "governance_params" => Ok(GeneratedField::GovernanceParams), "ibcParams" | "ibc_params" => Ok(GeneratedField::IbcParams), "stakeParams" | "stake_params" => Ok(GeneratedField::StakeParams), @@ -132,7 +132,7 @@ impl<'de> serde::Deserialize<'de> for AppParameters { V: serde::de::MapAccess<'de>, { let mut chain_params__ = None; - let mut dao_params__ = None; + let mut community_pool_params__ = None; let mut governance_params__ = None; let mut ibc_params__ = None; let mut stake_params__ = None; @@ -146,11 +146,11 @@ impl<'de> serde::Deserialize<'de> for AppParameters { } chain_params__ = map_.next_value()?; } - GeneratedField::DaoParams => { - if dao_params__.is_some() { - return Err(serde::de::Error::duplicate_field("daoParams")); + GeneratedField::CommunityPoolParams => { + if community_pool_params__.is_some() { + return Err(serde::de::Error::duplicate_field("communityPoolParams")); } - dao_params__ = map_.next_value()?; + community_pool_params__ = map_.next_value()?; } GeneratedField::GovernanceParams => { if governance_params__.is_some() { @@ -186,7 +186,7 @@ impl<'de> serde::Deserialize<'de> for AppParameters { } Ok(AppParameters { chain_params: chain_params__, - dao_params: dao_params__, + community_pool_params: community_pool_params__, governance_params: governance_params__, ibc_params: ibc_params__, stake_params: stake_params__, @@ -516,7 +516,7 @@ impl serde::Serialize for GenesisContent { if self.chain_content.is_some() { len += 1; } - if self.dao_content.is_some() { + if self.community_pool_content.is_some() { len += 1; } if self.fee_content.is_some() { @@ -541,8 +541,8 @@ impl serde::Serialize for GenesisContent { if let Some(v) = self.chain_content.as_ref() { struct_ser.serialize_field("chainContent", v)?; } - if let Some(v) = self.dao_content.as_ref() { - struct_ser.serialize_field("daoContent", v)?; + if let Some(v) = self.community_pool_content.as_ref() { + struct_ser.serialize_field("communityPoolContent", v)?; } if let Some(v) = self.fee_content.as_ref() { struct_ser.serialize_field("feeContent", v)?; @@ -570,8 +570,8 @@ impl<'de> serde::Deserialize<'de> for GenesisContent { "ibcContent", "chain_content", "chainContent", - "dao_content", - "daoContent", + "community_pool_content", + "communityPoolContent", "fee_content", "feeContent", "distributions_content", @@ -585,7 +585,7 @@ impl<'de> serde::Deserialize<'de> for GenesisContent { GovernanceContent, IbcContent, ChainContent, - DaoContent, + CommunityPoolContent, FeeContent, DistributionsContent, } @@ -614,7 +614,7 @@ impl<'de> serde::Deserialize<'de> for GenesisContent { "governanceContent" | "governance_content" => Ok(GeneratedField::GovernanceContent), "ibcContent" | "ibc_content" => Ok(GeneratedField::IbcContent), "chainContent" | "chain_content" => Ok(GeneratedField::ChainContent), - "daoContent" | "dao_content" => Ok(GeneratedField::DaoContent), + "communityPoolContent" | "community_pool_content" => Ok(GeneratedField::CommunityPoolContent), "feeContent" | "fee_content" => Ok(GeneratedField::FeeContent), "distributionsContent" | "distributions_content" => Ok(GeneratedField::DistributionsContent), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), @@ -641,7 +641,7 @@ impl<'de> serde::Deserialize<'de> for GenesisContent { let mut governance_content__ = None; let mut ibc_content__ = None; let mut chain_content__ = None; - let mut dao_content__ = None; + let mut community_pool_content__ = None; let mut fee_content__ = None; let mut distributions_content__ = None; while let Some(k) = map_.next_key()? { @@ -676,11 +676,11 @@ impl<'de> serde::Deserialize<'de> for GenesisContent { } chain_content__ = map_.next_value()?; } - GeneratedField::DaoContent => { - if dao_content__.is_some() { - return Err(serde::de::Error::duplicate_field("daoContent")); + GeneratedField::CommunityPoolContent => { + if community_pool_content__.is_some() { + return Err(serde::de::Error::duplicate_field("communityPoolContent")); } - dao_content__ = map_.next_value()?; + community_pool_content__ = map_.next_value()?; } GeneratedField::FeeContent => { if fee_content__.is_some() { @@ -702,7 +702,7 @@ impl<'de> serde::Deserialize<'de> for GenesisContent { governance_content: governance_content__, ibc_content: ibc_content__, chain_content: chain_content__, - dao_content: dao_content__, + community_pool_content: community_pool_content__, fee_content: fee_content__, distributions_content: distributions_content__, }) diff --git a/crates/proto/src/gen/penumbra.core.component.dao.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.community_pool.v1alpha1.rs similarity index 72% rename from crates/proto/src/gen/penumbra.core.component.dao.v1alpha1.rs rename to crates/proto/src/gen/penumbra.core.component.community_pool.v1alpha1.rs index 440b8143cd..44184b8a0e 100644 --- a/crates/proto/src/gen/penumbra.core.component.dao.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.core.component.community_pool.v1alpha1.rs @@ -1,75 +1,85 @@ -/// Dao parameter data. +/// CommunityPool parameter data. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct DaoParameters { - /// Whether DAO spend proposals are enabled. +pub struct CommunityPoolParameters { + /// Whether Community Pool spend proposals are enabled. #[prost(bool, tag = "1")] - pub dao_spend_proposals_enabled: bool, + pub community_pool_spend_proposals_enabled: bool, } -impl ::prost::Name for DaoParameters { - const NAME: &'static str = "DaoParameters"; - const PACKAGE: &'static str = "penumbra.core.component.dao.v1alpha1"; +impl ::prost::Name for CommunityPoolParameters { + const NAME: &'static str = "CommunityPoolParameters"; + const PACKAGE: &'static str = "penumbra.core.component.community_pool.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dao.v1alpha1.{}", Self::NAME) + ::prost::alloc::format!( + "penumbra.core.component.community_pool.v1alpha1.{}", + Self::NAME + ) } } -/// Dao genesis state. +/// CommunityPool genesis state. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct GenesisContent { - /// Dao parameters. + /// CommunityPool parameters. #[prost(message, optional, tag = "1")] - pub dao_params: ::core::option::Option, + pub community_pool_params: ::core::option::Option, } impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; - const PACKAGE: &'static str = "penumbra.core.component.dao.v1alpha1"; + const PACKAGE: &'static str = "penumbra.core.component.community_pool.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dao.v1alpha1.{}", Self::NAME) + ::prost::alloc::format!( + "penumbra.core.component.community_pool.v1alpha1.{}", + Self::NAME + ) } } -/// Requests the list of all asset balances associated with the DAO. +/// 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 DaoAssetBalancesRequest { +pub struct CommunityPoolAssetBalancesRequest { /// The expected chain id (empty string if no expectation). #[prost(string, tag = "1")] pub chain_id: ::prost::alloc::string::String, /// (Optional): The specific asset balances to retrieve, if excluded all will be returned. #[prost(message, repeated, tag = "2")] - pub asset_ids: ::prost::alloc::vec::Vec< - super::super::super::asset::v1alpha1::AssetId, - >, + pub asset_ids: ::prost::alloc::vec::Vec, } -impl ::prost::Name for DaoAssetBalancesRequest { - const NAME: &'static str = "DaoAssetBalancesRequest"; - const PACKAGE: &'static str = "penumbra.core.component.dao.v1alpha1"; +impl ::prost::Name for CommunityPoolAssetBalancesRequest { + const NAME: &'static str = "CommunityPoolAssetBalancesRequest"; + const PACKAGE: &'static str = "penumbra.core.component.community_pool.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dao.v1alpha1.{}", Self::NAME) + ::prost::alloc::format!( + "penumbra.core.component.community_pool.v1alpha1.{}", + Self::NAME + ) } } -/// The DAO's balance of a single asset. +/// The Community Pool's balance of a single asset. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct DaoAssetBalancesResponse { +pub struct CommunityPoolAssetBalancesResponse { /// The balance for a single asset. #[prost(message, optional, tag = "1")] pub balance: ::core::option::Option, } -impl ::prost::Name for DaoAssetBalancesResponse { - const NAME: &'static str = "DaoAssetBalancesResponse"; - const PACKAGE: &'static str = "penumbra.core.component.dao.v1alpha1"; +impl ::prost::Name for CommunityPoolAssetBalancesResponse { + const NAME: &'static str = "CommunityPoolAssetBalancesResponse"; + const PACKAGE: &'static str = "penumbra.core.component.community_pool.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("penumbra.core.component.dao.v1alpha1.{}", Self::NAME) + ::prost::alloc::format!( + "penumbra.core.component.community_pool.v1alpha1.{}", + Self::NAME + ) } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; use tonic::codegen::http::Uri; - /// Query operations for the dao component. + use tonic::codegen::*; + /// Query operations for the community_pool component. #[derive(Debug, Clone)] pub struct QueryServiceClient { inner: tonic::client::Grpc, @@ -113,9 +123,8 @@ pub mod query_service_client { >::ResponseBody, >, >, - , - >>::Error: Into + Send + Sync, + >>::Error: + Into + Send + Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -150,34 +159,28 @@ pub mod query_service_client { self.inner = self.inner.max_encoding_message_size(limit); self } - pub async fn dao_asset_balances( + pub async fn community_pool_asset_balances( &mut self, - request: impl tonic::IntoRequest, + request: impl tonic::IntoRequest, ) -> std::result::Result< - tonic::Response>, + tonic::Response>, tonic::Status, > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( - "/penumbra.core.component.dao.v1alpha1.QueryService/DaoAssetBalances", + "/penumbra.core.component.community_pool.v1alpha1.QueryService/CommunityPoolAssetBalances", ); let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "penumbra.core.component.dao.v1alpha1.QueryService", - "DaoAssetBalances", - ), - ); + req.extensions_mut().insert(GrpcMethod::new( + "penumbra.core.component.community_pool.v1alpha1.QueryService", + "CommunityPoolAssetBalances", + )); self.inner.server_streaming(req, path, codec).await } } @@ -190,24 +193,23 @@ pub mod query_service_server { /// Generated trait containing gRPC methods that should be implemented for use with QueryServiceServer. #[async_trait] pub trait QueryService: Send + Sync + 'static { - /// Server streaming response type for the DaoAssetBalances method. - type DaoAssetBalancesStream: tonic::codegen::tokio_stream::Stream< + /// Server streaming response type for the CommunityPoolAssetBalances method. + type CommunityPoolAssetBalancesStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result< - super::DaoAssetBalancesResponse, + super::CommunityPoolAssetBalancesResponse, tonic::Status, >, - > - + Send + > + Send + 'static; - async fn dao_asset_balances( + async fn community_pool_asset_balances( &self, - request: tonic::Request, + request: tonic::Request, ) -> std::result::Result< - tonic::Response, + tonic::Response, tonic::Status, >; } - /// Query operations for the dao component. + /// Query operations for the community_pool component. #[derive(Debug)] pub struct QueryServiceServer { inner: _Inner, @@ -231,10 +233,7 @@ pub mod query_service_server { max_encoding_message_size: None, } } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService + pub fn with_interceptor(inner: T, interceptor: F) -> InterceptedService where F: tonic::service::Interceptor, { @@ -287,27 +286,32 @@ pub mod query_service_server { fn call(&mut self, req: http::Request) -> Self::Future { let inner = self.inner.clone(); match req.uri().path() { - "/penumbra.core.component.dao.v1alpha1.QueryService/DaoAssetBalances" => { + "/penumbra.core.component.community_pool.v1alpha1.QueryService/CommunityPoolAssetBalances" => { #[allow(non_camel_case_types)] - struct DaoAssetBalancesSvc(pub Arc); + struct CommunityPoolAssetBalancesSvc(pub Arc); impl< T: QueryService, > tonic::server::ServerStreamingService< - super::DaoAssetBalancesRequest, - > for DaoAssetBalancesSvc { - type Response = super::DaoAssetBalancesResponse; - type ResponseStream = T::DaoAssetBalancesStream; + super::CommunityPoolAssetBalancesRequest, + > for CommunityPoolAssetBalancesSvc { + type Response = super::CommunityPoolAssetBalancesResponse; + type ResponseStream = T::CommunityPoolAssetBalancesStream; type Future = BoxFuture< tonic::Response, tonic::Status, >; fn call( &mut self, - request: tonic::Request, + request: tonic::Request< + super::CommunityPoolAssetBalancesRequest, + >, ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - ::dao_asset_balances(&inner, request) + ::community_pool_asset_balances( + &inner, + request, + ) .await }; Box::pin(fut) @@ -320,7 +324,7 @@ pub mod query_service_server { let inner = self.inner.clone(); let fut = async move { let inner = inner.0; - let method = DaoAssetBalancesSvc(inner); + let method = CommunityPoolAssetBalancesSvc(inner); let codec = tonic::codec::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( @@ -374,6 +378,6 @@ pub mod query_service_server { } } impl tonic::server::NamedService for QueryServiceServer { - const NAME: &'static str = "penumbra.core.component.dao.v1alpha1.QueryService"; + const NAME: &'static str = "penumbra.core.component.community_pool.v1alpha1.QueryService"; } } diff --git a/crates/proto/src/gen/penumbra.core.component.dao.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.component.community_pool.v1alpha1.serde.rs similarity index 77% rename from crates/proto/src/gen/penumbra.core.component.dao.v1alpha1.serde.rs rename to crates/proto/src/gen/penumbra.core.component.community_pool.v1alpha1.serde.rs index ca0ba6c6a3..7992a7731f 100644 --- a/crates/proto/src/gen/penumbra.core.component.dao.v1alpha1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.community_pool.v1alpha1.serde.rs @@ -1,4 +1,4 @@ -impl serde::Serialize for DaoAssetBalancesRequest { +impl serde::Serialize for CommunityPoolAssetBalancesRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -12,7 +12,7 @@ impl serde::Serialize for DaoAssetBalancesRequest { if !self.asset_ids.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dao.v1alpha1.DaoAssetBalancesRequest", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.community_pool.v1alpha1.CommunityPoolAssetBalancesRequest", len)?; if !self.chain_id.is_empty() { struct_ser.serialize_field("chainId", &self.chain_id)?; } @@ -22,7 +22,7 @@ impl serde::Serialize for DaoAssetBalancesRequest { struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for DaoAssetBalancesRequest { +impl<'de> serde::Deserialize<'de> for CommunityPoolAssetBalancesRequest { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -71,13 +71,13 @@ impl<'de> serde::Deserialize<'de> for DaoAssetBalancesRequest { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = DaoAssetBalancesRequest; + type Value = CommunityPoolAssetBalancesRequest; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.component.dao.v1alpha1.DaoAssetBalancesRequest") + formatter.write_str("struct penumbra.core.component.community_pool.v1alpha1.CommunityPoolAssetBalancesRequest") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { @@ -99,16 +99,16 @@ impl<'de> serde::Deserialize<'de> for DaoAssetBalancesRequest { } } } - Ok(DaoAssetBalancesRequest { + Ok(CommunityPoolAssetBalancesRequest { chain_id: chain_id__.unwrap_or_default(), asset_ids: asset_ids__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("penumbra.core.component.dao.v1alpha1.DaoAssetBalancesRequest", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.community_pool.v1alpha1.CommunityPoolAssetBalancesRequest", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for DaoAssetBalancesResponse { +impl serde::Serialize for CommunityPoolAssetBalancesResponse { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -119,14 +119,14 @@ impl serde::Serialize for DaoAssetBalancesResponse { if self.balance.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dao.v1alpha1.DaoAssetBalancesResponse", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.community_pool.v1alpha1.CommunityPoolAssetBalancesResponse", len)?; if let Some(v) = self.balance.as_ref() { struct_ser.serialize_field("balance", v)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for DaoAssetBalancesResponse { +impl<'de> serde::Deserialize<'de> for CommunityPoolAssetBalancesResponse { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -170,13 +170,13 @@ impl<'de> serde::Deserialize<'de> for DaoAssetBalancesResponse { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = DaoAssetBalancesResponse; + type Value = CommunityPoolAssetBalancesResponse; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.component.dao.v1alpha1.DaoAssetBalancesResponse") + formatter.write_str("struct penumbra.core.component.community_pool.v1alpha1.CommunityPoolAssetBalancesResponse") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { @@ -191,15 +191,15 @@ impl<'de> serde::Deserialize<'de> for DaoAssetBalancesResponse { } } } - Ok(DaoAssetBalancesResponse { + Ok(CommunityPoolAssetBalancesResponse { balance: balance__, }) } } - deserializer.deserialize_struct("penumbra.core.component.dao.v1alpha1.DaoAssetBalancesResponse", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.community_pool.v1alpha1.CommunityPoolAssetBalancesResponse", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for DaoParameters { +impl serde::Serialize for CommunityPoolParameters { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -207,30 +207,30 @@ impl serde::Serialize for DaoParameters { { use serde::ser::SerializeStruct; let mut len = 0; - if self.dao_spend_proposals_enabled { + if self.community_pool_spend_proposals_enabled { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dao.v1alpha1.DaoParameters", len)?; - if self.dao_spend_proposals_enabled { - struct_ser.serialize_field("daoSpendProposalsEnabled", &self.dao_spend_proposals_enabled)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.community_pool.v1alpha1.CommunityPoolParameters", len)?; + if self.community_pool_spend_proposals_enabled { + struct_ser.serialize_field("communityPoolSpendProposalsEnabled", &self.community_pool_spend_proposals_enabled)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for DaoParameters { +impl<'de> serde::Deserialize<'de> for CommunityPoolParameters { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "dao_spend_proposals_enabled", - "daoSpendProposalsEnabled", + "community_pool_spend_proposals_enabled", + "communityPoolSpendProposalsEnabled", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - DaoSpendProposalsEnabled, + CommunityPoolSpendProposalsEnabled, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -252,7 +252,7 @@ impl<'de> serde::Deserialize<'de> for DaoParameters { E: serde::de::Error, { match value { - "daoSpendProposalsEnabled" | "dao_spend_proposals_enabled" => Ok(GeneratedField::DaoSpendProposalsEnabled), + "communityPoolSpendProposalsEnabled" | "community_pool_spend_proposals_enabled" => Ok(GeneratedField::CommunityPoolSpendProposalsEnabled), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -262,33 +262,33 @@ impl<'de> serde::Deserialize<'de> for DaoParameters { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = DaoParameters; + type Value = CommunityPoolParameters; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.component.dao.v1alpha1.DaoParameters") + formatter.write_str("struct penumbra.core.component.community_pool.v1alpha1.CommunityPoolParameters") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { - let mut dao_spend_proposals_enabled__ = None; + let mut community_pool_spend_proposals_enabled__ = None; while let Some(k) = map_.next_key()? { match k { - GeneratedField::DaoSpendProposalsEnabled => { - if dao_spend_proposals_enabled__.is_some() { - return Err(serde::de::Error::duplicate_field("daoSpendProposalsEnabled")); + GeneratedField::CommunityPoolSpendProposalsEnabled => { + if community_pool_spend_proposals_enabled__.is_some() { + return Err(serde::de::Error::duplicate_field("communityPoolSpendProposalsEnabled")); } - dao_spend_proposals_enabled__ = Some(map_.next_value()?); + community_pool_spend_proposals_enabled__ = Some(map_.next_value()?); } } } - Ok(DaoParameters { - dao_spend_proposals_enabled: dao_spend_proposals_enabled__.unwrap_or_default(), + Ok(CommunityPoolParameters { + community_pool_spend_proposals_enabled: community_pool_spend_proposals_enabled__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("penumbra.core.component.dao.v1alpha1.DaoParameters", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.community_pool.v1alpha1.CommunityPoolParameters", FIELDS, GeneratedVisitor) } } impl serde::Serialize for GenesisContent { @@ -299,12 +299,12 @@ impl serde::Serialize for GenesisContent { { use serde::ser::SerializeStruct; let mut len = 0; - if self.dao_params.is_some() { + if self.community_pool_params.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dao.v1alpha1.GenesisContent", len)?; - if let Some(v) = self.dao_params.as_ref() { - struct_ser.serialize_field("daoParams", v)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.community_pool.v1alpha1.GenesisContent", len)?; + if let Some(v) = self.community_pool_params.as_ref() { + struct_ser.serialize_field("communityPoolParams", v)?; } struct_ser.end() } @@ -316,13 +316,13 @@ impl<'de> serde::Deserialize<'de> for GenesisContent { D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "dao_params", - "daoParams", + "community_pool_params", + "communityPoolParams", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - DaoParams, + CommunityPoolParams, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -344,7 +344,7 @@ impl<'de> serde::Deserialize<'de> for GenesisContent { E: serde::de::Error, { match value { - "daoParams" | "dao_params" => Ok(GeneratedField::DaoParams), + "communityPoolParams" | "community_pool_params" => Ok(GeneratedField::CommunityPoolParams), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -357,29 +357,29 @@ impl<'de> serde::Deserialize<'de> for GenesisContent { type Value = GenesisContent; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.component.dao.v1alpha1.GenesisContent") + formatter.write_str("struct penumbra.core.component.community_pool.v1alpha1.GenesisContent") } fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { - let mut dao_params__ = None; + let mut community_pool_params__ = None; while let Some(k) = map_.next_key()? { match k { - GeneratedField::DaoParams => { - if dao_params__.is_some() { - return Err(serde::de::Error::duplicate_field("daoParams")); + GeneratedField::CommunityPoolParams => { + if community_pool_params__.is_some() { + return Err(serde::de::Error::duplicate_field("communityPoolParams")); } - dao_params__ = map_.next_value()?; + community_pool_params__ = map_.next_value()?; } } } Ok(GenesisContent { - dao_params: dao_params__, + community_pool_params: community_pool_params__, }) } } - deserializer.deserialize_struct("penumbra.core.component.dao.v1alpha1.GenesisContent", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.community_pool.v1alpha1.GenesisContent", FIELDS, GeneratedVisitor) } } diff --git a/crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.rs index 4b17608197..92c70a3399 100644 --- a/crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.rs @@ -9,9 +9,7 @@ impl ::prost::Name for ZkDelegatorVoteProof { const NAME: &'static str = "ZKDelegatorVoteProof"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -22,17 +20,13 @@ pub struct ProposalSubmit { pub proposal: ::core::option::Option, /// The amount of the proposal deposit. #[prost(message, optional, tag = "3")] - pub deposit_amount: ::core::option::Option< - super::super::super::num::v1alpha1::Amount, - >, + pub deposit_amount: ::core::option::Option, } impl ::prost::Name for ProposalSubmit { const NAME: &'static str = "ProposalSubmit"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -49,9 +43,7 @@ impl ::prost::Name for ProposalWithdraw { const NAME: &'static str = "ProposalWithdraw"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -62,9 +54,7 @@ pub struct ProposalDepositClaim { pub proposal: u64, /// The expected deposit amount. #[prost(message, optional, tag = "2")] - pub deposit_amount: ::core::option::Option< - super::super::super::num::v1alpha1::Amount, - >, + pub deposit_amount: ::core::option::Option, /// The outcome of the proposal. #[prost(message, optional, tag = "3")] pub outcome: ::core::option::Option, @@ -73,9 +63,7 @@ impl ::prost::Name for ProposalDepositClaim { const NAME: &'static str = "ProposalDepositClaim"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -94,9 +82,7 @@ impl ::prost::Name for ValidatorVote { const NAME: &'static str = "ValidatorVote"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -109,9 +95,7 @@ impl ::prost::Name for ValidatorVoteReason { const NAME: &'static str = "ValidatorVoteReason"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -125,14 +109,10 @@ pub struct ValidatorVoteBody { pub vote: ::core::option::Option, /// The validator identity. #[prost(message, optional, tag = "3")] - pub identity_key: ::core::option::Option< - super::super::super::keys::v1alpha1::IdentityKey, - >, + pub identity_key: ::core::option::Option, /// The validator governance key. #[prost(message, optional, tag = "4")] - pub governance_key: ::core::option::Option< - super::super::super::keys::v1alpha1::GovernanceKey, - >, + pub governance_key: ::core::option::Option, /// A justification of the vote. #[prost(message, optional, tag = "5")] pub reason: ::core::option::Option, @@ -141,9 +121,7 @@ impl ::prost::Name for ValidatorVoteBody { const NAME: &'static str = "ValidatorVoteBody"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -165,9 +143,7 @@ impl ::prost::Name for DelegatorVote { const NAME: &'static str = "DelegatorVote"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -187,9 +163,7 @@ pub struct DelegatorVoteBody { pub value: ::core::option::Option, /// The amount of the delegation note, in unbonded penumbra. #[prost(message, optional, tag = "5")] - pub unbonded_amount: ::core::option::Option< - super::super::super::num::v1alpha1::Amount, - >, + pub unbonded_amount: ::core::option::Option, /// The nullifier of the input note. #[prost(message, optional, tag = "6")] pub nullifier: ::core::option::Option, @@ -203,9 +177,7 @@ impl ::prost::Name for DelegatorVoteBody { const NAME: &'static str = "DelegatorVoteBody"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -222,9 +194,7 @@ pub mod delegator_vote_view { #[prost(message, optional, tag = "1")] pub delegator_vote: ::core::option::Option, #[prost(message, optional, tag = "2")] - pub note: ::core::option::Option< - super::super::super::shielded_pool::v1alpha1::NoteView, - >, + pub note: ::core::option::Option, } impl ::prost::Name for Visible { const NAME: &'static str = "Visible"; @@ -265,9 +235,7 @@ impl ::prost::Name for DelegatorVoteView { const NAME: &'static str = "DelegatorVoteView"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -290,9 +258,7 @@ pub struct DelegatorVotePlan { pub staked_note_position: u64, /// The unbonded amount equivalent to the delegation note. #[prost(message, optional, tag = "6")] - pub unbonded_amount: ::core::option::Option< - super::super::super::num::v1alpha1::Amount, - >, + pub unbonded_amount: ::core::option::Option, /// The randomizer to use for the proof of spend capability. #[prost(bytes = "vec", tag = "7")] pub randomizer: ::prost::alloc::vec::Vec, @@ -307,60 +273,52 @@ impl ::prost::Name for DelegatorVotePlan { const NAME: &'static str = "DelegatorVotePlan"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct DaoDeposit { - /// The value to deposit into the DAO. +pub struct CommunityPoolDeposit { + /// The value to deposit into the Community Pool. #[prost(message, optional, tag = "1")] pub value: ::core::option::Option, } -impl ::prost::Name for DaoDeposit { - const NAME: &'static str = "DaoDeposit"; +impl ::prost::Name for CommunityPoolDeposit { + const NAME: &'static str = "CommunityPoolDeposit"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct DaoSpend { - /// The value to spend from the DAO. +pub struct CommunityPoolSpend { + /// The value to spend from the Community Pool. #[prost(message, optional, tag = "1")] pub value: ::core::option::Option, } -impl ::prost::Name for DaoSpend { - const NAME: &'static str = "DaoSpend"; +impl ::prost::Name for CommunityPoolSpend { + const NAME: &'static str = "CommunityPoolSpend"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct DaoOutput { - /// The value to output from the DAO. +pub struct CommunityPoolOutput { + /// The value to output from the Community Pool. #[prost(message, optional, tag = "1")] pub value: ::core::option::Option, /// The address to send the output to. #[prost(message, optional, tag = "2")] pub address: ::core::option::Option, } -impl ::prost::Name for DaoOutput { - const NAME: &'static str = "DaoOutput"; +impl ::prost::Name for CommunityPoolOutput { + const NAME: &'static str = "CommunityPoolOutput"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// A vote on a proposal. @@ -374,17 +332,7 @@ pub struct Vote { /// Nested message and enum types in `Vote`. pub mod vote { /// A vote. - #[derive( - Clone, - Copy, - Debug, - PartialEq, - Eq, - Hash, - PartialOrd, - Ord, - ::prost::Enumeration - )] + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum Vote { Unspecified = 0, @@ -421,9 +369,7 @@ impl ::prost::Name for Vote { const NAME: &'static str = "Vote"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// The current state of a proposal. @@ -520,9 +466,7 @@ impl ::prost::Name for ProposalState { const NAME: &'static str = "ProposalState"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// The outcome of a concluded proposal. @@ -617,9 +561,7 @@ impl ::prost::Name for ProposalOutcome { const NAME: &'static str = "ProposalOutcome"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// A tally of votes on a proposal. @@ -640,9 +582,7 @@ impl ::prost::Name for Tally { const NAME: &'static str = "Tally"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// A proposal to be voted upon. @@ -666,7 +606,7 @@ pub struct Proposal { #[prost(message, optional, tag = "7")] pub parameter_change: ::core::option::Option, #[prost(message, optional, tag = "8")] - pub dao_spend: ::core::option::Option, + pub community_pool_spend: ::core::option::Option, #[prost(message, optional, tag = "9")] pub upgrade_plan: ::core::option::Option, } @@ -688,7 +628,8 @@ pub mod proposal { const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.Proposal.{}", Self::NAME + "penumbra.core.component.governance.v1alpha1.Proposal.{}", + Self::NAME ) } } @@ -709,7 +650,8 @@ pub mod proposal { const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.Proposal.{}", Self::NAME + "penumbra.core.component.governance.v1alpha1.Proposal.{}", + Self::NAME ) } } @@ -734,28 +676,30 @@ pub mod proposal { const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.Proposal.{}", Self::NAME + "penumbra.core.component.governance.v1alpha1.Proposal.{}", + Self::NAME ) } } - /// A DAO spend proposal describes zero or more transactions to execute on behalf of the DAO, with + /// 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 DaoSpend { + pub struct CommunityPoolSpend { /// The transaction plan to be executed at the time the proposal is passed. This must be a - /// transaction plan which can be executed by the DAO, which means it can't require any witness - /// data or authorization signatures, but it may use the `DaoSpend` action. + /// transaction plan which can be executed by the Community Pool, which means it can't require any witness + /// data or authorization signatures, but it may use the `CommunityPoolSpend` action. #[prost(message, optional, tag = "2")] pub transaction_plan: ::core::option::Option<::pbjson_types::Any>, } - impl ::prost::Name for DaoSpend { - const NAME: &'static str = "DaoSpend"; + impl ::prost::Name for CommunityPoolSpend { + const NAME: &'static str = "CommunityPoolSpend"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.Proposal.{}", Self::NAME + "penumbra.core.component.governance.v1alpha1.Proposal.{}", + Self::NAME ) } } @@ -772,7 +716,8 @@ pub mod proposal { const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.Proposal.{}", Self::NAME + "penumbra.core.component.governance.v1alpha1.Proposal.{}", + Self::NAME ) } } @@ -781,9 +726,7 @@ impl ::prost::Name for Proposal { const NAME: &'static str = "Proposal"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -800,9 +743,7 @@ impl ::prost::Name for ProposalInfoRequest { const NAME: &'static str = "ProposalInfoRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -819,9 +760,7 @@ impl ::prost::Name for ProposalInfoResponse { const NAME: &'static str = "ProposalInfoResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -838,9 +777,7 @@ impl ::prost::Name for ProposalDataRequest { const NAME: &'static str = "ProposalDataRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -863,17 +800,13 @@ pub struct ProposalDataResponse { pub state: ::core::option::Option, /// The deposit amount paid for the proposal. #[prost(message, optional, tag = "6")] - pub proposal_deposit_amount: ::core::option::Option< - super::super::super::num::v1alpha1::Amount, - >, + pub proposal_deposit_amount: ::core::option::Option, } impl ::prost::Name for ProposalDataResponse { const NAME: &'static str = "ProposalDataResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// Requests the validator rate data for a proposal. @@ -891,9 +824,7 @@ impl ::prost::Name for ProposalRateDataRequest { const NAME: &'static str = "ProposalRateDataRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// The rate data for a single validator. @@ -907,9 +838,7 @@ impl ::prost::Name for ProposalRateDataResponse { const NAME: &'static str = "ProposalRateDataResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// Requests the list of all proposals. @@ -929,9 +858,7 @@ impl ::prost::Name for ProposalListRequest { const NAME: &'static str = "ProposalListRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// The data for a single proposal. @@ -958,9 +885,7 @@ impl ::prost::Name for ProposalListResponse { const NAME: &'static str = "ProposalListResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// Requests the list of all validator votes for a given proposal. @@ -978,9 +903,7 @@ impl ::prost::Name for ValidatorVotesRequest { const NAME: &'static str = "ValidatorVotesRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// The data for a single validator vote. @@ -992,17 +915,13 @@ pub struct ValidatorVotesResponse { pub vote: ::core::option::Option, /// The validator identity. #[prost(message, optional, tag = "2")] - pub identity_key: ::core::option::Option< - super::super::super::keys::v1alpha1::IdentityKey, - >, + pub identity_key: ::core::option::Option, } impl ::prost::Name for ValidatorVotesResponse { const NAME: &'static str = "ValidatorVotesResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// Governance configuration data. @@ -1014,9 +933,7 @@ pub struct GovernanceParameters { pub proposal_voting_blocks: u64, /// The deposit required to create a proposal. #[prost(message, optional, tag = "2")] - pub proposal_deposit_amount: ::core::option::Option< - super::super::super::num::v1alpha1::Amount, - >, + pub proposal_deposit_amount: ::core::option::Option, /// The quorum required for a proposal to be considered valid, as a fraction of the total stake /// weight of the network. #[prost(string, tag = "3")] @@ -1033,9 +950,7 @@ impl ::prost::Name for GovernanceParameters { const NAME: &'static str = "GovernanceParameters"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// Governance genesis state. @@ -1050,9 +965,7 @@ impl ::prost::Name for GenesisContent { const NAME: &'static str = "GenesisContent"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// Note: must be kept in sync with AppParameters. @@ -1062,12 +975,11 @@ impl ::prost::Name for GenesisContent { pub struct ChangedAppParameters { /// Chain module parameters. #[prost(message, optional, tag = "1")] - pub chain_params: ::core::option::Option< - super::super::chain::v1alpha1::ChainParameters, - >, - /// DAO module parameters. + pub chain_params: ::core::option::Option, + /// Community Pool module parameters. #[prost(message, optional, tag = "2")] - pub dao_params: ::core::option::Option, + pub community_pool_params: + ::core::option::Option, /// Governance module parameters. #[prost(message, optional, tag = "3")] pub governance_params: ::core::option::Option, @@ -1076,25 +988,20 @@ pub struct ChangedAppParameters { pub ibc_params: ::core::option::Option, /// Stake module parameters. #[prost(message, optional, tag = "5")] - pub stake_params: ::core::option::Option< - super::super::stake::v1alpha1::StakeParameters, - >, + pub stake_params: ::core::option::Option, /// Fee module parameters. #[prost(message, optional, tag = "6")] pub fee_params: ::core::option::Option, /// Distributions module parameters. #[prost(message, optional, tag = "7")] - pub distributions_params: ::core::option::Option< - super::super::distributions::v1alpha1::DistributionsParameters, - >, + pub distributions_params: + ::core::option::Option, } impl ::prost::Name for ChangedAppParameters { const NAME: &'static str = "ChangedAppParameters"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -1111,9 +1018,7 @@ impl ::prost::Name for ChangedAppParametersSet { const NAME: &'static str = "ChangedAppParametersSet"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -1127,17 +1032,13 @@ pub struct VotingPowerAtProposalStartRequest { pub proposal_id: u64, /// The validator identity key to request information on. #[prost(message, optional, tag = "3")] - pub identity_key: ::core::option::Option< - super::super::super::keys::v1alpha1::IdentityKey, - >, + pub identity_key: ::core::option::Option, } impl ::prost::Name for VotingPowerAtProposalStartRequest { const NAME: &'static str = "VotingPowerAtProposalStartRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -1154,9 +1055,7 @@ impl ::prost::Name for VotingPowerAtProposalStartResponse { const NAME: &'static str = "VotingPowerAtProposalStartResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -1173,9 +1072,7 @@ impl ::prost::Name for AllTalliedDelegatorVotesForProposalRequest { const NAME: &'static str = "AllTalliedDelegatorVotesForProposalRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -1186,17 +1083,13 @@ pub struct AllTalliedDelegatorVotesForProposalResponse { pub tally: ::core::option::Option, /// The validator identity associated with the tally. #[prost(message, optional, tag = "2")] - pub identity_key: ::core::option::Option< - super::super::super::keys::v1alpha1::IdentityKey, - >, + pub identity_key: ::core::option::Option, } impl ::prost::Name for AllTalliedDelegatorVotesForProposalResponse { const NAME: &'static str = "AllTalliedDelegatorVotesForProposalResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -1210,9 +1103,7 @@ impl ::prost::Name for NextProposalIdRequest { const NAME: &'static str = "NextProposalIdRequest"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -1226,17 +1117,15 @@ impl ::prost::Name for NextProposalIdResponse { const NAME: &'static str = "NextProposalIdResponse"; const PACKAGE: &'static str = "penumbra.core.component.governance.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.component.governance.v1alpha1.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.component.governance.v1alpha1.{}", Self::NAME) } } /// Generated client implementations. #[cfg(feature = "rpc")] pub mod query_service_client { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; use tonic::codegen::http::Uri; + use tonic::codegen::*; /// Query operations for the governance component. #[derive(Debug, Clone)] pub struct QueryServiceClient { @@ -1281,9 +1170,8 @@ pub mod query_service_client { >::ResponseBody, >, >, - , - >>::Error: Into + Send + Sync, + >>::Error: + Into + Send + Sync, { QueryServiceClient::new(InterceptedService::new(inner, interceptor)) } @@ -1321,31 +1209,23 @@ pub mod query_service_client { pub async fn proposal_info( &mut self, request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/penumbra.core.component.governance.v1alpha1.QueryService/ProposalInfo", ); let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "penumbra.core.component.governance.v1alpha1.QueryService", - "ProposalInfo", - ), - ); + req.extensions_mut().insert(GrpcMethod::new( + "penumbra.core.component.governance.v1alpha1.QueryService", + "ProposalInfo", + )); self.inner.unary(req, path, codec).await } pub async fn proposal_list( @@ -1355,87 +1235,65 @@ pub mod query_service_client { tonic::Response>, tonic::Status, > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/penumbra.core.component.governance.v1alpha1.QueryService/ProposalList", ); let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "penumbra.core.component.governance.v1alpha1.QueryService", - "ProposalList", - ), - ); + req.extensions_mut().insert(GrpcMethod::new( + "penumbra.core.component.governance.v1alpha1.QueryService", + "ProposalList", + )); self.inner.server_streaming(req, path, codec).await } pub async fn proposal_data( &mut self, request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/penumbra.core.component.governance.v1alpha1.QueryService/ProposalData", ); let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "penumbra.core.component.governance.v1alpha1.QueryService", - "ProposalData", - ), - ); + req.extensions_mut().insert(GrpcMethod::new( + "penumbra.core.component.governance.v1alpha1.QueryService", + "ProposalData", + )); self.inner.unary(req, path, codec).await } pub async fn next_proposal_id( &mut self, request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/penumbra.core.component.governance.v1alpha1.QueryService/NextProposalId", ); let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "penumbra.core.component.governance.v1alpha1.QueryService", - "NextProposalId", - ), - ); + req.extensions_mut().insert(GrpcMethod::new( + "penumbra.core.component.governance.v1alpha1.QueryService", + "NextProposalId", + )); self.inner.unary(req, path, codec).await } pub async fn validator_votes( @@ -1445,27 +1303,21 @@ pub mod query_service_client { tonic::Response>, tonic::Status, > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/penumbra.core.component.governance.v1alpha1.QueryService/ValidatorVotes", ); let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "penumbra.core.component.governance.v1alpha1.QueryService", - "ValidatorVotes", - ), - ); + req.extensions_mut().insert(GrpcMethod::new( + "penumbra.core.component.governance.v1alpha1.QueryService", + "ValidatorVotes", + )); self.inner.server_streaming(req, path, codec).await } pub async fn voting_power_at_proposal_start( @@ -1475,63 +1327,47 @@ pub mod query_service_client { tonic::Response, tonic::Status, > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/penumbra.core.component.governance.v1alpha1.QueryService/VotingPowerAtProposalStart", ); let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "penumbra.core.component.governance.v1alpha1.QueryService", - "VotingPowerAtProposalStart", - ), - ); + req.extensions_mut().insert(GrpcMethod::new( + "penumbra.core.component.governance.v1alpha1.QueryService", + "VotingPowerAtProposalStart", + )); self.inner.unary(req, path, codec).await } pub async fn all_tallied_delegator_votes_for_proposal( &mut self, - request: impl tonic::IntoRequest< - super::AllTalliedDelegatorVotesForProposalRequest, - >, + request: impl tonic::IntoRequest, ) -> std::result::Result< tonic::Response< - tonic::codec::Streaming< - super::AllTalliedDelegatorVotesForProposalResponse, - >, + tonic::codec::Streaming, >, tonic::Status, > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/penumbra.core.component.governance.v1alpha1.QueryService/AllTalliedDelegatorVotesForProposal", ); let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "penumbra.core.component.governance.v1alpha1.QueryService", - "AllTalliedDelegatorVotesForProposal", - ), - ); + req.extensions_mut().insert(GrpcMethod::new( + "penumbra.core.component.governance.v1alpha1.QueryService", + "AllTalliedDelegatorVotesForProposal", + )); self.inner.server_streaming(req, path, codec).await } /// Used for computing voting power ? @@ -1542,27 +1378,21 @@ pub mod query_service_client { tonic::Response>, tonic::Status, > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; let codec = tonic::codec::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/penumbra.core.component.governance.v1alpha1.QueryService/ProposalRateData", ); let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "penumbra.core.component.governance.v1alpha1.QueryService", - "ProposalRateData", - ), - ); + req.extensions_mut().insert(GrpcMethod::new( + "penumbra.core.component.governance.v1alpha1.QueryService", + "ProposalRateData", + )); self.inner.server_streaming(req, path, codec).await } } @@ -1578,50 +1408,33 @@ pub mod query_service_server { async fn proposal_info( &self, request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; + ) -> std::result::Result, tonic::Status>; /// Server streaming response type for the ProposalList method. type ProposalListStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, - > - + Send + > + Send + 'static; async fn proposal_list( &self, request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; + ) -> std::result::Result, tonic::Status>; async fn proposal_data( &self, request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; + ) -> std::result::Result, tonic::Status>; async fn next_proposal_id( &self, request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; + ) -> std::result::Result, tonic::Status>; /// Server streaming response type for the ValidatorVotes method. type ValidatorVotesStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, - > - + Send + > + Send + 'static; async fn validator_votes( &self, request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; + ) -> std::result::Result, tonic::Status>; async fn voting_power_at_proposal_start( &self, request: tonic::Request, @@ -1635,8 +1448,7 @@ pub mod query_service_server { super::AllTalliedDelegatorVotesForProposalResponse, tonic::Status, >, - > - + Send + > + Send + 'static; async fn all_tallied_delegator_votes_for_proposal( &self, @@ -1647,21 +1459,14 @@ pub mod query_service_server { >; /// Server streaming response type for the ProposalRateData method. type ProposalRateDataStream: tonic::codegen::tokio_stream::Stream< - Item = std::result::Result< - super::ProposalRateDataResponse, - tonic::Status, - >, - > - + Send + Item = std::result::Result, + > + Send + 'static; /// Used for computing voting power ? async fn proposal_rate_data( &self, request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; + ) -> std::result::Result, tonic::Status>; } /// Query operations for the governance component. #[derive(Debug)] @@ -1687,10 +1492,7 @@ pub mod query_service_server { max_encoding_message_size: None, } } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService + pub fn with_interceptor(inner: T, interceptor: F) -> InterceptedService where F: tonic::service::Interceptor, { diff --git a/crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.serde.rs index 70f7950a93..0f40a860f3 100644 --- a/crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.serde.rs @@ -231,7 +231,7 @@ impl serde::Serialize for ChangedAppParameters { if self.chain_params.is_some() { len += 1; } - if self.dao_params.is_some() { + if self.community_pool_params.is_some() { len += 1; } if self.governance_params.is_some() { @@ -253,8 +253,8 @@ impl serde::Serialize for ChangedAppParameters { if let Some(v) = self.chain_params.as_ref() { struct_ser.serialize_field("chainParams", v)?; } - if let Some(v) = self.dao_params.as_ref() { - struct_ser.serialize_field("daoParams", v)?; + if let Some(v) = self.community_pool_params.as_ref() { + struct_ser.serialize_field("communityPoolParams", v)?; } if let Some(v) = self.governance_params.as_ref() { struct_ser.serialize_field("governanceParams", v)?; @@ -283,8 +283,8 @@ impl<'de> serde::Deserialize<'de> for ChangedAppParameters { const FIELDS: &[&str] = &[ "chain_params", "chainParams", - "dao_params", - "daoParams", + "community_pool_params", + "communityPoolParams", "governance_params", "governanceParams", "ibc_params", @@ -300,7 +300,7 @@ impl<'de> serde::Deserialize<'de> for ChangedAppParameters { #[allow(clippy::enum_variant_names)] enum GeneratedField { ChainParams, - DaoParams, + CommunityPoolParams, GovernanceParams, IbcParams, StakeParams, @@ -328,7 +328,7 @@ impl<'de> serde::Deserialize<'de> for ChangedAppParameters { { match value { "chainParams" | "chain_params" => Ok(GeneratedField::ChainParams), - "daoParams" | "dao_params" => Ok(GeneratedField::DaoParams), + "communityPoolParams" | "community_pool_params" => Ok(GeneratedField::CommunityPoolParams), "governanceParams" | "governance_params" => Ok(GeneratedField::GovernanceParams), "ibcParams" | "ibc_params" => Ok(GeneratedField::IbcParams), "stakeParams" | "stake_params" => Ok(GeneratedField::StakeParams), @@ -354,7 +354,7 @@ impl<'de> serde::Deserialize<'de> for ChangedAppParameters { V: serde::de::MapAccess<'de>, { let mut chain_params__ = None; - let mut dao_params__ = None; + let mut community_pool_params__ = None; let mut governance_params__ = None; let mut ibc_params__ = None; let mut stake_params__ = None; @@ -368,11 +368,11 @@ impl<'de> serde::Deserialize<'de> for ChangedAppParameters { } chain_params__ = map_.next_value()?; } - GeneratedField::DaoParams => { - if dao_params__.is_some() { - return Err(serde::de::Error::duplicate_field("daoParams")); + GeneratedField::CommunityPoolParams => { + if community_pool_params__.is_some() { + return Err(serde::de::Error::duplicate_field("communityPoolParams")); } - dao_params__ = map_.next_value()?; + community_pool_params__ = map_.next_value()?; } GeneratedField::GovernanceParams => { if governance_params__.is_some() { @@ -408,7 +408,7 @@ impl<'de> serde::Deserialize<'de> for ChangedAppParameters { } Ok(ChangedAppParameters { chain_params: chain_params__, - dao_params: dao_params__, + community_pool_params: community_pool_params__, governance_params: governance_params__, ibc_params: ibc_params__, stake_params: stake_params__, @@ -528,7 +528,7 @@ impl<'de> serde::Deserialize<'de> for ChangedAppParametersSet { deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ChangedAppParametersSet", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for DaoDeposit { +impl serde::Serialize for CommunityPoolDeposit { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -539,14 +539,14 @@ impl serde::Serialize for DaoDeposit { if self.value.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.DaoDeposit", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.CommunityPoolDeposit", len)?; if let Some(v) = self.value.as_ref() { struct_ser.serialize_field("value", v)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for DaoDeposit { +impl<'de> serde::Deserialize<'de> for CommunityPoolDeposit { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -590,13 +590,13 @@ impl<'de> serde::Deserialize<'de> for DaoDeposit { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = DaoDeposit; + type Value = CommunityPoolDeposit; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.component.governance.v1alpha1.DaoDeposit") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.CommunityPoolDeposit") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { @@ -611,15 +611,15 @@ impl<'de> serde::Deserialize<'de> for DaoDeposit { } } } - Ok(DaoDeposit { + Ok(CommunityPoolDeposit { value: value__, }) } } - deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.DaoDeposit", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.CommunityPoolDeposit", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for DaoOutput { +impl serde::Serialize for CommunityPoolOutput { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -633,7 +633,7 @@ impl serde::Serialize for DaoOutput { if self.address.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.DaoOutput", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.CommunityPoolOutput", len)?; if let Some(v) = self.value.as_ref() { struct_ser.serialize_field("value", v)?; } @@ -643,7 +643,7 @@ impl serde::Serialize for DaoOutput { struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for DaoOutput { +impl<'de> serde::Deserialize<'de> for CommunityPoolOutput { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -690,13 +690,13 @@ impl<'de> serde::Deserialize<'de> for DaoOutput { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = DaoOutput; + type Value = CommunityPoolOutput; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.component.governance.v1alpha1.DaoOutput") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.CommunityPoolOutput") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { @@ -718,16 +718,16 @@ impl<'de> serde::Deserialize<'de> for DaoOutput { } } } - Ok(DaoOutput { + Ok(CommunityPoolOutput { value: value__, address: address__, }) } } - deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.DaoOutput", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.CommunityPoolOutput", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for DaoSpend { +impl serde::Serialize for CommunityPoolSpend { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -738,14 +738,14 @@ impl serde::Serialize for DaoSpend { if self.value.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.DaoSpend", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.CommunityPoolSpend", len)?; if let Some(v) = self.value.as_ref() { struct_ser.serialize_field("value", v)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for DaoSpend { +impl<'de> serde::Deserialize<'de> for CommunityPoolSpend { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -789,13 +789,13 @@ impl<'de> serde::Deserialize<'de> for DaoSpend { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = DaoSpend; + type Value = CommunityPoolSpend; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.component.governance.v1alpha1.DaoSpend") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.CommunityPoolSpend") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { @@ -810,12 +810,12 @@ impl<'de> serde::Deserialize<'de> for DaoSpend { } } } - Ok(DaoSpend { + Ok(CommunityPoolSpend { value: value__, }) } } - deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.DaoSpend", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.CommunityPoolSpend", FIELDS, GeneratedVisitor) } } impl serde::Serialize for DelegatorVote { @@ -2178,7 +2178,7 @@ impl serde::Serialize for Proposal { if self.parameter_change.is_some() { len += 1; } - if self.dao_spend.is_some() { + if self.community_pool_spend.is_some() { len += 1; } if self.upgrade_plan.is_some() { @@ -2204,8 +2204,8 @@ impl serde::Serialize for Proposal { if let Some(v) = self.parameter_change.as_ref() { struct_ser.serialize_field("parameterChange", v)?; } - if let Some(v) = self.dao_spend.as_ref() { - struct_ser.serialize_field("daoSpend", v)?; + if let Some(v) = self.community_pool_spend.as_ref() { + struct_ser.serialize_field("communityPoolSpend", v)?; } if let Some(v) = self.upgrade_plan.as_ref() { struct_ser.serialize_field("upgradePlan", v)?; @@ -2227,8 +2227,8 @@ impl<'de> serde::Deserialize<'de> for Proposal { "emergency", "parameter_change", "parameterChange", - "dao_spend", - "daoSpend", + "community_pool_spend", + "communityPoolSpend", "upgrade_plan", "upgradePlan", ]; @@ -2241,7 +2241,7 @@ impl<'de> serde::Deserialize<'de> for Proposal { Signaling, Emergency, ParameterChange, - DaoSpend, + CommunityPoolSpend, UpgradePlan, } impl<'de> serde::Deserialize<'de> for GeneratedField { @@ -2270,7 +2270,7 @@ impl<'de> serde::Deserialize<'de> for Proposal { "signaling" => Ok(GeneratedField::Signaling), "emergency" => Ok(GeneratedField::Emergency), "parameterChange" | "parameter_change" => Ok(GeneratedField::ParameterChange), - "daoSpend" | "dao_spend" => Ok(GeneratedField::DaoSpend), + "communityPoolSpend" | "community_pool_spend" => Ok(GeneratedField::CommunityPoolSpend), "upgradePlan" | "upgrade_plan" => Ok(GeneratedField::UpgradePlan), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } @@ -2297,7 +2297,7 @@ impl<'de> serde::Deserialize<'de> for Proposal { let mut signaling__ = None; let mut emergency__ = None; let mut parameter_change__ = None; - let mut dao_spend__ = None; + let mut community_pool_spend__ = None; let mut upgrade_plan__ = None; while let Some(k) = map_.next_key()? { match k { @@ -2339,11 +2339,11 @@ impl<'de> serde::Deserialize<'de> for Proposal { } parameter_change__ = map_.next_value()?; } - GeneratedField::DaoSpend => { - if dao_spend__.is_some() { - return Err(serde::de::Error::duplicate_field("daoSpend")); + GeneratedField::CommunityPoolSpend => { + if community_pool_spend__.is_some() { + return Err(serde::de::Error::duplicate_field("communityPoolSpend")); } - dao_spend__ = map_.next_value()?; + community_pool_spend__ = map_.next_value()?; } GeneratedField::UpgradePlan => { if upgrade_plan__.is_some() { @@ -2360,7 +2360,7 @@ impl<'de> serde::Deserialize<'de> for Proposal { signaling: signaling__, emergency: emergency__, parameter_change: parameter_change__, - dao_spend: dao_spend__, + community_pool_spend: community_pool_spend__, upgrade_plan: upgrade_plan__, }) } @@ -2368,7 +2368,7 @@ impl<'de> serde::Deserialize<'de> for Proposal { deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.Proposal", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for proposal::DaoSpend { +impl serde::Serialize for proposal::CommunityPoolSpend { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -2379,14 +2379,14 @@ impl serde::Serialize for proposal::DaoSpend { if self.transaction_plan.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.DaoSpend", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.CommunityPoolSpend", len)?; if let Some(v) = self.transaction_plan.as_ref() { struct_ser.serialize_field("transactionPlan", v)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for proposal::DaoSpend { +impl<'de> serde::Deserialize<'de> for proposal::CommunityPoolSpend { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -2431,13 +2431,13 @@ impl<'de> serde::Deserialize<'de> for proposal::DaoSpend { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = proposal::DaoSpend; + type Value = proposal::CommunityPoolSpend; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.component.governance.v1alpha1.Proposal.DaoSpend") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.Proposal.CommunityPoolSpend") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { @@ -2452,12 +2452,12 @@ impl<'de> serde::Deserialize<'de> for proposal::DaoSpend { } } } - Ok(proposal::DaoSpend { + Ok(proposal::CommunityPoolSpend { transaction_plan: transaction_plan__, }) } } - deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.DaoSpend", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.CommunityPoolSpend", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal::Emergency { diff --git a/crates/proto/src/gen/penumbra.core.component.sct.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.sct.v1alpha1.rs index 1ad0ebc81f..20ae6e8f73 100644 --- a/crates/proto/src/gen/penumbra.core.component.sct.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.core.component.sct.v1alpha1.rs @@ -64,12 +64,12 @@ pub mod commitment_source { ) } } - /// The commitment was created through a `DaoOutput` in a governance-initated transaction. + /// The commitment was created through a `CommunityPoolOutput` in a governance-initated transaction. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] - pub struct DaoOutput {} - impl ::prost::Name for DaoOutput { - const NAME: &'static str = "DaoOutput"; + pub struct CommunityPoolOutput {} + impl ::prost::Name for CommunityPoolOutput { + const NAME: &'static str = "CommunityPoolOutput"; const PACKAGE: &'static str = "penumbra.core.component.sct.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { ::prost::alloc::format!( @@ -110,7 +110,7 @@ pub mod commitment_source { #[prost(message, tag = "20")] FundingStreamReward(FundingStreamReward), #[prost(message, tag = "30")] - DaoOutput(DaoOutput), + CommunityPoolOutput(CommunityPoolOutput), #[prost(message, tag = "40")] Genesis(Genesis), } diff --git a/crates/proto/src/gen/penumbra.core.component.sct.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.component.sct.v1alpha1.serde.rs index 765993f553..29b7f43cc4 100644 --- a/crates/proto/src/gen/penumbra.core.component.sct.v1alpha1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.sct.v1alpha1.serde.rs @@ -21,8 +21,8 @@ impl serde::Serialize for CommitmentSource { commitment_source::Source::FundingStreamReward(v) => { struct_ser.serialize_field("fundingStreamReward", v)?; } - commitment_source::Source::DaoOutput(v) => { - struct_ser.serialize_field("daoOutput", v)?; + commitment_source::Source::CommunityPoolOutput(v) => { + struct_ser.serialize_field("communityPoolOutput", v)?; } commitment_source::Source::Genesis(v) => { struct_ser.serialize_field("genesis", v)?; @@ -44,8 +44,8 @@ impl<'de> serde::Deserialize<'de> for CommitmentSource { "ics20Transfer", "funding_stream_reward", "fundingStreamReward", - "dao_output", - "daoOutput", + "community_pool_output", + "communityPoolOutput", "genesis", ]; @@ -54,7 +54,7 @@ impl<'de> serde::Deserialize<'de> for CommitmentSource { Transaction, Ics20Transfer, FundingStreamReward, - DaoOutput, + CommunityPoolOutput, Genesis, } impl<'de> serde::Deserialize<'de> for GeneratedField { @@ -80,7 +80,7 @@ impl<'de> serde::Deserialize<'de> for CommitmentSource { "transaction" => Ok(GeneratedField::Transaction), "ics20Transfer" | "ics_20_transfer" => Ok(GeneratedField::Ics20Transfer), "fundingStreamReward" | "funding_stream_reward" => Ok(GeneratedField::FundingStreamReward), - "daoOutput" | "dao_output" => Ok(GeneratedField::DaoOutput), + "communityPoolOutput" | "community_pool_output" => Ok(GeneratedField::CommunityPoolOutput), "genesis" => Ok(GeneratedField::Genesis), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } @@ -125,11 +125,11 @@ impl<'de> serde::Deserialize<'de> for CommitmentSource { source__ = map_.next_value::<::std::option::Option<_>>()?.map(commitment_source::Source::FundingStreamReward) ; } - GeneratedField::DaoOutput => { + GeneratedField::CommunityPoolOutput => { if source__.is_some() { - return Err(serde::de::Error::duplicate_field("daoOutput")); + return Err(serde::de::Error::duplicate_field("communityPoolOutput")); } - source__ = map_.next_value::<::std::option::Option<_>>()?.map(commitment_source::Source::DaoOutput) + source__ = map_.next_value::<::std::option::Option<_>>()?.map(commitment_source::Source::CommunityPoolOutput) ; } GeneratedField::Genesis => { @@ -149,7 +149,7 @@ impl<'de> serde::Deserialize<'de> for CommitmentSource { deserializer.deserialize_struct("penumbra.core.component.sct.v1alpha1.CommitmentSource", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for commitment_source::DaoOutput { +impl serde::Serialize for commitment_source::CommunityPoolOutput { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -157,11 +157,11 @@ impl serde::Serialize for commitment_source::DaoOutput { { use serde::ser::SerializeStruct; let len = 0; - let struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1alpha1.CommitmentSource.DaoOutput", len)?; + let struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1alpha1.CommitmentSource.CommunityPoolOutput", len)?; struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for commitment_source::DaoOutput { +impl<'de> serde::Deserialize<'de> for commitment_source::CommunityPoolOutput { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -200,24 +200,24 @@ impl<'de> serde::Deserialize<'de> for commitment_source::DaoOutput { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = commitment_source::DaoOutput; + type Value = commitment_source::CommunityPoolOutput; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.component.sct.v1alpha1.CommitmentSource.DaoOutput") + formatter.write_str("struct penumbra.core.component.sct.v1alpha1.CommitmentSource.CommunityPoolOutput") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { while map_.next_key::()?.is_some() { let _ = map_.next_value::()?; } - Ok(commitment_source::DaoOutput { + Ok(commitment_source::CommunityPoolOutput { }) } } - deserializer.deserialize_struct("penumbra.core.component.sct.v1alpha1.CommitmentSource.DaoOutput", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.sct.v1alpha1.CommitmentSource.CommunityPoolOutput", FIELDS, GeneratedVisitor) } } impl serde::Serialize for commitment_source::FundingStreamReward { diff --git a/crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.rs index b85515e70e..3a308c420f 100644 --- a/crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.rs @@ -107,14 +107,14 @@ pub mod funding_stream { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] - pub struct ToDao { + pub struct ToCommunityPool { /// The portion of the staking reward for the entire delegation pool /// allocated to this funding stream, specified in basis points. #[prost(uint32, tag = "2")] pub rate_bps: u32, } - impl ::prost::Name for ToDao { - const NAME: &'static str = "ToDao"; + impl ::prost::Name for ToCommunityPool { + const NAME: &'static str = "ToCommunityPool"; const PACKAGE: &'static str = "penumbra.core.component.stake.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { ::prost::alloc::format!( @@ -129,7 +129,7 @@ pub mod funding_stream { #[prost(message, tag = "1")] ToAddress(ToAddress), #[prost(message, tag = "2")] - ToDao(ToDao), + ToCommunityPool(ToCommunityPool), } } impl ::prost::Name for FundingStream { diff --git a/crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.serde.rs index b96455a36c..f144508e87 100644 --- a/crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.serde.rs @@ -893,8 +893,8 @@ impl serde::Serialize for FundingStream { funding_stream::Recipient::ToAddress(v) => { struct_ser.serialize_field("toAddress", v)?; } - funding_stream::Recipient::ToDao(v) => { - struct_ser.serialize_field("toDao", v)?; + funding_stream::Recipient::ToCommunityPool(v) => { + struct_ser.serialize_field("toCommunityPool", v)?; } } } @@ -910,14 +910,14 @@ impl<'de> serde::Deserialize<'de> for FundingStream { const FIELDS: &[&str] = &[ "to_address", "toAddress", - "to_dao", - "toDao", + "to_community_pool", + "toCommunityPool", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { ToAddress, - ToDao, + ToCommunityPool, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -940,7 +940,7 @@ impl<'de> serde::Deserialize<'de> for FundingStream { { match value { "toAddress" | "to_address" => Ok(GeneratedField::ToAddress), - "toDao" | "to_dao" => Ok(GeneratedField::ToDao), + "toCommunityPool" | "to_community_pool" => Ok(GeneratedField::ToCommunityPool), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -970,11 +970,11 @@ impl<'de> serde::Deserialize<'de> for FundingStream { recipient__ = map_.next_value::<::std::option::Option<_>>()?.map(funding_stream::Recipient::ToAddress) ; } - GeneratedField::ToDao => { + GeneratedField::ToCommunityPool => { if recipient__.is_some() { - return Err(serde::de::Error::duplicate_field("toDao")); + return Err(serde::de::Error::duplicate_field("toCommunityPool")); } - recipient__ = map_.next_value::<::std::option::Option<_>>()?.map(funding_stream::Recipient::ToDao) + recipient__ = map_.next_value::<::std::option::Option<_>>()?.map(funding_stream::Recipient::ToCommunityPool) ; } } @@ -1098,7 +1098,7 @@ impl<'de> serde::Deserialize<'de> for funding_stream::ToAddress { deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.FundingStream.ToAddress", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for funding_stream::ToDao { +impl serde::Serialize for funding_stream::ToCommunityPool { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -1109,14 +1109,14 @@ impl serde::Serialize for funding_stream::ToDao { if self.rate_bps != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.FundingStream.ToDao", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.FundingStream.ToCommunityPool", len)?; if self.rate_bps != 0 { struct_ser.serialize_field("rateBps", &self.rate_bps)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for funding_stream::ToDao { +impl<'de> serde::Deserialize<'de> for funding_stream::ToCommunityPool { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where @@ -1161,13 +1161,13 @@ impl<'de> serde::Deserialize<'de> for funding_stream::ToDao { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = funding_stream::ToDao; + type Value = funding_stream::ToCommunityPool; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.component.stake.v1alpha1.FundingStream.ToDao") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.FundingStream.ToCommunityPool") } - fn visit_map(self, mut map_: V) -> std::result::Result + fn visit_map(self, mut map_: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { @@ -1184,12 +1184,12 @@ impl<'de> serde::Deserialize<'de> for funding_stream::ToDao { } } } - Ok(funding_stream::ToDao { + Ok(funding_stream::ToCommunityPool { rate_bps: rate_bps__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.FundingStream.ToDao", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.FundingStream.ToCommunityPool", FIELDS, GeneratedVisitor) } } impl serde::Serialize for GenesisContent { diff --git a/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.rs index cbb683746a..98a8577bff 100644 --- a/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.rs @@ -12,9 +12,7 @@ pub struct Transaction { /// The root of some previous state of the state commitment tree, used as an anchor for all /// ZK state transition proofs. #[prost(message, optional, tag = "3")] - pub anchor: ::core::option::Option< - super::super::super::crypto::tct::v1alpha1::MerkleRoot, - >, + pub anchor: ::core::option::Option, } impl ::prost::Name for Transaction { const NAME: &'static str = "Transaction"; @@ -93,9 +91,8 @@ impl ::prost::Name for TransactionParameters { pub struct DetectionData { /// A list of clues for use with Fuzzy Message Detection. #[prost(message, repeated, tag = "4")] - pub fmd_clues: ::prost::alloc::vec::Vec< - super::super::super::crypto::decaf377_fmd::v1alpha1::Clue, - >, + pub fmd_clues: + ::prost::alloc::vec::Vec, } impl ::prost::Name for DetectionData { const NAME: &'static str = "DetectionData"; @@ -129,28 +126,18 @@ pub mod action { #[prost(message, tag = "4")] SwapClaim(super::super::super::component::dex::v1alpha1::SwapClaim), #[prost(message, tag = "16")] - ValidatorDefinition( - super::super::super::component::stake::v1alpha1::ValidatorDefinition, - ), + ValidatorDefinition(super::super::super::component::stake::v1alpha1::ValidatorDefinition), #[prost(message, tag = "17")] IbcRelayAction(super::super::super::component::ibc::v1alpha1::IbcRelay), /// Governance: #[prost(message, tag = "18")] - ProposalSubmit( - super::super::super::component::governance::v1alpha1::ProposalSubmit, - ), + ProposalSubmit(super::super::super::component::governance::v1alpha1::ProposalSubmit), #[prost(message, tag = "19")] - ProposalWithdraw( - super::super::super::component::governance::v1alpha1::ProposalWithdraw, - ), + ProposalWithdraw(super::super::super::component::governance::v1alpha1::ProposalWithdraw), #[prost(message, tag = "20")] - ValidatorVote( - super::super::super::component::governance::v1alpha1::ValidatorVote, - ), + ValidatorVote(super::super::super::component::governance::v1alpha1::ValidatorVote), #[prost(message, tag = "21")] - DelegatorVote( - super::super::super::component::governance::v1alpha1::DelegatorVote, - ), + DelegatorVote(super::super::super::component::governance::v1alpha1::DelegatorVote), #[prost(message, tag = "22")] ProposalDepositClaim( super::super::super::component::governance::v1alpha1::ProposalDepositClaim, @@ -161,29 +148,29 @@ pub mod action { #[prost(message, tag = "31")] PositionClose(super::super::super::component::dex::v1alpha1::PositionClose), #[prost(message, tag = "32")] - PositionWithdraw( - super::super::super::component::dex::v1alpha1::PositionWithdraw, - ), + PositionWithdraw(super::super::super::component::dex::v1alpha1::PositionWithdraw), #[prost(message, tag = "34")] - PositionRewardClaim( - super::super::super::component::dex::v1alpha1::PositionRewardClaim, - ), + PositionRewardClaim(super::super::super::component::dex::v1alpha1::PositionRewardClaim), /// (un)delegation #[prost(message, tag = "40")] Delegate(super::super::super::component::stake::v1alpha1::Delegate), #[prost(message, tag = "41")] Undelegate(super::super::super::component::stake::v1alpha1::Undelegate), #[prost(message, tag = "42")] - UndelegateClaim( - super::super::super::component::stake::v1alpha1::UndelegateClaim, - ), - /// DAO + UndelegateClaim(super::super::super::component::stake::v1alpha1::UndelegateClaim), + /// Community Pool #[prost(message, tag = "50")] - DaoSpend(super::super::super::component::governance::v1alpha1::DaoSpend), + CommunityPoolSpend( + super::super::super::component::governance::v1alpha1::CommunityPoolSpend, + ), #[prost(message, tag = "51")] - DaoOutput(super::super::super::component::governance::v1alpha1::DaoOutput), + CommunityPoolOutput( + super::super::super::component::governance::v1alpha1::CommunityPoolOutput, + ), #[prost(message, tag = "52")] - DaoDeposit(super::super::super::component::governance::v1alpha1::DaoDeposit), + CommunityPoolDeposit( + super::super::super::component::governance::v1alpha1::CommunityPoolDeposit, + ), #[prost(message, tag = "200")] Ics20Withdrawal(super::super::super::component::ibc::v1alpha1::Ics20Withdrawal), } @@ -207,14 +194,11 @@ pub struct TransactionPerspective { /// The openings of note commitments referred to in the transaction /// but not included in the transaction. #[prost(message, repeated, tag = "3")] - pub advice_notes: ::prost::alloc::vec::Vec< - super::super::component::shielded_pool::v1alpha1::Note, - >, + pub advice_notes: + ::prost::alloc::vec::Vec, /// Any relevant address views. #[prost(message, repeated, tag = "4")] - pub address_views: ::prost::alloc::vec::Vec< - super::super::keys::v1alpha1::AddressView, - >, + pub address_views: ::prost::alloc::vec::Vec, /// Any relevant denoms for viewed assets. #[prost(message, repeated, tag = "5")] pub denoms: ::prost::alloc::vec::Vec, @@ -235,9 +219,8 @@ pub struct PayloadKeyWithCommitment { #[prost(message, optional, tag = "1")] pub payload_key: ::core::option::Option, #[prost(message, optional, tag = "2")] - pub commitment: ::core::option::Option< - super::super::super::crypto::tct::v1alpha1::StateCommitment, - >, + pub commitment: + ::core::option::Option, } impl ::prost::Name for PayloadKeyWithCommitment { const NAME: &'static str = "PayloadKeyWithCommitment"; @@ -250,13 +233,9 @@ impl ::prost::Name for PayloadKeyWithCommitment { #[derive(Clone, PartialEq, ::prost::Message)] pub struct NullifierWithNote { #[prost(message, optional, tag = "1")] - pub nullifier: ::core::option::Option< - super::super::component::sct::v1alpha1::Nullifier, - >, + pub nullifier: ::core::option::Option, #[prost(message, optional, tag = "2")] - pub note: ::core::option::Option< - super::super::component::shielded_pool::v1alpha1::Note, - >, + pub note: ::core::option::Option, } impl ::prost::Name for NullifierWithNote { const NAME: &'static str = "NullifierWithNote"; @@ -280,9 +259,7 @@ pub struct TransactionView { /// The root of some previous state of the state commitment tree, used as an anchor for all /// ZK state transition proofs. #[prost(message, optional, tag = "3")] - pub anchor: ::core::option::Option< - super::super::super::crypto::tct::v1alpha1::MerkleRoot, - >, + pub anchor: ::core::option::Option, } impl ::prost::Name for TransactionView { const NAME: &'static str = "TransactionView"; @@ -342,28 +319,18 @@ pub mod action_view { SwapClaim(super::super::super::component::dex::v1alpha1::SwapClaimView), /// Action types without visible/opaque variants #[prost(message, tag = "16")] - ValidatorDefinition( - super::super::super::component::stake::v1alpha1::ValidatorDefinition, - ), + ValidatorDefinition(super::super::super::component::stake::v1alpha1::ValidatorDefinition), #[prost(message, tag = "17")] IbcRelayAction(super::super::super::component::ibc::v1alpha1::IbcRelay), /// Governance: #[prost(message, tag = "18")] - ProposalSubmit( - super::super::super::component::governance::v1alpha1::ProposalSubmit, - ), + ProposalSubmit(super::super::super::component::governance::v1alpha1::ProposalSubmit), #[prost(message, tag = "19")] - ProposalWithdraw( - super::super::super::component::governance::v1alpha1::ProposalWithdraw, - ), + ProposalWithdraw(super::super::super::component::governance::v1alpha1::ProposalWithdraw), #[prost(message, tag = "20")] - ValidatorVote( - super::super::super::component::governance::v1alpha1::ValidatorVote, - ), + ValidatorVote(super::super::super::component::governance::v1alpha1::ValidatorVote), #[prost(message, tag = "21")] - DelegatorVote( - super::super::super::component::governance::v1alpha1::DelegatorVoteView, - ), + DelegatorVote(super::super::super::component::governance::v1alpha1::DelegatorVoteView), #[prost(message, tag = "22")] ProposalDepositClaim( super::super::super::component::governance::v1alpha1::ProposalDepositClaim, @@ -373,31 +340,31 @@ pub mod action_view { #[prost(message, tag = "31")] PositionClose(super::super::super::component::dex::v1alpha1::PositionClose), #[prost(message, tag = "32")] - PositionWithdraw( - super::super::super::component::dex::v1alpha1::PositionWithdraw, - ), + PositionWithdraw(super::super::super::component::dex::v1alpha1::PositionWithdraw), #[prost(message, tag = "34")] - PositionRewardClaim( - super::super::super::component::dex::v1alpha1::PositionRewardClaim, - ), + PositionRewardClaim(super::super::super::component::dex::v1alpha1::PositionRewardClaim), #[prost(message, tag = "41")] Delegate(super::super::super::component::stake::v1alpha1::Delegate), #[prost(message, tag = "42")] Undelegate(super::super::super::component::stake::v1alpha1::Undelegate), - /// DAO + /// Community Pool #[prost(message, tag = "50")] - DaoSpend(super::super::super::component::governance::v1alpha1::DaoSpend), + CommunityPoolSpend( + super::super::super::component::governance::v1alpha1::CommunityPoolSpend, + ), #[prost(message, tag = "51")] - DaoOutput(super::super::super::component::governance::v1alpha1::DaoOutput), + CommunityPoolOutput( + super::super::super::component::governance::v1alpha1::CommunityPoolOutput, + ), #[prost(message, tag = "52")] - DaoDeposit(super::super::super::component::governance::v1alpha1::DaoDeposit), + CommunityPoolDeposit( + super::super::super::component::governance::v1alpha1::CommunityPoolDeposit, + ), /// TODO: we have no way to recover the opening of the undelegate_claim's /// balance commitment, and can only infer the value from looking at the rest /// of the transaction. is that fine? #[prost(message, tag = "43")] - UndelegateClaim( - super::super::super::component::stake::v1alpha1::UndelegateClaim, - ), + UndelegateClaim(super::super::super::component::stake::v1alpha1::UndelegateClaim), #[prost(message, tag = "200")] Ics20Withdrawal(super::super::super::component::ibc::v1alpha1::Ics20Withdrawal), } @@ -415,9 +382,7 @@ impl ::prost::Name for ActionView { pub struct AuthorizationData { /// The computed auth hash for the approved transaction plan. #[prost(message, optional, tag = "1")] - pub effect_hash: ::core::option::Option< - super::super::effecthash::v1alpha1::EffectHash, - >, + pub effect_hash: ::core::option::Option, /// The required spend authorizations, returned in the same order as the /// Spend actions in the original request. #[prost(message, repeated, tag = "2")] @@ -444,15 +409,12 @@ impl ::prost::Name for AuthorizationData { pub struct WitnessData { /// The anchor for the state transition proofs. #[prost(message, optional, tag = "1")] - pub anchor: ::core::option::Option< - super::super::super::crypto::tct::v1alpha1::MerkleRoot, - >, + pub anchor: ::core::option::Option, /// The auth paths for the notes the transaction spends, in the /// same order as the spends in the transaction plan. #[prost(message, repeated, tag = "2")] - pub state_commitment_proofs: ::prost::alloc::vec::Vec< - super::super::super::crypto::tct::v1alpha1::StateCommitmentProof, - >, + pub state_commitment_proofs: + ::prost::alloc::vec::Vec, } impl ::prost::Name for WitnessData { const NAME: &'static str = "WitnessData"; @@ -530,29 +492,19 @@ pub mod action_plan { SwapClaim(super::super::super::component::dex::v1alpha1::SwapClaimPlan), /// This is just a message relayed to the chain. #[prost(message, tag = "16")] - ValidatorDefinition( - super::super::super::component::stake::v1alpha1::ValidatorDefinition, - ), + ValidatorDefinition(super::super::super::component::stake::v1alpha1::ValidatorDefinition), /// This is just a message relayed to the chain. #[prost(message, tag = "17")] IbcRelayAction(super::super::super::component::ibc::v1alpha1::IbcRelay), /// Governance: #[prost(message, tag = "18")] - ProposalSubmit( - super::super::super::component::governance::v1alpha1::ProposalSubmit, - ), + ProposalSubmit(super::super::super::component::governance::v1alpha1::ProposalSubmit), #[prost(message, tag = "19")] - ProposalWithdraw( - super::super::super::component::governance::v1alpha1::ProposalWithdraw, - ), + ProposalWithdraw(super::super::super::component::governance::v1alpha1::ProposalWithdraw), #[prost(message, tag = "20")] - ValidatorVote( - super::super::super::component::governance::v1alpha1::ValidatorVote, - ), + ValidatorVote(super::super::super::component::governance::v1alpha1::ValidatorVote), #[prost(message, tag = "21")] - DelegatorVote( - super::super::super::component::governance::v1alpha1::DelegatorVotePlan, - ), + DelegatorVote(super::super::super::component::governance::v1alpha1::DelegatorVotePlan), #[prost(message, tag = "22")] ProposalDepositClaim( super::super::super::component::governance::v1alpha1::ProposalDepositClaim, @@ -565,13 +517,9 @@ pub mod action_plan { PositionClose(super::super::super::component::dex::v1alpha1::PositionClose), /// The position withdraw/reward claim actions require balance information so they have Plan types. #[prost(message, tag = "32")] - PositionWithdraw( - super::super::super::component::dex::v1alpha1::PositionWithdrawPlan, - ), + PositionWithdraw(super::super::super::component::dex::v1alpha1::PositionWithdrawPlan), #[prost(message, tag = "34")] - PositionRewardClaim( - super::super::super::component::dex::v1alpha1::PositionRewardClaimPlan, - ), + PositionRewardClaim(super::super::super::component::dex::v1alpha1::PositionRewardClaimPlan), /// We don't need any extra information (yet) to understand delegations, /// because we don't yet use flow encryption. #[prost(message, tag = "40")] @@ -581,16 +529,20 @@ pub mod action_plan { #[prost(message, tag = "41")] Undelegate(super::super::super::component::stake::v1alpha1::Undelegate), #[prost(message, tag = "42")] - UndelegateClaim( - super::super::super::component::stake::v1alpha1::UndelegateClaimPlan, - ), - /// DAO + UndelegateClaim(super::super::super::component::stake::v1alpha1::UndelegateClaimPlan), + /// Community Pool #[prost(message, tag = "50")] - DaoSpend(super::super::super::component::governance::v1alpha1::DaoSpend), + CommunityPoolSpend( + super::super::super::component::governance::v1alpha1::CommunityPoolSpend, + ), #[prost(message, tag = "51")] - DaoOutput(super::super::super::component::governance::v1alpha1::DaoOutput), + CommunityPoolOutput( + super::super::super::component::governance::v1alpha1::CommunityPoolOutput, + ), #[prost(message, tag = "52")] - DaoDeposit(super::super::super::component::governance::v1alpha1::DaoDeposit), + CommunityPoolDeposit( + super::super::super::component::governance::v1alpha1::CommunityPoolDeposit, + ), } } impl ::prost::Name for ActionPlan { @@ -679,9 +631,7 @@ impl ::prost::Name for MemoPlaintext { #[derive(Clone, PartialEq, ::prost::Message)] pub struct MemoPlaintextView { #[prost(message, optional, tag = "1")] - pub return_address: ::core::option::Option< - super::super::keys::v1alpha1::AddressView, - >, + pub return_address: ::core::option::Option, #[prost(string, tag = "2")] pub text: ::prost::alloc::string::String, } @@ -712,9 +662,7 @@ pub mod memo_view { const NAME: &'static str = "Visible"; const PACKAGE: &'static str = "penumbra.core.transaction.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.transaction.v1alpha1.MemoView.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.transaction.v1alpha1.MemoView.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -727,9 +675,7 @@ pub mod memo_view { const NAME: &'static str = "Opaque"; const PACKAGE: &'static str = "penumbra.core.transaction.v1alpha1"; fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "penumbra.core.transaction.v1alpha1.MemoView.{}", Self::NAME - ) + ::prost::alloc::format!("penumbra.core.transaction.v1alpha1.MemoView.{}", Self::NAME) } } #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.serde.rs index 0b649f1cb4..e9a13de4cb 100644 --- a/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.serde.rs @@ -66,14 +66,14 @@ impl serde::Serialize for Action { action::Action::UndelegateClaim(v) => { struct_ser.serialize_field("undelegateClaim", v)?; } - action::Action::DaoSpend(v) => { - struct_ser.serialize_field("daoSpend", v)?; + action::Action::CommunityPoolSpend(v) => { + struct_ser.serialize_field("communityPoolSpend", v)?; } - action::Action::DaoOutput(v) => { - struct_ser.serialize_field("daoOutput", v)?; + action::Action::CommunityPoolOutput(v) => { + struct_ser.serialize_field("communityPoolOutput", v)?; } - action::Action::DaoDeposit(v) => { - struct_ser.serialize_field("daoDeposit", v)?; + action::Action::CommunityPoolDeposit(v) => { + struct_ser.serialize_field("communityPoolDeposit", v)?; } action::Action::Ics20Withdrawal(v) => { struct_ser.serialize_field("ics20Withdrawal", v)?; @@ -121,12 +121,12 @@ impl<'de> serde::Deserialize<'de> for Action { "undelegate", "undelegate_claim", "undelegateClaim", - "dao_spend", - "daoSpend", - "dao_output", - "daoOutput", - "dao_deposit", - "daoDeposit", + "community_pool_spend", + "communityPoolSpend", + "community_pool_output", + "communityPoolOutput", + "community_pool_deposit", + "communityPoolDeposit", "ics20_withdrawal", "ics20Withdrawal", ]; @@ -151,9 +151,9 @@ impl<'de> serde::Deserialize<'de> for Action { Delegate, Undelegate, UndelegateClaim, - DaoSpend, - DaoOutput, - DaoDeposit, + CommunityPoolSpend, + CommunityPoolOutput, + CommunityPoolDeposit, Ics20Withdrawal, } impl<'de> serde::Deserialize<'de> for GeneratedField { @@ -194,9 +194,9 @@ impl<'de> serde::Deserialize<'de> for Action { "delegate" => Ok(GeneratedField::Delegate), "undelegate" => Ok(GeneratedField::Undelegate), "undelegateClaim" | "undelegate_claim" => Ok(GeneratedField::UndelegateClaim), - "daoSpend" | "dao_spend" => Ok(GeneratedField::DaoSpend), - "daoOutput" | "dao_output" => Ok(GeneratedField::DaoOutput), - "daoDeposit" | "dao_deposit" => Ok(GeneratedField::DaoDeposit), + "communityPoolSpend" | "community_pool_spend" => Ok(GeneratedField::CommunityPoolSpend), + "communityPoolOutput" | "community_pool_output" => Ok(GeneratedField::CommunityPoolOutput), + "communityPoolDeposit" | "community_pool_deposit" => Ok(GeneratedField::CommunityPoolDeposit), "ics20Withdrawal" | "ics20_withdrawal" => Ok(GeneratedField::Ics20Withdrawal), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } @@ -346,25 +346,25 @@ impl<'de> serde::Deserialize<'de> for Action { action__ = map_.next_value::<::std::option::Option<_>>()?.map(action::Action::UndelegateClaim) ; } - GeneratedField::DaoSpend => { + GeneratedField::CommunityPoolSpend => { if action__.is_some() { - return Err(serde::de::Error::duplicate_field("daoSpend")); + return Err(serde::de::Error::duplicate_field("communityPoolSpend")); } - action__ = map_.next_value::<::std::option::Option<_>>()?.map(action::Action::DaoSpend) + action__ = map_.next_value::<::std::option::Option<_>>()?.map(action::Action::CommunityPoolSpend) ; } - GeneratedField::DaoOutput => { + GeneratedField::CommunityPoolOutput => { if action__.is_some() { - return Err(serde::de::Error::duplicate_field("daoOutput")); + return Err(serde::de::Error::duplicate_field("communityPoolOutput")); } - action__ = map_.next_value::<::std::option::Option<_>>()?.map(action::Action::DaoOutput) + action__ = map_.next_value::<::std::option::Option<_>>()?.map(action::Action::CommunityPoolOutput) ; } - GeneratedField::DaoDeposit => { + GeneratedField::CommunityPoolDeposit => { if action__.is_some() { - return Err(serde::de::Error::duplicate_field("daoDeposit")); + return Err(serde::de::Error::duplicate_field("communityPoolDeposit")); } - action__ = map_.next_value::<::std::option::Option<_>>()?.map(action::Action::DaoDeposit) + action__ = map_.next_value::<::std::option::Option<_>>()?.map(action::Action::CommunityPoolDeposit) ; } GeneratedField::Ics20Withdrawal => { @@ -455,14 +455,14 @@ impl serde::Serialize for ActionPlan { action_plan::Action::UndelegateClaim(v) => { struct_ser.serialize_field("undelegateClaim", v)?; } - action_plan::Action::DaoSpend(v) => { - struct_ser.serialize_field("daoSpend", v)?; + action_plan::Action::CommunityPoolSpend(v) => { + struct_ser.serialize_field("communityPoolSpend", v)?; } - action_plan::Action::DaoOutput(v) => { - struct_ser.serialize_field("daoOutput", v)?; + action_plan::Action::CommunityPoolOutput(v) => { + struct_ser.serialize_field("communityPoolOutput", v)?; } - action_plan::Action::DaoDeposit(v) => { - struct_ser.serialize_field("daoDeposit", v)?; + action_plan::Action::CommunityPoolDeposit(v) => { + struct_ser.serialize_field("communityPoolDeposit", v)?; } } } @@ -508,12 +508,12 @@ impl<'de> serde::Deserialize<'de> for ActionPlan { "undelegate", "undelegate_claim", "undelegateClaim", - "dao_spend", - "daoSpend", - "dao_output", - "daoOutput", - "dao_deposit", - "daoDeposit", + "community_pool_spend", + "communityPoolSpend", + "community_pool_output", + "communityPoolOutput", + "community_pool_deposit", + "communityPoolDeposit", ]; #[allow(clippy::enum_variant_names)] @@ -537,9 +537,9 @@ impl<'de> serde::Deserialize<'de> for ActionPlan { Delegate, Undelegate, UndelegateClaim, - DaoSpend, - DaoOutput, - DaoDeposit, + CommunityPoolSpend, + CommunityPoolOutput, + CommunityPoolDeposit, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -580,9 +580,9 @@ impl<'de> serde::Deserialize<'de> for ActionPlan { "delegate" => Ok(GeneratedField::Delegate), "undelegate" => Ok(GeneratedField::Undelegate), "undelegateClaim" | "undelegate_claim" => Ok(GeneratedField::UndelegateClaim), - "daoSpend" | "dao_spend" => Ok(GeneratedField::DaoSpend), - "daoOutput" | "dao_output" => Ok(GeneratedField::DaoOutput), - "daoDeposit" | "dao_deposit" => Ok(GeneratedField::DaoDeposit), + "communityPoolSpend" | "community_pool_spend" => Ok(GeneratedField::CommunityPoolSpend), + "communityPoolOutput" | "community_pool_output" => Ok(GeneratedField::CommunityPoolOutput), + "communityPoolDeposit" | "community_pool_deposit" => Ok(GeneratedField::CommunityPoolDeposit), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -738,25 +738,25 @@ impl<'de> serde::Deserialize<'de> for ActionPlan { action__ = map_.next_value::<::std::option::Option<_>>()?.map(action_plan::Action::UndelegateClaim) ; } - GeneratedField::DaoSpend => { + GeneratedField::CommunityPoolSpend => { if action__.is_some() { - return Err(serde::de::Error::duplicate_field("daoSpend")); + return Err(serde::de::Error::duplicate_field("communityPoolSpend")); } - action__ = map_.next_value::<::std::option::Option<_>>()?.map(action_plan::Action::DaoSpend) + action__ = map_.next_value::<::std::option::Option<_>>()?.map(action_plan::Action::CommunityPoolSpend) ; } - GeneratedField::DaoOutput => { + GeneratedField::CommunityPoolOutput => { if action__.is_some() { - return Err(serde::de::Error::duplicate_field("daoOutput")); + return Err(serde::de::Error::duplicate_field("communityPoolOutput")); } - action__ = map_.next_value::<::std::option::Option<_>>()?.map(action_plan::Action::DaoOutput) + action__ = map_.next_value::<::std::option::Option<_>>()?.map(action_plan::Action::CommunityPoolOutput) ; } - GeneratedField::DaoDeposit => { + GeneratedField::CommunityPoolDeposit => { if action__.is_some() { - return Err(serde::de::Error::duplicate_field("daoDeposit")); + return Err(serde::de::Error::duplicate_field("communityPoolDeposit")); } - action__ = map_.next_value::<::std::option::Option<_>>()?.map(action_plan::Action::DaoDeposit) + action__ = map_.next_value::<::std::option::Option<_>>()?.map(action_plan::Action::CommunityPoolDeposit) ; } } @@ -834,14 +834,14 @@ impl serde::Serialize for ActionView { action_view::ActionView::Undelegate(v) => { struct_ser.serialize_field("undelegate", v)?; } - action_view::ActionView::DaoSpend(v) => { - struct_ser.serialize_field("daoSpend", v)?; + action_view::ActionView::CommunityPoolSpend(v) => { + struct_ser.serialize_field("communityPoolSpend", v)?; } - action_view::ActionView::DaoOutput(v) => { - struct_ser.serialize_field("daoOutput", v)?; + action_view::ActionView::CommunityPoolOutput(v) => { + struct_ser.serialize_field("communityPoolOutput", v)?; } - action_view::ActionView::DaoDeposit(v) => { - struct_ser.serialize_field("daoDeposit", v)?; + action_view::ActionView::CommunityPoolDeposit(v) => { + struct_ser.serialize_field("communityPoolDeposit", v)?; } action_view::ActionView::UndelegateClaim(v) => { struct_ser.serialize_field("undelegateClaim", v)?; @@ -890,12 +890,12 @@ impl<'de> serde::Deserialize<'de> for ActionView { "positionRewardClaim", "delegate", "undelegate", - "dao_spend", - "daoSpend", - "dao_output", - "daoOutput", - "dao_deposit", - "daoDeposit", + "community_pool_spend", + "communityPoolSpend", + "community_pool_output", + "communityPoolOutput", + "community_pool_deposit", + "communityPoolDeposit", "undelegate_claim", "undelegateClaim", "ics20_withdrawal", @@ -921,9 +921,9 @@ impl<'de> serde::Deserialize<'de> for ActionView { PositionRewardClaim, Delegate, Undelegate, - DaoSpend, - DaoOutput, - DaoDeposit, + CommunityPoolSpend, + CommunityPoolOutput, + CommunityPoolDeposit, UndelegateClaim, Ics20Withdrawal, } @@ -964,9 +964,9 @@ impl<'de> serde::Deserialize<'de> for ActionView { "positionRewardClaim" | "position_reward_claim" => Ok(GeneratedField::PositionRewardClaim), "delegate" => Ok(GeneratedField::Delegate), "undelegate" => Ok(GeneratedField::Undelegate), - "daoSpend" | "dao_spend" => Ok(GeneratedField::DaoSpend), - "daoOutput" | "dao_output" => Ok(GeneratedField::DaoOutput), - "daoDeposit" | "dao_deposit" => Ok(GeneratedField::DaoDeposit), + "communityPoolSpend" | "community_pool_spend" => Ok(GeneratedField::CommunityPoolSpend), + "communityPoolOutput" | "community_pool_output" => Ok(GeneratedField::CommunityPoolOutput), + "communityPoolDeposit" | "community_pool_deposit" => Ok(GeneratedField::CommunityPoolDeposit), "undelegateClaim" | "undelegate_claim" => Ok(GeneratedField::UndelegateClaim), "ics20Withdrawal" | "ics20_withdrawal" => Ok(GeneratedField::Ics20Withdrawal), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), @@ -1110,25 +1110,25 @@ impl<'de> serde::Deserialize<'de> for ActionView { action_view__ = map_.next_value::<::std::option::Option<_>>()?.map(action_view::ActionView::Undelegate) ; } - GeneratedField::DaoSpend => { + GeneratedField::CommunityPoolSpend => { if action_view__.is_some() { - return Err(serde::de::Error::duplicate_field("daoSpend")); + return Err(serde::de::Error::duplicate_field("communityPoolSpend")); } - action_view__ = map_.next_value::<::std::option::Option<_>>()?.map(action_view::ActionView::DaoSpend) + action_view__ = map_.next_value::<::std::option::Option<_>>()?.map(action_view::ActionView::CommunityPoolSpend) ; } - GeneratedField::DaoOutput => { + GeneratedField::CommunityPoolOutput => { if action_view__.is_some() { - return Err(serde::de::Error::duplicate_field("daoOutput")); + return Err(serde::de::Error::duplicate_field("communityPoolOutput")); } - action_view__ = map_.next_value::<::std::option::Option<_>>()?.map(action_view::ActionView::DaoOutput) + action_view__ = map_.next_value::<::std::option::Option<_>>()?.map(action_view::ActionView::CommunityPoolOutput) ; } - GeneratedField::DaoDeposit => { + GeneratedField::CommunityPoolDeposit => { if action_view__.is_some() { - return Err(serde::de::Error::duplicate_field("daoDeposit")); + return Err(serde::de::Error::duplicate_field("communityPoolDeposit")); } - action_view__ = map_.next_value::<::std::option::Option<_>>()?.map(action_view::ActionView::DaoDeposit) + action_view__ = map_.next_value::<::std::option::Option<_>>()?.map(action_view::ActionView::CommunityPoolDeposit) ; } GeneratedField::UndelegateClaim => { diff --git a/crates/proto/src/gen/proto_descriptor.bin.no_lfs b/crates/proto/src/gen/proto_descriptor.bin.no_lfs index c4c03ac1271a792fd86b62a8c0eb6360bb8b0ee3..3b98f11d1bf5500f9b163cb7c8414f264335c4c9 100644 GIT binary patch delta 3540 zcmds4U2Gdw7WO%JJV|bx#2GuSJI=!usuCRAw9zIW zH=cwIg@pnYh`(L1+ABav<)LC9ihu?&ZTbY;{doZ)gv8$im5?a=P;IM~SW(o%nej}z zlPXfR`>@*e+jsB%&i&3k_kL%5{PW=XbHO*yHA|n@@@?YMgDljU(Wa(m@)P>pSV7Y! z6SH0E$-@40SHeBsS(w&zO-YDX53z9dzYt1^SZ{oauN-v3Bq>TVJ)NG)>AC5mGRj-s zkxCE5BEO0)j+x6-gBM4_#^`wlS>Ms=5?#9GnmB-FW#!qLED$VKVJ*rULkU4&9(weHXGn0xTW z)w{Yr1@7B1lbfDP<)&vRGCAchz*X0>fnqVI-#}gBm_Cm1jCSJvnc@)Mx-F!Vq$)iZJrwY_a)Fry~VM}9e zg!gkv@*pj*#O~7NmfN!(+{eA<5TmgTU3?vd07de7>OgIBhluVgmoHk>(|WFx(~n62 z3iDO2;B6Eb%)qtStA^dg((`N7^{cFnXbBN&)r5m++uH6PzLld)$`wx#)ZUU-5w39^ zh)6#I4W-J~x}W~WB+8_h!UW`~gOE`3tqzh24W%4JTLgB_mXfV|pnd*CYZ74HV^`K1 zSJr}j8+&sN7s-cMLafwK711ZbC-&r_9o{hx=Rt$;BXHd%)n@dzd&uH+o7S}0{ zSW|a+mfS*-EWn@q4LsmlY=jTMcUW~HR4(Xlv!D^<79D;k)oNy)7%6YUW_4VQ%t2#F z-#@L*?AsqrNAGpT5o``N!B31WbMRYS-(#jt1!Z&yacQN4=(yq`r`TrT_=axdn}hJ@ z9!m9%Hz2{_EAiz?C^i;(y{?UAT<0G`>qTxC^$XA@I_AOet}ta>r)zFiug$}t66bY0 zmyCZf4`HL`ZFs#2RvBkLf?vS;b(TtoK$ z!`D!Dy(ONsoa>2qHH;dC@8O?5{|+8>%blvk!G;m8xJE526J7JtCMEWJSX#fUl{h5h z%az7Z9XP`n<`d1jfAIM#}B z7&hK-#VS8EicdD;K~P1iALppl@Au;mHJzQjhOVW8GMU%6fI$b6*L({N?G9unjCUB9 zx8vg#D;xQX$YqJljhsb#6{QaKNsR6k&tH@R;txakNzGzv*2z6Oj8_|Ak2sXYw#Zg1 zW(3Khq!Vmlw*zU56YQ?LjlX8`-DA>ge*`X~`&pmyo|h$L-%Ise9?0kuT3#6viKk(k zG2mmf@~Yx8#qAb9oP>z*hcGzk5@VH?-i5ok)~GVOoTv1NTL61*a|K$)Q_9229AA-f zJ=L*njvDWT9_ker!`QRN6>D30j$~cCs@BOZ1lYqe8ui8|^?y0r_zh)ipMpp#tikxO znLQ!l$$I0iRyI)a|6b=;I@x9a!y~FUx@};DTh{7Dg=}|R>U9v=?s(tN9YnS}e&;Z+ zriSFjfWk7;4tpvl3S(*6lnoSZ@fH9d75~my*NPJ1t7)tEO8frB)>Auj@P**`_becL0d9G z;vPX;GC|@VL0hsPgNk$%ZOMd)O0X=MAW@H^Etw!ukD@Kvj}3|>(2-1#xP;4+2@+SJ zEtw#31(M_o_pl8Wc(_AE?qm1=8@*IeFWqC@ypJgepNXLfHuYaTieVftw6Np*L&_N9B$ndBz%^m7n3sf7)-35qt@c^k$g zSy@OiGiN6LA}^s>Zhuu)f0l>UXJd6J*DzsT%^~3K75%BcEp4g3%^NyWMh>{2Hq6gt zQrSn7o08ofsf;0Z)U!x6m^~{~z5S_7HX>Fen0ehXTj{(ooXst*E)zc&qLM070qWpoTxi+GVfqAQQlP9i)*ooICwgOb_yj&|U*Mhzn z?@TcJLX7T$ak)?;A_jWFE!KE7xA<}wlwo|gT$hG4_>!Dc-P_as*`EGvI4X)mET%R` z)hjJGS08hjZ!MPf!smJsFQkBs_rYz1YqG2#PHEnhDk~#FQ7nn97FV{wL`J(ra4R%J zK(=m$?N}dG!l~4Zu946@HlhnBykQ$rjznp>y!{e=Hs;;(>NL(z3g+aZ7Ec;1P>6v#7v+zH;bT-mBU zqZ}D_i3>3{RSbI2n26@uJA_vs3PJ{d6S=M# zjFGvt_fVT083pm_VK!cLEys(hhvc$W91TIUcw#-)#_G*HF$79`ge4xaA*DUSnr6w| zdOSC%y>*V>>%zNiy4+L1rs(*wUw-0YpXuIJ|E})C;(~{I{YH$1s;t^l7pdx+bvB+E z*}Z3hzz`L zMiVch$>hXzq8( zM#SrEo+HOEU}rq{bSg^}VKG@^7)YoEsdtBglvjo1_+@VQ8m;wC00!MFsP1 zPeG!d2CMA}67@8Y+&nd4Xd^&+6L~J(Q{jY_DnQ&3AjMXcxFbN42Uf5l-&o0hRNVb& zNhV0#{b)%hNZkEsN%mvV&<>y_nGjJ4<|Pv(>H)MQ6C~;Zv?Tj6WM~3y$pnc@I4_wX zaRpkE2@+QzN&YIy9xA}0gn$j~h5sDKg2wSSHL|MEIwU0#*X3D!+R;1-8SE;Dj%JeGrms5xN z)!e%%N=0r+WtBdbnX3;7q(b_QIc{)0Y)@F4cA)>W4&wlm% Mb|%kn*WNk)H(?TK#Q*>R diff --git a/crates/proto/src/lib.rs b/crates/proto/src/lib.rs index 88c70fadcd..d83ab7a8a5 100644 --- a/crates/proto/src/lib.rs +++ b/crates/proto/src/lib.rs @@ -85,10 +85,10 @@ pub mod penumbra { } } - pub mod dao { + pub mod community_pool { pub mod v1alpha1 { - include!("gen/penumbra.core.component.dao.v1alpha1.rs"); - include!("gen/penumbra.core.component.dao.v1alpha1.serde.rs"); + include!("gen/penumbra.core.component.community_pool.v1alpha1.rs"); + include!("gen/penumbra.core.component.community_pool.v1alpha1.serde.rs"); } } diff --git a/crates/view/Cargo.toml b/crates/view/Cargo.toml index c8ba80e57e..fbafb99c11 100644 --- a/crates/view/Cargo.toml +++ b/crates/view/Cargo.toml @@ -31,7 +31,7 @@ penumbra-governance = { path = "../core/component/governance", default-features penumbra-stake = { path = "../core/component/stake", default-features = false } penumbra-ibc = { path = "../core/component/ibc", default-features = false } penumbra-distributions = { path = "../core/component/distributions", default-features = false } -penumbra-dao = { path = "../core/component/dao", default-features = false } +penumbra-community-pool = { path = "../core/component/community-pool", default-features = false } penumbra-dex = { path = "../core/component/dex", default-features = false } penumbra-sct = { path = "../core/component/sct", default-features = false } penumbra-fee = { path = "../core/component/fee", default-features = false } diff --git a/crates/view/src/planner.rs b/crates/view/src/planner.rs index 4bc6e0f07f..a9c40e2162 100644 --- a/crates/view/src/planner.rs +++ b/crates/view/src/planner.rs @@ -8,7 +8,7 @@ use anyhow::Result; use penumbra_asset::{asset, Balance, Value, STAKING_TOKEN_ASSET_ID}; use penumbra_chain::params::{ChainParameters, FmdParameters}; -use penumbra_dao::DaoDeposit; +use penumbra_community_pool::CommunityPoolDeposit; use penumbra_dex::{ lp::action::{PositionClose, PositionOpen}, lp::plan::PositionWithdrawPlan, @@ -357,10 +357,12 @@ impl Planner { self } - /// Deposit a value into the DAO. + /// Deposit a value into the Community Pool. #[instrument(skip(self))] - pub fn dao_deposit(&mut self, value: Value) -> &mut Self { - self.action(ActionPlan::DaoDeposit(DaoDeposit { value })); + pub fn community_pool_deposit(&mut self, value: Value) -> &mut Self { + self.action(ActionPlan::CommunityPoolDeposit(CommunityPoolDeposit { + value, + })); self } diff --git a/crates/view/src/storage.rs b/crates/view/src/storage.rs index e65dfc2362..9645914910 100644 --- a/crates/view/src/storage.rs +++ b/crates/view/src/storage.rs @@ -6,7 +6,7 @@ use parking_lot::Mutex; use penumbra_app::params::AppParameters; use penumbra_asset::{asset, asset::DenomMetadata, asset::Id, Value}; use penumbra_chain::params::{ChainParameters, FmdParameters}; -use penumbra_dao::params::DaoParameters; +use penumbra_community_pool::params::CommunityPoolParameters; use penumbra_dex::{ lp::position::{self, Position, State}, TradingPair, @@ -222,10 +222,11 @@ impl Storage { [fee_params_bytes], )?; - let dao_params_bytes = &DaoParameters::encode_to_vec(¶ms.dao_params)[..]; + let community_pool_params_bytes = + &CommunityPoolParameters::encode_to_vec(¶ms.community_pool_params)[..]; tx.execute( - "INSERT INTO dao_params (bytes) VALUES (?1)", - [dao_params_bytes], + "INSERT INTO community_pool_params (bytes) VALUES (?1)", + [community_pool_params_bytes], )?; let distributions_params_bytes = @@ -588,11 +589,11 @@ impl Storage { .prepare_cached("SELECT bytes FROM governance_params LIMIT 1")? .query_row([], |row| row.get::<_, Option>>("bytes"))? .ok_or_else(|| anyhow!("missing governance params"))?; - let dao_bytes = pool + let community_pool_bytes = pool .get()? - .prepare_cached("SELECT bytes FROM dao_params LIMIT 1")? + .prepare_cached("SELECT bytes FROM community_pool_params LIMIT 1")? .query_row([], |row| row.get::<_, Option>>("bytes"))? - .ok_or_else(|| anyhow!("missing dao params"))?; + .ok_or_else(|| anyhow!("missing Community Pool params"))?; let fee_bytes = pool .get()? .prepare_cached("SELECT bytes FROM fee_params LIMIT 1")? @@ -609,7 +610,9 @@ impl Storage { stake_params: StakeParameters::decode(stake_bytes.as_slice())?, ibc_params: IBCParameters::decode(ibc_bytes.as_slice())?, governance_params: GovernanceParameters::decode(governance_bytes.as_slice())?, - dao_params: DaoParameters::decode(dao_bytes.as_slice())?, + community_pool_params: CommunityPoolParameters::decode( + community_pool_bytes.as_slice(), + )?, fee_params: FeeParameters::decode(fee_bytes.as_slice())?, distributions_params: DistributionsParameters::decode( distributions_bytes.as_slice(), @@ -1385,10 +1388,10 @@ impl Storage { [fee_params_bytes], )?; - let dao_params_bytes = &DaoParameters::encode_to_vec(¶ms.dao_params)[..]; + let community_pool_params_bytes = &CommunityPoolParameters::encode_to_vec(¶ms.community_pool_params)[..]; dbtx.execute( - "UPDATE dao_params SET bytes = ?1", - [dao_params_bytes], + "UPDATE community_pool_params SET bytes = ?1", + [community_pool_params_bytes], )?; let distributions_params_bytes = &DistributionsParameters::encode_to_vec(¶ms.distributions_params)[..]; diff --git a/crates/view/src/storage/schema.sql b/crates/view/src/storage/schema.sql index 5ec09e8396..3722fbe6a1 100644 --- a/crates/view/src/storage/schema.sql +++ b/crates/view/src/storage/schema.sql @@ -9,7 +9,7 @@ CREATE TABLE stake_params (bytes BLOB NOT NULL); CREATE TABLE ibc_params (bytes BLOB NOT NULL); CREATE TABLE governance_params (bytes BLOB NOT NULL); CREATE TABLE chain_params (bytes BLOB NOT NULL); -CREATE TABLE dao_params (bytes BLOB NOT NULL); +CREATE TABLE community_pool_params (bytes BLOB NOT NULL); CREATE TABLE fee_params (bytes BLOB NOT NULL); CREATE TABLE distributions_params (bytes BLOB NOT NULL); CREATE TABLE fmd_parameters (bytes BLOB NOT NULL); diff --git a/deployments/scripts/rust-docs b/deployments/scripts/rust-docs index 149fbea3f1..b8bacd2041 100755 --- a/deployments/scripts/rust-docs +++ b/deployments/scripts/rust-docs @@ -38,7 +38,7 @@ cargo +nightly doc --no-deps \ -p penumbra-asset \ -p penumbra-chain \ -p penumbra-custody \ - -p penumbra-dao \ + -p penumbra-community-pool \ -p penumbra-dex \ -p penumbra-distributions \ -p penumbra-governance \ diff --git a/docs/guide/src/pcli/governance.md b/docs/guide/src/pcli/governance.md index fa7bab5453..0596cba343 100644 --- a/docs/guide/src/pcli/governance.md +++ b/docs/guide/src/pcli/governance.md @@ -14,7 +14,7 @@ in mind, here are some quick links: - [I want to submit a new proposal.](#submitting-a-proposal) - [I submitted a proposal and I want to withdraw it before voting concludes.](#withdrawing-a-proposal) - [Voting has concluded on a proposal I submitted and I want to claim my deposit.](#claiming-a-proposal-deposit) -- [I want to contribute funds to the DAO.](#contributing-to-the-dao) +- [I want to contribute funds to the Community Pool.](#contributing-to-the-community-pool) ## Getting Proposal Information @@ -114,7 +114,7 @@ boxes are the state of the proposal on chain, and colored circles are outcomes o ### Kinds Of Proposal There are 4 kinds of governance proposal on Penumbra: **signaling**, **emergency**, **parameter -change**, and **DAO spend**. +change**, and **community pool spend**. #### Signaling Proposals @@ -147,15 +147,15 @@ nothing happens. This is to prevent two simultaneous parameter change proposals each others' changes or merging with one another into an undesired state. Almost always, the set of old parameters should be the current parameters at the time the proposal is submitted. -#### DAO Spend Proposals +#### Community Pool Spend Proposals -DAO spend proposals submit a _transaction plan_ which may spend funds from the DAO if passed. +Community Pool spend proposals submit a _transaction plan_ which may spend funds from the Community Pool if passed. -DAO spend transactions have exclusive capability to use two special actions which are not allowed in -directly submitted user transactions: `DaoSpend` and `DaoOutput`. These actions, respectively, spend -funds from the DAO, and mint funds _transparently_ to an output address (unlike regular output -actions, which are shielded). DAO spend transactions are unable to use regular shielded outputs, -spend funds from any source other than the DAO itself, perform swaps, or submit, withdraw, or claim +Community Pool spend transactions have exclusive capability to use two special actions which are not allowed in +directly submitted user transactions: `CommunityPoolSpend` and `CommunityPoolOutput`. These actions, respectively, spend +funds from the Community Pool, and mint funds _transparently_ to an output address (unlike regular output +actions, which are shielded). Community Pool spend transactions are unable to use regular shielded outputs, +spend funds from any source other than the Community Pool itself, perform swaps, or submit, withdraw, or claim governance proposals. ### Submitting A Proposal @@ -188,42 +188,48 @@ for the proposal deposit after voting concludes, provided the proposal is not sl denomination `proposal_N_deposit`, where `N` is the ID of your proposal. Note that _whoever holds this NFT has exclusive control of the proposal_: they can withdraw it or claim the deposit. -#### Making A DAO Spend Transaction Plan +#### Making A Community Pool Spend Transaction Plan -In order to submit a DAO spend proposal, it is necessary to create a transaction plan. At present, +In order to submit a Community Pool spend proposal, it is necessary to create a transaction plan. At present, the only way to specify this is to provide a rather human-unfriendly JSON-formatted transaction plan, because there is no stable human-readable representation for a transaction plan at present. This will change in the future as better tooling is developed. -For now, here is a template for a transaction plan that withdraws 100 penumbra from the DAO and +For now, here is a template for a transaction plan that withdraws 100 penumbra from the Community Pool and sends it to a specified address (in this case, the address of the author of this document): ```json { - "fee": { "amount": { "lo": 0, "hi": 0 } }, - "actions": [ - { "daoSpend": { "value": { - "amount": { "lo": 100000000, "hi": 0 }, - "assetId": { "inner": "KeqcLzNx9qSH5+lcJHBB9KNW+YPrBk5dKzvPMiypahA=" } - } } }, - { "daoOutput": { - "value": { - "amount": { "lo": 100000000, "hi": 0 }, - "assetId": { "inner": "KeqcLzNx9qSH5+lcJHBB9KNW+YPrBk5dKzvPMiypahA=" } - }, - "address": { - "inner": "vzZ60xfMPPwewTiSb08jk5OdUjc0BhQ7IXLgHAayJoi5mvmlnTpqFuaPU2hCBhwaEwO2c03tBbN/GVh0+CajAjYBmBq3yHAbzNJCnZS8jUs=" - } - } } - ] + "fee": { "amount": { "lo": 0, "hi": 0 } }, + "actions": [ + { + "communityPoolSpend": { + "value": { + "amount": { "lo": 100000000, "hi": 0 }, + "assetId": { "inner": "KeqcLzNx9qSH5+lcJHBB9KNW+YPrBk5dKzvPMiypahA=" } + } + } + }, + { + "communityPoolOutput": { + "value": { + "amount": { "lo": 100000000, "hi": 0 }, + "assetId": { "inner": "KeqcLzNx9qSH5+lcJHBB9KNW+YPrBk5dKzvPMiypahA=" } + }, + "address": { + "inner": "vzZ60xfMPPwewTiSb08jk5OdUjc0BhQ7IXLgHAayJoi5mvmlnTpqFuaPU2hCBhwaEwO2c03tBbN/GVh0+CajAjYBmBq3yHAbzNJCnZS8jUs=" + } + } + } + ] } ``` Note that the asset ID and address are specified not in the usual bech32 formats you are used to seeing, but in base64. To get your address in this format, use `pcli view address 0 --base64`. -To template a DAO spend proposal using a JSON transaction plan, use the `pcli tx proposal template -dao-spend --transaction-plan .json`, which will take the transaction plan and include it +To template a Community Pool spend proposal using a JSON transaction plan, use the `pcli tx proposal template +community-pool-spend --transaction-plan .json`, which will take the transaction plan and include it in the generated proposal template. If no plan is specified, the transaction plan will be the empty transaction which does nothing when executed. @@ -261,34 +267,34 @@ proposal was not slashed (that is, it passed _or_ failed), this action will also original proposal deposit. Note that you _can_ claim a slashed proposal: you will receive the slashed proposal result NFT, but you will not receive the original proposal deposit. -## Contributing To The DAO +## Contributing To The Community Pool -Anyone can contribute any amount of any denomination to the Penumbra DAO. To do this, use the -command `pcli tx dao-deposit`, like so: +Anyone can contribute any amount of any denomination to the Penumbra Community Pool. To do this, use the +command `pcli tx community-pool-deposit`, like so: ```bash -pcli tx dao-deposit 100penumbra +pcli tx community-pool-deposit 100penumbra ``` -Funds contributed to the DAO cannot be withdrawn except by a successful DAO spend governance +Funds contributed to the Community Pool cannot be withdrawn except by a successful Community Pool spend governance proposal. -To query the current DAO balance, use `pcli query dao balance` with the **base denomination** of an +To query the current Community Pool balance, use `pcli query community-pool balance` with the **base denomination** of an asset or its asset ID (display denominations are not currently accepted). For example: ```bash -pcli query dao balance upenumbra +pcli query Community Pool balance upenumbra ``` -DAO spend proposals are only accepted for voting if they would not overdraw the current funds in the -DAO at the time the proposal is submitted, so it's worth checking this information before submitting +Community Pool spend proposals are only accepted for voting if they would not overdraw the current funds in the +Community Pool at the time the proposal is submitted, so it's worth checking this information before submitting such a proposal. -### Sending Validator Funding Streams To The DAO +### Sending Validator Funding Streams To The Community Pool -A validator may non-custodially send funds to the DAO, similarly to any other funding stream. To do +A validator may non-custodially send funds to the Community Pool, similarly to any other funding stream. To do this, add a `[[funding_stream]]` section to your validator definition TOML file that declares the -DAO as a recipient for a funding stream. For example, your definition might look like this: +Community Pool as a recipient for a funding stream. For example, your definition might look like this: ```toml sequence_number = 0 @@ -308,8 +314,8 @@ value = "tDk3/k8zjEyDQjQC1jUyv8nJ1cC1B/MgrDzeWvBTGDM=" recipient = "penumbrav2t1hum845ches70c8kp8zfx7nerjwfe653hxsrpgwepwtspcp4jy6ytnxhe5kwn56sku684x6zzqcwp5ycrkee5mmg9kdl3jkr5lqn2xq3kqxvp4d7gwqdue5jznk2ter2t66mk4n" rate_bps = 100 -# Send another 1% commission to the DAO: +# Send another 1% commission to the Community Pool: [[funding_stream]] -recipient = "DAO" +recipient = "CommunityPool" rate_bps = 100 ``` diff --git a/docs/guide/src/pcli/transaction.md b/docs/guide/src/pcli/transaction.md index 32bf0b5f21..212b8a7dc4 100644 --- a/docs/guide/src/pcli/transaction.md +++ b/docs/guide/src/pcli/transaction.md @@ -50,7 +50,7 @@ later to add the previously delegated funds to your wallet. Penumbra features on-chain governance similar to Cosmos Hub where anyone can submit proposals and both validators and delegators to vote on them. Penumbra's governance model incorporates a single -DAO account, into which anyone can freely deposit, but from which only a successful governance vote +Community Pool account, into which anyone can freely deposit, but from which only a successful governance vote can spend. For details on using governance, see the [governance section](./governance.md). ## Managing Liquidity Positions @@ -159,6 +159,7 @@ Penumbra's constant-price pool is a versatile market primitive, allowing users e ```bash pcli tx lp replicate xyk [--current-price AMT] [--fee-bps AMT] ``` + For instance, to provide ~100penumbra and ~100test_usd liquidity on the `penumbra:test_usd` pair with a pool fee of `33bps`, run: ```bash diff --git a/docs/guide/src/pd/validator.md b/docs/guide/src/pd/validator.md index c2f1f21048..1aa817da53 100644 --- a/docs/guide/src/pd/validator.md +++ b/docs/guide/src/pd/validator.md @@ -14,9 +14,9 @@ A validator definition contains fields defining metadata regarding your validator as well as funding streams, which are Penumbra's analogue to validator commissions. -The root of a validator's identity is their *identity key*. Currently, `pcli` +The root of a validator's identity is their _identity key_. Currently, `pcli` reuses the spend authorization key in whatever wallet is active as the -validator's identity key. This key is used to sign validator definitions that +validator's identity key. This key is used to sign validator definitions that update the configuration for a validator. #### Creating a template definition @@ -59,7 +59,7 @@ recipient = 'penumbrav2t1cntf73e36y3um4zmqm4j0zar3jyxvyfqxywwg5q6fjxzhe28qttppmc rate_bps = 100 [[funding_stream]] -recipient = "DAO" +recipient = "CommunityPool" rate_bps = 100 ``` @@ -78,7 +78,7 @@ Note that by default the `enabled` field is set to false and will need to be enabled in order to activate one's validator. In the default template, there is a funding stream declared to [contribute funds to the -DAO](../pcli/governance.md#contributing-to-the-dao). This is not required, and may be altered or +Community Pool](../pcli/governance.md#contributing-to-the-community-pool). This is not required, and may be altered or removed if you wish. #### Setting the consensus key @@ -104,11 +104,11 @@ as the `value` field under the `[consensus_key]` heading. #### Configuring funding streams Unlike the Cosmos SDK, which has validators specify a commission percentage that -goes to the validator, Penumbra uses *funding streams*, a list of pairs of -commission amounts and addresses. This design allows validators to dedicate +goes to the validator, Penumbra uses _funding streams_, a list of pairs of +commission amounts and addresses. This design allows validators to dedicate portions of their commission non-custodially -- for instance, a validator could declare some amount of commission to cover their operating costs, and another -that would be sent to an address controlled by a DAO. +that would be sent to an address controlled by the Community Pool. ## Uploading a definition @@ -150,11 +150,11 @@ pcli view balance ``` Voting power will be calculated on the next epoch transition after your -delegation takes place. Assuming that your delegation was enough to place your +delegation takes place. Assuming that your delegation was enough to place your validator in the top N validators by voting power, it should appear in the -validator list as `Active` after the next epoch transition. The epoch duration +validator list as `Active` after the next epoch transition. The epoch duration and the active validator limit are chain parameters, and will vary by -deployment. You can find the values in use for the current chain in its +deployment. You can find the values in use for the current chain in its `genesis.json` file. ## Updating your validator diff --git a/docs/protocol/src/governance.md b/docs/protocol/src/governance.md index d36c5f977b..3b6593801e 100644 --- a/docs/protocol/src/governance.md +++ b/docs/protocol/src/governance.md @@ -59,7 +59,7 @@ proposal deposit itself, provided the deposit has not been slashed. This is the ### Kinds Of Proposal There are 4 kinds of governance proposals on Penumbra: **signaling**, **emergency**, **parameter -change**, and **DAO spend**. +change**, and **community pool spend**. #### Signaling Proposals @@ -92,15 +92,15 @@ nothing happens. This is to prevent two simultaneous parameter change proposals each others' changes or merging with one another into an undesired state. Almost always, the set of old parameters should be the current parameters at the time the proposal is submitted. -#### DAO Spend Proposals +#### Community Pool Spend Proposals -DAO spend proposals submit a _transaction plan_ which may spend funds from the DAO if passed. +Community Pool spend proposals submit a _transaction plan_ which may spend funds from the Community Pool if passed. -DAO spend transactions have exclusive capability to use two special actions which are not allowed in -directly submitted user transactions: `DaoSpend` and `DaoOutput`. These actions, respectively, spend -funds from the DAO, and mint funds _transparently_ to an output address (unlike regular output -actions, which are shielded). DAO spend transactions are unable to use regular shielded outputs, -spend funds from any source other than the DAO itself, perform swaps, or submit, withdraw, or claim +Community Pool spend transactions have exclusive capability to use two special actions which are not allowed in +directly submitted user transactions: `CommunityPoolSpend` and `CommunityPoolOutput`. These actions, respectively, spend +funds from the Community Pool, and mint funds _transparently_ to an output address (unlike regular output +actions, which are shielded). Community Pool spend transactions are unable to use regular shielded outputs, +spend funds from any source other than the Community Pool itself, perform swaps, or submit, withdraw, or claim governance proposals. ## Validator Voting @@ -123,13 +123,13 @@ votes on different proposals from being linkable by correlating nullifiers. If t submitted concurrently, it is not possible for the delegator to prevent their votes on the two proposals from being linked; this is considered an acceptable sacrifice. -## Contributing To The DAO +## Contributing To The Community Pool -Anyone can contribute any amount of any denomination to the Penumbra DAO. Funds contributed to the -DAO cannot be withdrawn except by a successful DAO spend governance proposal. DAO spend proposals -are only accepted for voting if they would not overdraw the current funds in the DAO at the time the +Anyone can contribute any amount of any denomination to the Penumbra Community Pool. Funds contributed to the +Community Pool cannot be withdrawn except by a successful Community Pool spend governance proposal. Community Pool spend proposals +are only accepted for voting if they would not overdraw the current funds in the Community Pool at the time the proposal is submitted. -A validator may non-custodially send funds to the DAO, similarly to any other funding stream. To do +A validator may non-custodially send funds to the Community Pool, similarly to any other funding stream. To do this, a validator declares in their validator declaration that one of their funding streams has the -DAO as a recipient rather than a penumbra address. +Community Pool as a recipient rather than a penumbra address. diff --git a/docs/rustdoc/index.html b/docs/rustdoc/index.html index 87dc3287ab..8fa4dbf88f 100644 --- a/docs/rustdoc/index.html +++ b/docs/rustdoc/index.html @@ -1 +1 @@ -Index of crates
\ No newline at end of file +Index of crates
\ No newline at end of file diff --git a/proto/go/gen/penumbra/core/app/v1alpha1/app.pb.go b/proto/go/gen/penumbra/core/app/v1alpha1/app.pb.go index ff135d7606..7b6789a8ed 100644 --- a/proto/go/gen/penumbra/core/app/v1alpha1/app.pb.go +++ b/proto/go/gen/penumbra/core/app/v1alpha1/app.pb.go @@ -8,7 +8,7 @@ package appv1alpha1 import ( v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/chain/v1alpha1" - v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/dao/v1alpha1" + v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/community_pool/v1alpha1" v1alpha17 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/distributions/v1alpha1" v1alpha16 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/fee/v1alpha1" v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/governance/v1alpha1" @@ -152,8 +152,8 @@ type AppParameters struct { // Chain module parameters. ChainParams *v1alpha11.ChainParameters `protobuf:"bytes,1,opt,name=chain_params,json=chainParams,proto3" json:"chain_params,omitempty"` - // DAO module parameters. - DaoParams *v1alpha12.DaoParameters `protobuf:"bytes,2,opt,name=dao_params,json=daoParams,proto3" json:"dao_params,omitempty"` + // Community Pool module parameters. + CommunityPoolParams *v1alpha12.CommunityPoolParameters `protobuf:"bytes,2,opt,name=community_pool_params,json=communityPoolParams,proto3" json:"community_pool_params,omitempty"` // Governance module parameters. GovernanceParams *v1alpha13.GovernanceParameters `protobuf:"bytes,3,opt,name=governance_params,json=governanceParams,proto3" json:"governance_params,omitempty"` // IBC module parameters. @@ -205,9 +205,9 @@ func (x *AppParameters) GetChainParams() *v1alpha11.ChainParameters { return nil } -func (x *AppParameters) GetDaoParams() *v1alpha12.DaoParameters { +func (x *AppParameters) GetCommunityPoolParams() *v1alpha12.CommunityPoolParameters { if x != nil { - return x.DaoParams + return x.CommunityPoolParams } return nil } @@ -439,8 +439,8 @@ type GenesisContent struct { IbcContent *v1alpha14.GenesisContent `protobuf:"bytes,4,opt,name=ibc_content,json=ibcContent,proto3" json:"ibc_content,omitempty"` // Chain module genesis state. ChainContent *v1alpha11.GenesisContent `protobuf:"bytes,5,opt,name=chain_content,json=chainContent,proto3" json:"chain_content,omitempty"` - // DAO module genesis state. - DaoContent *v1alpha12.GenesisContent `protobuf:"bytes,6,opt,name=dao_content,json=daoContent,proto3" json:"dao_content,omitempty"` + // Community Pool module genesis state. + CommunityPoolContent *v1alpha12.GenesisContent `protobuf:"bytes,6,opt,name=community_pool_content,json=communityPoolContent,proto3" json:"community_pool_content,omitempty"` // Fee module genesis state. FeeContent *v1alpha16.GenesisContent `protobuf:"bytes,7,opt,name=fee_content,json=feeContent,proto3" json:"fee_content,omitempty"` // Distributions module genesis state. @@ -514,9 +514,9 @@ func (x *GenesisContent) GetChainContent() *v1alpha11.GenesisContent { return nil } -func (x *GenesisContent) GetDaoContent() *v1alpha12.GenesisContent { +func (x *GenesisContent) GetCommunityPoolContent() *v1alpha12.GenesisContent { if x != nil { - return x.DaoContent + return x.CommunityPoolContent } return nil } @@ -545,62 +545,66 @@ var file_penumbra_core_app_v1alpha1_app_proto_rawDesc = []byte{ 0x61, 0x31, 0x1a, 0x32, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x44, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, - 0x64, 0x61, 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x61, 0x6f, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x42, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x2f, 0x66, 0x65, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2f, 0x66, 0x65, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3c, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, - 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2f, 0x69, 0x62, 0x63, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, - 0x62, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x42, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, - 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x32, 0x70, 0x65, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x42, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x34, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5b, 0x0a, 0x1b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, - 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x1c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xaf, 0x05, 0x0a, - 0x0d, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5a, - 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0b, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x52, 0x0a, 0x0a, 0x64, 0x61, - 0x6f, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x6f, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x52, 0x09, 0x64, 0x61, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x6e, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x66, 0x65, 0x65, 0x2f, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x66, 0x65, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x3c, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x67, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x62, 0x63, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x62, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x42, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, + 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, + 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x32, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, + 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x34, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5b, 0x0a, 0x1b, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x1c, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0c, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x22, 0xd9, 0x05, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x7c, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, + 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x48, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x6e, 0x0a, 0x11, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, @@ -652,7 +656,7 @@ var file_penumbra_core_app_v1alpha1_app_proto_rawDesc = []byte{ 0x69, 0x73, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x11, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x67, 0x65, 0x6e, 0x65, - 0x73, 0x69, 0x73, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xa4, 0x06, + 0x73, 0x69, 0x73, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xc4, 0x06, 0x0a, 0x0e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, @@ -685,12 +689,14 @@ var file_penumbra_core_app_v1alpha1_app_proto_rawDesc = []byte{ 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x55, 0x0a, 0x0b, 0x64, 0x61, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x2e, 0x64, 0x61, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, - 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x64, 0x61, - 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x0b, 0x66, 0x65, 0x65, 0x5f, + 0x74, 0x12, 0x75, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x0b, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x66, 0x65, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, @@ -763,7 +769,7 @@ var file_penumbra_core_app_v1alpha1_app_proto_goTypes = []interface{}{ (*GenesisContent)(nil), // 6: penumbra.core.app.v1alpha1.GenesisContent (*v1alpha1.Transaction)(nil), // 7: penumbra.core.transaction.v1alpha1.Transaction (*v1alpha11.ChainParameters)(nil), // 8: penumbra.core.component.chain.v1alpha1.ChainParameters - (*v1alpha12.DaoParameters)(nil), // 9: penumbra.core.component.dao.v1alpha1.DaoParameters + (*v1alpha12.CommunityPoolParameters)(nil), // 9: penumbra.core.component.community_pool.v1alpha1.CommunityPoolParameters (*v1alpha13.GovernanceParameters)(nil), // 10: penumbra.core.component.governance.v1alpha1.GovernanceParameters (*v1alpha14.IbcParameters)(nil), // 11: penumbra.core.component.ibc.v1alpha1.IbcParameters (*v1alpha15.StakeParameters)(nil), // 12: penumbra.core.component.stake.v1alpha1.StakeParameters @@ -774,14 +780,14 @@ var file_penumbra_core_app_v1alpha1_app_proto_goTypes = []interface{}{ (*v1alpha13.GenesisContent)(nil), // 17: penumbra.core.component.governance.v1alpha1.GenesisContent (*v1alpha14.GenesisContent)(nil), // 18: penumbra.core.component.ibc.v1alpha1.GenesisContent (*v1alpha11.GenesisContent)(nil), // 19: penumbra.core.component.chain.v1alpha1.GenesisContent - (*v1alpha12.GenesisContent)(nil), // 20: penumbra.core.component.dao.v1alpha1.GenesisContent + (*v1alpha12.GenesisContent)(nil), // 20: penumbra.core.component.community_pool.v1alpha1.GenesisContent (*v1alpha16.GenesisContent)(nil), // 21: penumbra.core.component.fee.v1alpha1.GenesisContent (*v1alpha17.GenesisContent)(nil), // 22: penumbra.core.component.distributions.v1alpha1.GenesisContent } var file_penumbra_core_app_v1alpha1_app_proto_depIdxs = []int32{ 7, // 0: penumbra.core.app.v1alpha1.TransactionsByHeightResponse.transactions:type_name -> penumbra.core.transaction.v1alpha1.Transaction 8, // 1: penumbra.core.app.v1alpha1.AppParameters.chain_params:type_name -> penumbra.core.component.chain.v1alpha1.ChainParameters - 9, // 2: penumbra.core.app.v1alpha1.AppParameters.dao_params:type_name -> penumbra.core.component.dao.v1alpha1.DaoParameters + 9, // 2: penumbra.core.app.v1alpha1.AppParameters.community_pool_params:type_name -> penumbra.core.component.community_pool.v1alpha1.CommunityPoolParameters 10, // 3: penumbra.core.app.v1alpha1.AppParameters.governance_params:type_name -> penumbra.core.component.governance.v1alpha1.GovernanceParameters 11, // 4: penumbra.core.app.v1alpha1.AppParameters.ibc_params:type_name -> penumbra.core.component.ibc.v1alpha1.IbcParameters 12, // 5: penumbra.core.app.v1alpha1.AppParameters.stake_params:type_name -> penumbra.core.component.stake.v1alpha1.StakeParameters @@ -794,7 +800,7 @@ var file_penumbra_core_app_v1alpha1_app_proto_depIdxs = []int32{ 17, // 12: penumbra.core.app.v1alpha1.GenesisContent.governance_content:type_name -> penumbra.core.component.governance.v1alpha1.GenesisContent 18, // 13: penumbra.core.app.v1alpha1.GenesisContent.ibc_content:type_name -> penumbra.core.component.ibc.v1alpha1.GenesisContent 19, // 14: penumbra.core.app.v1alpha1.GenesisContent.chain_content:type_name -> penumbra.core.component.chain.v1alpha1.GenesisContent - 20, // 15: penumbra.core.app.v1alpha1.GenesisContent.dao_content:type_name -> penumbra.core.component.dao.v1alpha1.GenesisContent + 20, // 15: penumbra.core.app.v1alpha1.GenesisContent.community_pool_content:type_name -> penumbra.core.component.community_pool.v1alpha1.GenesisContent 21, // 16: penumbra.core.app.v1alpha1.GenesisContent.fee_content:type_name -> penumbra.core.component.fee.v1alpha1.GenesisContent 22, // 17: penumbra.core.app.v1alpha1.GenesisContent.distributions_content:type_name -> penumbra.core.component.distributions.v1alpha1.GenesisContent 3, // 18: penumbra.core.app.v1alpha1.QueryService.AppParameters:input_type -> penumbra.core.app.v1alpha1.AppParametersRequest diff --git a/proto/go/gen/penumbra/core/component/community_pool/v1alpha1/community_pool.pb.go b/proto/go/gen/penumbra/core/component/community_pool/v1alpha1/community_pool.pb.go new file mode 100644 index 0000000000..a6403397c5 --- /dev/null +++ b/proto/go/gen/penumbra/core/component/community_pool/v1alpha1/community_pool.pb.go @@ -0,0 +1,422 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc (unknown) +// source: penumbra/core/component/community_pool/v1alpha1/community_pool.proto + +package community_poolv1alpha1 + +import ( + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/asset/v1alpha1" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// CommunityPool parameter data. +type CommunityPoolParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Whether Community Pool spend proposals are enabled. + CommunityPoolSpendProposalsEnabled bool `protobuf:"varint,1,opt,name=community_pool_spend_proposals_enabled,json=communityPoolSpendProposalsEnabled,proto3" json:"community_pool_spend_proposals_enabled,omitempty"` +} + +func (x *CommunityPoolParameters) Reset() { + *x = CommunityPoolParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommunityPoolParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommunityPoolParameters) ProtoMessage() {} + +func (x *CommunityPoolParameters) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CommunityPoolParameters.ProtoReflect.Descriptor instead. +func (*CommunityPoolParameters) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDescGZIP(), []int{0} +} + +func (x *CommunityPoolParameters) GetCommunityPoolSpendProposalsEnabled() bool { + if x != nil { + return x.CommunityPoolSpendProposalsEnabled + } + return false +} + +// CommunityPool genesis state. +type GenesisContent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // CommunityPool parameters. + CommunityPoolParams *CommunityPoolParameters `protobuf:"bytes,1,opt,name=community_pool_params,json=communityPoolParams,proto3" json:"community_pool_params,omitempty"` +} + +func (x *GenesisContent) Reset() { + *x = GenesisContent{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenesisContent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenesisContent) ProtoMessage() {} + +func (x *GenesisContent) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenesisContent.ProtoReflect.Descriptor instead. +func (*GenesisContent) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDescGZIP(), []int{1} +} + +func (x *GenesisContent) GetCommunityPoolParams() *CommunityPoolParameters { + if x != nil { + return x.CommunityPoolParams + } + return nil +} + +// Requests the list of all asset balances associated with the Community Pool. +type CommunityPoolAssetBalancesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The expected chain id (empty string if no expectation). + ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + // (Optional): The specific asset balances to retrieve, if excluded all will be returned. + AssetIds []*v1alpha1.AssetId `protobuf:"bytes,2,rep,name=asset_ids,json=assetIds,proto3" json:"asset_ids,omitempty"` +} + +func (x *CommunityPoolAssetBalancesRequest) Reset() { + *x = CommunityPoolAssetBalancesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommunityPoolAssetBalancesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommunityPoolAssetBalancesRequest) ProtoMessage() {} + +func (x *CommunityPoolAssetBalancesRequest) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CommunityPoolAssetBalancesRequest.ProtoReflect.Descriptor instead. +func (*CommunityPoolAssetBalancesRequest) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDescGZIP(), []int{2} +} + +func (x *CommunityPoolAssetBalancesRequest) GetChainId() string { + if x != nil { + return x.ChainId + } + return "" +} + +func (x *CommunityPoolAssetBalancesRequest) GetAssetIds() []*v1alpha1.AssetId { + if x != nil { + return x.AssetIds + } + return nil +} + +// The Community Pool's balance of a single asset. +type CommunityPoolAssetBalancesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The balance for a single asset. + Balance *v1alpha1.Value `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` +} + +func (x *CommunityPoolAssetBalancesResponse) Reset() { + *x = CommunityPoolAssetBalancesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommunityPoolAssetBalancesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommunityPoolAssetBalancesResponse) ProtoMessage() {} + +func (x *CommunityPoolAssetBalancesResponse) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CommunityPoolAssetBalancesResponse.ProtoReflect.Descriptor instead. +func (*CommunityPoolAssetBalancesResponse) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDescGZIP(), []int{3} +} + +func (x *CommunityPoolAssetBalancesResponse) GetBalance() *v1alpha1.Value { + if x != nil { + return x.Balance + } + return nil +} + +var File_penumbra_core_component_community_pool_v1alpha1_community_pool_proto protoreflect.FileDescriptor + +var file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDesc = []byte{ + 0x0a, 0x44, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x28, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x6d, 0x0a, 0x17, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, + 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x26, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, + 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x22, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x22, 0x8e, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, + 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x13, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x22, 0x82, 0x01, 0x0a, 0x21, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, + 0x6f, 0x6f, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x49, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x52, 0x08, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0x63, 0x0a, 0x22, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x32, 0xd8, 0x01, 0x0a, 0x0c, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc7, 0x01, 0x0a, + 0x1a, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x52, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, + 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x53, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x9d, 0x03, 0x0a, 0x33, 0x63, 0x6f, 0x6d, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x12, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x75, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x2f, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, + 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, + 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x3b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, 0x43, + 0x43, 0x43, 0xaa, 0x02, 0x2e, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, + 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0xca, 0x02, 0x2e, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, + 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5c, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x5c, 0x56, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x3a, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, + 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5c, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x5c, 0x56, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x32, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, + 0x72, 0x65, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x3a, 0x3a, 0x56, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDescOnce sync.Once + file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDescData = file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDesc +) + +func file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDescGZIP() []byte { + file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDescOnce.Do(func() { + file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDescData) + }) + return file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDescData +} + +var file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_goTypes = []interface{}{ + (*CommunityPoolParameters)(nil), // 0: penumbra.core.component.community_pool.v1alpha1.CommunityPoolParameters + (*GenesisContent)(nil), // 1: penumbra.core.component.community_pool.v1alpha1.GenesisContent + (*CommunityPoolAssetBalancesRequest)(nil), // 2: penumbra.core.component.community_pool.v1alpha1.CommunityPoolAssetBalancesRequest + (*CommunityPoolAssetBalancesResponse)(nil), // 3: penumbra.core.component.community_pool.v1alpha1.CommunityPoolAssetBalancesResponse + (*v1alpha1.AssetId)(nil), // 4: penumbra.core.asset.v1alpha1.AssetId + (*v1alpha1.Value)(nil), // 5: penumbra.core.asset.v1alpha1.Value +} +var file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_depIdxs = []int32{ + 0, // 0: penumbra.core.component.community_pool.v1alpha1.GenesisContent.community_pool_params:type_name -> penumbra.core.component.community_pool.v1alpha1.CommunityPoolParameters + 4, // 1: penumbra.core.component.community_pool.v1alpha1.CommunityPoolAssetBalancesRequest.asset_ids:type_name -> penumbra.core.asset.v1alpha1.AssetId + 5, // 2: penumbra.core.component.community_pool.v1alpha1.CommunityPoolAssetBalancesResponse.balance:type_name -> penumbra.core.asset.v1alpha1.Value + 2, // 3: penumbra.core.component.community_pool.v1alpha1.QueryService.CommunityPoolAssetBalances:input_type -> penumbra.core.component.community_pool.v1alpha1.CommunityPoolAssetBalancesRequest + 3, // 4: penumbra.core.component.community_pool.v1alpha1.QueryService.CommunityPoolAssetBalances:output_type -> penumbra.core.component.community_pool.v1alpha1.CommunityPoolAssetBalancesResponse + 4, // [4:5] is the sub-list for method output_type + 3, // [3:4] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_init() } +func file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_init() { + if File_penumbra_core_component_community_pool_v1alpha1_community_pool_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommunityPoolParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisContent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommunityPoolAssetBalancesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommunityPoolAssetBalancesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_goTypes, + DependencyIndexes: file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_depIdxs, + MessageInfos: file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_msgTypes, + }.Build() + File_penumbra_core_component_community_pool_v1alpha1_community_pool_proto = out.File + file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_rawDesc = nil + file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_goTypes = nil + file_penumbra_core_component_community_pool_v1alpha1_community_pool_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/core/component/dao/v1alpha1/dao.pb.go b/proto/go/gen/penumbra/core/component/dao/v1alpha1/dao.pb.go deleted file mode 100644 index bc58764418..0000000000 --- a/proto/go/gen/penumbra/core/component/dao/v1alpha1/dao.pb.go +++ /dev/null @@ -1,406 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.32.0 -// protoc (unknown) -// source: penumbra/core/component/dao/v1alpha1/dao.proto - -package daov1alpha1 - -import ( - v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/asset/v1alpha1" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// Dao parameter data. -type DaoParameters struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Whether DAO spend proposals are enabled. - DaoSpendProposalsEnabled bool `protobuf:"varint,1,opt,name=dao_spend_proposals_enabled,json=daoSpendProposalsEnabled,proto3" json:"dao_spend_proposals_enabled,omitempty"` -} - -func (x *DaoParameters) Reset() { - *x = DaoParameters{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DaoParameters) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DaoParameters) ProtoMessage() {} - -func (x *DaoParameters) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DaoParameters.ProtoReflect.Descriptor instead. -func (*DaoParameters) Descriptor() ([]byte, []int) { - return file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDescGZIP(), []int{0} -} - -func (x *DaoParameters) GetDaoSpendProposalsEnabled() bool { - if x != nil { - return x.DaoSpendProposalsEnabled - } - return false -} - -// Dao genesis state. -type GenesisContent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Dao parameters. - DaoParams *DaoParameters `protobuf:"bytes,1,opt,name=dao_params,json=daoParams,proto3" json:"dao_params,omitempty"` -} - -func (x *GenesisContent) Reset() { - *x = GenesisContent{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GenesisContent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GenesisContent) ProtoMessage() {} - -func (x *GenesisContent) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GenesisContent.ProtoReflect.Descriptor instead. -func (*GenesisContent) Descriptor() ([]byte, []int) { - return file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDescGZIP(), []int{1} -} - -func (x *GenesisContent) GetDaoParams() *DaoParameters { - if x != nil { - return x.DaoParams - } - return nil -} - -// Requests the list of all asset balances associated with the DAO. -type DaoAssetBalancesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The expected chain id (empty string if no expectation). - ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` - // (Optional): The specific asset balances to retrieve, if excluded all will be returned. - AssetIds []*v1alpha1.AssetId `protobuf:"bytes,2,rep,name=asset_ids,json=assetIds,proto3" json:"asset_ids,omitempty"` -} - -func (x *DaoAssetBalancesRequest) Reset() { - *x = DaoAssetBalancesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DaoAssetBalancesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DaoAssetBalancesRequest) ProtoMessage() {} - -func (x *DaoAssetBalancesRequest) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DaoAssetBalancesRequest.ProtoReflect.Descriptor instead. -func (*DaoAssetBalancesRequest) Descriptor() ([]byte, []int) { - return file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDescGZIP(), []int{2} -} - -func (x *DaoAssetBalancesRequest) GetChainId() string { - if x != nil { - return x.ChainId - } - return "" -} - -func (x *DaoAssetBalancesRequest) GetAssetIds() []*v1alpha1.AssetId { - if x != nil { - return x.AssetIds - } - return nil -} - -// The DAO's balance of a single asset. -type DaoAssetBalancesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The balance for a single asset. - Balance *v1alpha1.Value `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` -} - -func (x *DaoAssetBalancesResponse) Reset() { - *x = DaoAssetBalancesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DaoAssetBalancesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DaoAssetBalancesResponse) ProtoMessage() {} - -func (x *DaoAssetBalancesResponse) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DaoAssetBalancesResponse.ProtoReflect.Descriptor instead. -func (*DaoAssetBalancesResponse) Descriptor() ([]byte, []int) { - return file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDescGZIP(), []int{3} -} - -func (x *DaoAssetBalancesResponse) GetBalance() *v1alpha1.Value { - if x != nil { - return x.Balance - } - return nil -} - -var File_penumbra_core_component_dao_v1alpha1_dao_proto protoreflect.FileDescriptor - -var file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDesc = []byte{ - 0x0a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x61, 0x6f, 0x2f, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x61, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x24, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x6f, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x28, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0x4e, 0x0a, 0x0d, 0x44, 0x61, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x64, 0x61, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x64, 0x61, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x22, 0x64, 0x0a, 0x0e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0a, 0x64, 0x61, 0x6f, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x2e, 0x64, 0x61, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x61, - 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x09, 0x64, 0x61, 0x6f, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x78, 0x0a, 0x17, 0x44, 0x61, 0x6f, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x09, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, - 0x22, 0x59, 0x0a, 0x18, 0x44, 0x61, 0x6f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x32, 0xa4, 0x01, 0x0a, 0x0c, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x93, 0x01, 0x0a, - 0x10, 0x44, 0x61, 0x6f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x12, 0x3d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x6f, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6f, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x6f, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6f, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x30, 0x01, 0x42, 0xca, 0x02, 0x0a, 0x28, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, - 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, - 0x08, 0x44, 0x61, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5f, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x61, 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x3b, 0x64, 0x61, 0x6f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, - 0x43, 0x43, 0x44, 0xaa, 0x02, 0x24, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, - 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x61, - 0x6f, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x24, 0x50, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x5c, 0x44, 0x61, 0x6f, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0xe2, 0x02, 0x30, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, - 0x65, 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5c, 0x44, 0x61, 0x6f, 0x5c, - 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x28, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, - 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x3a, 0x3a, 0x44, 0x61, 0x6f, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDescOnce sync.Once - file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDescData = file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDesc -) - -func file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDescGZIP() []byte { - file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDescOnce.Do(func() { - file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDescData) - }) - return file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDescData -} - -var file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_penumbra_core_component_dao_v1alpha1_dao_proto_goTypes = []interface{}{ - (*DaoParameters)(nil), // 0: penumbra.core.component.dao.v1alpha1.DaoParameters - (*GenesisContent)(nil), // 1: penumbra.core.component.dao.v1alpha1.GenesisContent - (*DaoAssetBalancesRequest)(nil), // 2: penumbra.core.component.dao.v1alpha1.DaoAssetBalancesRequest - (*DaoAssetBalancesResponse)(nil), // 3: penumbra.core.component.dao.v1alpha1.DaoAssetBalancesResponse - (*v1alpha1.AssetId)(nil), // 4: penumbra.core.asset.v1alpha1.AssetId - (*v1alpha1.Value)(nil), // 5: penumbra.core.asset.v1alpha1.Value -} -var file_penumbra_core_component_dao_v1alpha1_dao_proto_depIdxs = []int32{ - 0, // 0: penumbra.core.component.dao.v1alpha1.GenesisContent.dao_params:type_name -> penumbra.core.component.dao.v1alpha1.DaoParameters - 4, // 1: penumbra.core.component.dao.v1alpha1.DaoAssetBalancesRequest.asset_ids:type_name -> penumbra.core.asset.v1alpha1.AssetId - 5, // 2: penumbra.core.component.dao.v1alpha1.DaoAssetBalancesResponse.balance:type_name -> penumbra.core.asset.v1alpha1.Value - 2, // 3: penumbra.core.component.dao.v1alpha1.QueryService.DaoAssetBalances:input_type -> penumbra.core.component.dao.v1alpha1.DaoAssetBalancesRequest - 3, // 4: penumbra.core.component.dao.v1alpha1.QueryService.DaoAssetBalances:output_type -> penumbra.core.component.dao.v1alpha1.DaoAssetBalancesResponse - 4, // [4:5] is the sub-list for method output_type - 3, // [3:4] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name -} - -func init() { file_penumbra_core_component_dao_v1alpha1_dao_proto_init() } -func file_penumbra_core_component_dao_v1alpha1_dao_proto_init() { - if File_penumbra_core_component_dao_v1alpha1_dao_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DaoParameters); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenesisContent); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DaoAssetBalancesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DaoAssetBalancesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDesc, - NumEnums: 0, - NumMessages: 4, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_penumbra_core_component_dao_v1alpha1_dao_proto_goTypes, - DependencyIndexes: file_penumbra_core_component_dao_v1alpha1_dao_proto_depIdxs, - MessageInfos: file_penumbra_core_component_dao_v1alpha1_dao_proto_msgTypes, - }.Build() - File_penumbra_core_component_dao_v1alpha1_dao_proto = out.File - file_penumbra_core_component_dao_v1alpha1_dao_proto_rawDesc = nil - file_penumbra_core_component_dao_v1alpha1_dao_proto_goTypes = nil - file_penumbra_core_component_dao_v1alpha1_dao_proto_depIdxs = nil -} diff --git a/proto/go/gen/penumbra/core/component/governance/v1alpha1/governance.pb.go b/proto/go/gen/penumbra/core/component/governance/v1alpha1/governance.pb.go index a3d3590a39..d726aaa837 100644 --- a/proto/go/gen/penumbra/core/component/governance/v1alpha1/governance.pb.go +++ b/proto/go/gen/penumbra/core/component/governance/v1alpha1/governance.pb.go @@ -9,7 +9,7 @@ package governancev1alpha1 import ( v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/asset/v1alpha1" v1alpha17 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/chain/v1alpha1" - v1alpha18 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/dao/v1alpha1" + v1alpha18 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/community_pool/v1alpha1" v1alpha111 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/distributions/v1alpha1" v1alpha110 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/fee/v1alpha1" v1alpha19 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/ibc/v1alpha1" @@ -871,17 +871,17 @@ func (x *DelegatorVotePlan) GetProofBlindingS() []byte { return nil } -type DaoDeposit struct { +type CommunityPoolDeposit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The value to deposit into the DAO. + // The value to deposit into the Community Pool. Value *v1alpha13.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *DaoDeposit) Reset() { - *x = DaoDeposit{} +func (x *CommunityPoolDeposit) Reset() { + *x = CommunityPoolDeposit{} if protoimpl.UnsafeEnabled { mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -889,13 +889,13 @@ func (x *DaoDeposit) Reset() { } } -func (x *DaoDeposit) String() string { +func (x *CommunityPoolDeposit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DaoDeposit) ProtoMessage() {} +func (*CommunityPoolDeposit) ProtoMessage() {} -func (x *DaoDeposit) ProtoReflect() protoreflect.Message { +func (x *CommunityPoolDeposit) ProtoReflect() protoreflect.Message { mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -907,29 +907,29 @@ func (x *DaoDeposit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DaoDeposit.ProtoReflect.Descriptor instead. -func (*DaoDeposit) Descriptor() ([]byte, []int) { +// Deprecated: Use CommunityPoolDeposit.ProtoReflect.Descriptor instead. +func (*CommunityPoolDeposit) Descriptor() ([]byte, []int) { return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{11} } -func (x *DaoDeposit) GetValue() *v1alpha13.Value { +func (x *CommunityPoolDeposit) GetValue() *v1alpha13.Value { if x != nil { return x.Value } return nil } -type DaoSpend struct { +type CommunityPoolSpend struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The value to spend from the DAO. + // The value to spend from the Community Pool. Value *v1alpha13.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *DaoSpend) Reset() { - *x = DaoSpend{} +func (x *CommunityPoolSpend) Reset() { + *x = CommunityPoolSpend{} if protoimpl.UnsafeEnabled { mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -937,13 +937,13 @@ func (x *DaoSpend) Reset() { } } -func (x *DaoSpend) String() string { +func (x *CommunityPoolSpend) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DaoSpend) ProtoMessage() {} +func (*CommunityPoolSpend) ProtoMessage() {} -func (x *DaoSpend) ProtoReflect() protoreflect.Message { +func (x *CommunityPoolSpend) ProtoReflect() protoreflect.Message { mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -955,31 +955,31 @@ func (x *DaoSpend) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DaoSpend.ProtoReflect.Descriptor instead. -func (*DaoSpend) Descriptor() ([]byte, []int) { +// Deprecated: Use CommunityPoolSpend.ProtoReflect.Descriptor instead. +func (*CommunityPoolSpend) Descriptor() ([]byte, []int) { return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{12} } -func (x *DaoSpend) GetValue() *v1alpha13.Value { +func (x *CommunityPoolSpend) GetValue() *v1alpha13.Value { if x != nil { return x.Value } return nil } -type DaoOutput struct { +type CommunityPoolOutput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The value to output from the DAO. + // The value to output from the Community Pool. Value *v1alpha13.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // The address to send the output to. Address *v1alpha12.Address `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` } -func (x *DaoOutput) Reset() { - *x = DaoOutput{} +func (x *CommunityPoolOutput) Reset() { + *x = CommunityPoolOutput{} if protoimpl.UnsafeEnabled { mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -987,13 +987,13 @@ func (x *DaoOutput) Reset() { } } -func (x *DaoOutput) String() string { +func (x *CommunityPoolOutput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DaoOutput) ProtoMessage() {} +func (*CommunityPoolOutput) ProtoMessage() {} -func (x *DaoOutput) ProtoReflect() protoreflect.Message { +func (x *CommunityPoolOutput) ProtoReflect() protoreflect.Message { mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1005,19 +1005,19 @@ func (x *DaoOutput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DaoOutput.ProtoReflect.Descriptor instead. -func (*DaoOutput) Descriptor() ([]byte, []int) { +// Deprecated: Use CommunityPoolOutput.ProtoReflect.Descriptor instead. +func (*CommunityPoolOutput) Descriptor() ([]byte, []int) { return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{13} } -func (x *DaoOutput) GetValue() *v1alpha13.Value { +func (x *CommunityPoolOutput) GetValue() *v1alpha13.Value { if x != nil { return x.Value } return nil } -func (x *DaoOutput) GetAddress() *v1alpha12.Address { +func (x *CommunityPoolOutput) GetAddress() *v1alpha12.Address { if x != nil { return x.Address } @@ -1361,11 +1361,11 @@ type Proposal struct { // A natural-language description of the effect of the proposal and its justification. Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` // The different kinds of proposal. Only one of these should be set. - Signaling *Proposal_Signaling `protobuf:"bytes,5,opt,name=signaling,proto3" json:"signaling,omitempty"` - Emergency *Proposal_Emergency `protobuf:"bytes,6,opt,name=emergency,proto3" json:"emergency,omitempty"` - ParameterChange *Proposal_ParameterChange `protobuf:"bytes,7,opt,name=parameter_change,json=parameterChange,proto3" json:"parameter_change,omitempty"` - DaoSpend *Proposal_DaoSpend `protobuf:"bytes,8,opt,name=dao_spend,json=daoSpend,proto3" json:"dao_spend,omitempty"` - UpgradePlan *Proposal_UpgradePlan `protobuf:"bytes,9,opt,name=upgrade_plan,json=upgradePlan,proto3" json:"upgrade_plan,omitempty"` + Signaling *Proposal_Signaling `protobuf:"bytes,5,opt,name=signaling,proto3" json:"signaling,omitempty"` + Emergency *Proposal_Emergency `protobuf:"bytes,6,opt,name=emergency,proto3" json:"emergency,omitempty"` + ParameterChange *Proposal_ParameterChange `protobuf:"bytes,7,opt,name=parameter_change,json=parameterChange,proto3" json:"parameter_change,omitempty"` + CommunityPoolSpend *Proposal_CommunityPoolSpend `protobuf:"bytes,8,opt,name=community_pool_spend,json=communityPoolSpend,proto3" json:"community_pool_spend,omitempty"` + UpgradePlan *Proposal_UpgradePlan `protobuf:"bytes,9,opt,name=upgrade_plan,json=upgradePlan,proto3" json:"upgrade_plan,omitempty"` } func (x *Proposal) Reset() { @@ -1442,9 +1442,9 @@ func (x *Proposal) GetParameterChange() *Proposal_ParameterChange { return nil } -func (x *Proposal) GetDaoSpend() *Proposal_DaoSpend { +func (x *Proposal) GetCommunityPoolSpend() *Proposal_CommunityPoolSpend { if x != nil { - return x.DaoSpend + return x.CommunityPoolSpend } return nil } @@ -2230,8 +2230,8 @@ type ChangedAppParameters struct { // Chain module parameters. ChainParams *v1alpha17.ChainParameters `protobuf:"bytes,1,opt,name=chain_params,json=chainParams,proto3" json:"chain_params,omitempty"` - // DAO module parameters. - DaoParams *v1alpha18.DaoParameters `protobuf:"bytes,2,opt,name=dao_params,json=daoParams,proto3" json:"dao_params,omitempty"` + // Community Pool module parameters. + CommunityPoolParams *v1alpha18.CommunityPoolParameters `protobuf:"bytes,2,opt,name=community_pool_params,json=communityPoolParams,proto3" json:"community_pool_params,omitempty"` // Governance module parameters. GovernanceParams *GovernanceParameters `protobuf:"bytes,3,opt,name=governance_params,json=governanceParams,proto3" json:"governance_params,omitempty"` // IBC module parameters. @@ -2283,9 +2283,9 @@ func (x *ChangedAppParameters) GetChainParams() *v1alpha17.ChainParameters { return nil } -func (x *ChangedAppParameters) GetDaoParams() *v1alpha18.DaoParameters { +func (x *ChangedAppParameters) GetCommunityPoolParams() *v1alpha18.CommunityPoolParameters { if x != nil { - return x.DaoParams + return x.CommunityPoolParams } return nil } @@ -3349,22 +3349,22 @@ func (x *Proposal_ParameterChange) GetNewParameters() *ChangedAppParameters { return nil } -// A DAO spend proposal describes zero or more transactions to execute on behalf of the DAO, with +// 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. -type Proposal_DaoSpend struct { +type Proposal_CommunityPoolSpend struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The transaction plan to be executed at the time the proposal is passed. This must be a - // transaction plan which can be executed by the DAO, which means it can't require any witness - // data or authorization signatures, but it may use the `DaoSpend` action. + // transaction plan which can be executed by the Community Pool, which means it can't require any witness + // data or authorization signatures, but it may use the `CommunityPoolSpend` action. TransactionPlan *anypb.Any `protobuf:"bytes,2,opt,name=transaction_plan,json=transactionPlan,proto3" json:"transaction_plan,omitempty"` } -func (x *Proposal_DaoSpend) Reset() { - *x = Proposal_DaoSpend{} +func (x *Proposal_CommunityPoolSpend) Reset() { + *x = Proposal_CommunityPoolSpend{} if protoimpl.UnsafeEnabled { mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3372,13 +3372,13 @@ func (x *Proposal_DaoSpend) Reset() { } } -func (x *Proposal_DaoSpend) String() string { +func (x *Proposal_CommunityPoolSpend) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Proposal_DaoSpend) ProtoMessage() {} +func (*Proposal_CommunityPoolSpend) ProtoMessage() {} -func (x *Proposal_DaoSpend) ProtoReflect() protoreflect.Message { +func (x *Proposal_CommunityPoolSpend) ProtoReflect() protoreflect.Message { mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3390,12 +3390,12 @@ func (x *Proposal_DaoSpend) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Proposal_DaoSpend.ProtoReflect.Descriptor instead. -func (*Proposal_DaoSpend) Descriptor() ([]byte, []int) { +// Deprecated: Use Proposal_CommunityPoolSpend.ProtoReflect.Descriptor instead. +func (*Proposal_CommunityPoolSpend) Descriptor() ([]byte, []int) { return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{18, 3} } -func (x *Proposal_DaoSpend) GetTransactionPlan() *anypb.Any { +func (x *Proposal_CommunityPoolSpend) GetTransactionPlan() *anypb.Any { if x != nil { return x.TransactionPlan } @@ -3468,725 +3468,734 @@ var file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDesc = 0x1a, 0x32, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, - 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x61, - 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x61, 0x6f, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x42, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, - 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2f, 0x66, 0x65, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x66, - 0x65, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2f, 0x69, 0x62, 0x63, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, - 0x62, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2f, 0x73, 0x63, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, - 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x42, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, - 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x32, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x26, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, - 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x6b, 0x65, - 0x79, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x6e, 0x75, 0x6d, 0x2f, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2f, 0x6e, 0x75, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3a, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, - 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x72, 0x64, 0x73, 0x61, 0x2f, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, - 0x72, 0x64, 0x73, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, 0x14, 0x5a, 0x4b, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x51, 0x0a, 0x08, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x49, - 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x46, 0x0a, 0x10, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x22, 0xd5, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x49, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, - 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x56, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, - 0x52, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x0d, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x04, 0x62, - 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x56, 0x6f, 0x74, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, - 0x55, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x72, 0x64, 0x73, - 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x07, 0x61, - 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x22, 0x2d, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xf0, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x45, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, - 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x4b, - 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x51, 0x0a, 0x0e, 0x67, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x52, - 0x0d, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x58, - 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x44, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, + 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, + 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x42, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x66, 0x65, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x66, 0x65, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x62, 0x63, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x62, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x42, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, + 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, + 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x32, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, + 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x6e, 0x75, + 0x6d, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x6e, 0x75, 0x6d, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x72, + 0x64, 0x73, 0x61, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x63, + 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x72, 0x64, 0x73, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x2c, 0x0a, 0x14, 0x5a, 0x4b, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, + 0x6f, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0xae, + 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x49, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x46, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xd5, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x43, 0x6c, 0x61, 0x69, 0x6d, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x49, 0x0a, 0x0e, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, + 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x22, + 0xba, 0x01, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, + 0x65, 0x12, 0x52, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x52, + 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x55, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x69, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, + 0x37, 0x37, 0x5f, 0x72, 0x64, 0x73, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x22, 0x2d, 0x0a, 0x13, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xf0, 0x02, 0x0a, 0x11, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x42, 0x6f, 0x64, + 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x45, 0x0a, + 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, + 0x76, 0x6f, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, + 0x79, 0x12, 0x51, 0x0a, 0x0e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x0d, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, + 0x65, 0x4b, 0x65, 0x79, 0x12, 0x58, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, + 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x93, + 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, + 0x12, 0x52, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, - 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x93, 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, + 0x62, 0x6f, 0x64, 0x79, 0x12, 0x55, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x69, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, + 0x37, 0x5f, 0x72, 0x64, 0x73, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x53, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x12, 0x57, 0x0a, 0x05, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x5a, 0x4b, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xc2, 0x03, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, + 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, + 0x76, 0x6f, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x4b, 0x0a, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x75, 0x6e, + 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x09, + 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x63, 0x74, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x02, 0x72, + 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, + 0x37, 0x37, 0x5f, 0x72, 0x64, 0x73, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x52, 0x02, 0x72, 0x6b, 0x22, 0x94, 0x04, 0x0a, 0x11, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, + 0x62, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x46, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, + 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x12, 0x5f, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, + 0x61, 0x71, 0x75, 0x65, 0x1a, 0xba, 0x01, 0x0a, 0x07, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x12, 0x61, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x56, 0x6f, 0x74, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x55, - 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x72, 0x64, 0x73, 0x61, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x41, - 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x07, 0x61, 0x75, - 0x74, 0x68, 0x53, 0x69, 0x67, 0x12, 0x57, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x5a, 0x4b, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xc2, - 0x03, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, - 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x56, 0x6f, 0x74, 0x65, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, + 0x6f, 0x74, 0x65, 0x12, 0x4c, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x68, 0x69, 0x65, + 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x6e, 0x6f, 0x74, + 0x65, 0x1a, 0x6b, 0x0a, 0x06, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x61, 0x0a, 0x0e, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x52, + 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x42, 0x10, + 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, + 0x22, 0xe7, 0x03, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, + 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x04, 0x76, 0x6f, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x76, 0x6f, 0x74, 0x65, + 0x12, 0x55, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, - 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x39, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4b, 0x0a, 0x0f, 0x75, 0x6e, 0x62, - 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x0a, 0x73, 0x74, 0x61, + 0x6b, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x4e, 0x6f, 0x74, + 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x0f, 0x75, 0x6e, 0x62, + 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x02, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x72, 0x64, 0x73, - 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x52, - 0x02, 0x72, 0x6b, 0x22, 0x94, 0x04, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x56, 0x6f, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x62, 0x0a, 0x07, 0x76, 0x69, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, - 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x5f, 0x0a, - 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x4f, 0x70, - 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x1a, 0xba, - 0x01, 0x0a, 0x07, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x61, 0x0a, 0x0e, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x0d, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x4c, 0x0a, - 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, - 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, - 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x1a, 0x6b, 0x0a, 0x06, 0x4f, - 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x61, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x22, 0xe7, 0x03, 0x0a, 0x11, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, - 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0b, 0x73, 0x74, - 0x61, 0x6b, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, - 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x4e, 0x6f, 0x74, - 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x65, - 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x12, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x72, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, + 0x69, 0x7a, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, + 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6f, - 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, - 0x6f, 0x6f, 0x66, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x53, 0x22, 0x47, 0x0a, 0x0a, 0x44, 0x61, 0x6f, 0x44, 0x65, 0x70, 0x6f, 0x73, + 0x6e, 0x67, 0x5f, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x22, 0x51, 0x0a, 0x14, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x45, 0x0a, - 0x08, 0x44, 0x61, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x09, 0x44, 0x61, 0x6f, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3e, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, - 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x9d, 0x01, - 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x76, 0x6f, - 0x74, 0x65, 0x22, 0x49, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x56, 0x4f, - 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x10, 0x0a, 0x0c, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x42, 0x53, 0x54, 0x41, 0x49, 0x4e, - 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x59, 0x45, 0x53, 0x10, 0x02, - 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x10, 0x03, 0x22, 0x94, 0x05, - 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x5b, 0x0a, 0x06, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, - 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x6f, 0x74, 0x69, - 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x64, 0x0a, 0x09, - 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x44, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, - 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x6e, 0x12, 0x61, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x65, 0x64, 0x1a, 0x08, 0x0a, 0x06, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x1a, - 0x23, 0x0a, 0x09, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x1a, 0x62, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x12, 0x56, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, - 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, - 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x1a, 0x61, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x65, 0x64, 0x12, 0x56, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x63, 0x6f, - 0x6d, 0x65, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x22, 0xcc, 0x04, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x5d, 0x0a, 0x06, 0x70, 0x61, 0x73, 0x73, - 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4f, 0x0a, + 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, + 0x65, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x90, + 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x76, 0x6f, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, - 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x48, 0x00, 0x52, - 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x5d, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, 0x75, - 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x06, - 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x07, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, 0x75, - 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x2e, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x48, 0x00, 0x52, - 0x07, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x1a, 0x23, 0x0a, 0x09, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x1a, 0x08, 0x0a, - 0x06, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x1a, 0x6e, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x12, 0x64, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x63, 0x6f, - 0x6d, 0x65, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x52, 0x09, 0x77, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x1a, 0x6f, 0x0a, 0x07, 0x53, 0x6c, 0x61, 0x73, 0x68, - 0x65, 0x64, 0x12, 0x64, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x2e, 0x56, 0x6f, 0x74, 0x65, + 0x52, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x22, 0x49, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x14, + 0x0a, 0x10, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x42, 0x53, + 0x54, 0x41, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x59, + 0x45, 0x53, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x10, + 0x03, 0x22, 0x94, 0x05, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, + 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, + 0x12, 0x64, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x77, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x12, 0x61, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x48, 0x00, 0x52, + 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x07, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x48, 0x00, + 0x52, 0x07, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x1a, 0x08, 0x0a, 0x06, 0x56, 0x6f, 0x74, + 0x69, 0x6e, 0x67, 0x1a, 0x23, 0x0a, 0x09, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x1a, 0x62, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x12, 0x56, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x63, - 0x6f, 0x6d, 0x65, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x52, 0x09, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, - 0x6f, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x05, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x79, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x79, 0x65, 0x73, 0x12, 0x0e, - 0x0a, 0x02, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x6e, 0x6f, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x62, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x61, 0x62, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x22, 0xf2, 0x07, 0x0a, 0x08, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, - 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x69, 0x6e, - 0x67, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x5d, 0x0a, 0x09, - 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, - 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, - 0x52, 0x09, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x70, 0x0a, 0x10, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, - 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x5b, 0x0a, - 0x09, 0x64, 0x61, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, - 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e, 0x44, 0x61, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x52, 0x08, 0x64, 0x61, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x64, 0x0a, 0x0c, 0x75, 0x70, - 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, - 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x50, - 0x6c, 0x61, 0x6e, 0x52, 0x0b, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x50, 0x6c, 0x61, 0x6e, - 0x1a, 0x23, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x1a, 0x2a, 0x0a, 0x09, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, - 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x6c, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x6c, 0x74, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x1a, 0xe5, 0x01, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, - 0x68, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x4b, 0x0a, 0x08, 0x44, 0x61, 0x6f, - 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x3f, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x1a, 0x25, 0x0a, 0x0b, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, - 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x51, 0x0a, - 0x13, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, - 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, - 0x22, 0x6b, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, - 0x13, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, - 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, - 0x22, 0x96, 0x03, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, + 0x6f, 0x6d, 0x65, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x1a, 0x61, 0x0a, 0x07, + 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0x56, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, + 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xcc, 0x04, 0x0a, 0x0f, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x5d, 0x0a, 0x06, + 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x5d, 0x0a, 0x06, 0x66, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x12, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x6e, - 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, - 0x17, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, - 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x15, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x17, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, - 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, - 0x22, 0x69, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, - 0x72, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x72, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x4c, 0x0a, 0x13, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xba, 0x02, 0x0a, 0x14, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x48, 0x00, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x07, 0x73, 0x6c, + 0x61, 0x73, 0x68, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x2e, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x07, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x1a, 0x23, 0x0a, 0x09, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x1a, 0x08, 0x0a, 0x06, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x1a, 0x6e, 0x0a, 0x06, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x64, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, + 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, + 0x52, 0x09, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x1a, 0x6f, 0x0a, 0x07, 0x53, + 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x12, 0x64, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x6e, 0x52, 0x09, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x42, 0x09, 0x0a, 0x07, + 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x05, 0x54, 0x61, 0x6c, 0x6c, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x79, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x79, + 0x65, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x6e, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x62, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x61, 0x62, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x22, 0x9b, 0x08, 0x0a, + 0x08, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x5d, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, - 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, - 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x69, 0x6e, 0x67, + 0x12, 0x5d, 0x0a, 0x09, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x53, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xac, 0x01, 0x0a, 0x16, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x4b, 0x0a, - 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x22, 0xce, 0x02, 0x0a, 0x14, 0x47, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, - 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x14, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x56, 0x6f, 0x74, - 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x15, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x12, 0x36, 0x0a, 0x17, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x12, 0x38, 0x0a, 0x18, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x6c, - 0x61, 0x73, 0x68, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x16, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x6c, 0x61, - 0x73, 0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x0e, - 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x6e, - 0x0a, 0x11, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e, 0x45, 0x6d, 0x65, 0x72, 0x67, + 0x65, 0x6e, 0x63, 0x79, 0x52, 0x09, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x12, + 0x70, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, - 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x10, 0x67, 0x6f, - 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xb6, - 0x05, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x52, 0x0a, 0x0a, 0x64, 0x61, 0x6f, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2e, 0x64, 0x61, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, - 0x61, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x09, 0x64, 0x61, - 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x6e, 0x0a, 0x11, 0x67, 0x6f, 0x76, 0x65, 0x72, - 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x10, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x52, 0x0a, 0x0a, 0x69, 0x62, 0x63, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x49, 0x62, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x52, 0x09, 0x69, 0x62, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x5a, 0x0a, 0x0c, 0x73, - 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x52, 0x0a, 0x0a, 0x66, 0x65, 0x65, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x66, 0x65, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x52, 0x09, 0x66, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x7a, 0x0a, 0x14, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x52, 0x13, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xc3, 0x01, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x53, 0x65, 0x74, 0x12, 0x53, 0x0a, 0x03, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x0f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x7a, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x48, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x64, 0x0a, + 0x0c, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, + 0x64, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x0b, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x50, + 0x6c, 0x61, 0x6e, 0x1a, 0x23, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x69, 0x6e, 0x67, + 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x1a, 0x2a, 0x0a, 0x09, 0x45, 0x6d, 0x65, 0x72, + 0x67, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x6c, 0x74, 0x5f, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x6c, 0x74, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x1a, 0xe5, 0x01, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x52, 0x03, 0x6f, 0x6c, 0x64, 0x12, 0x53, 0x0a, 0x03, 0x6e, 0x65, 0x77, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, - 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x03, 0x6e, 0x65, 0x77, 0x22, 0xac, 0x01, - 0x0a, 0x21, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x41, 0x74, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, - 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, - 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x22, 0x47, 0x0a, 0x22, - 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x41, 0x74, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x77, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, - 0x50, 0x6f, 0x77, 0x65, 0x72, 0x22, 0x68, 0x0a, 0x2a, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x6c, 0x6c, - 0x69, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, - 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, - 0xc4, 0x01, 0x0a, 0x2b, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x44, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x48, 0x0a, 0x05, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, - 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x61, 0x6c, - 0x6c, 0x79, 0x52, 0x05, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x12, 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x22, 0x32, 0x0a, 0x15, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x16, 0x4e, 0x65, - 0x78, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, - 0x6e, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x32, 0xcd, - 0x0a, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x93, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x40, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, - 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x95, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x40, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x65, 0x72, 0x73, 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x68, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0d, 0x6e, + 0x65, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x55, 0x0a, 0x12, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, + 0x6e, 0x64, 0x12, 0x3f, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, + 0x6e, 0x79, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6c, 0x61, 0x6e, 0x1a, 0x25, 0x0a, 0x0b, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x50, 0x6c, + 0x61, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x51, 0x0a, 0x13, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x6b, 0x0a, + 0x14, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x13, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x96, 0x03, + 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x93, 0x01, - 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, - 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x6e, 0x64, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0e, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x17, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x15, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x69, 0x0a, + 0x18, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x72, 0x61, 0x74, + 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, + 0x72, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x4c, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x6e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xba, 0x02, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x51, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, + 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x28, 0x0a, 0x10, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x6e, 0x64, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x50, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x99, 0x01, 0x0a, 0x0e, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x42, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x22, 0x53, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, + 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x22, 0xce, 0x02, 0x0a, 0x14, 0x47, 0x6f, 0x76, 0x65, + 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x12, 0x34, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x76, 0x6f, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x14, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x15, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x12, 0x36, 0x0a, 0x17, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x38, + 0x0a, 0x18, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, + 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x16, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x6e, + 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x6e, 0x0a, 0x11, 0x67, + 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x70, 0x65, 0x6e, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x10, 0x67, 0x6f, 0x76, 0x65, 0x72, + 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xe0, 0x05, 0x0a, 0x14, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x9b, 0x01, 0x0a, 0x0e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, - 0x65, 0x73, 0x12, 0x42, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0xbd, 0x01, - 0x0a, 0x1a, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x41, 0x74, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x4e, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x69, 0x6e, - 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x41, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x4f, 0x2e, 0x70, + 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x7c, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, + 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x48, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x6e, + 0x0a, 0x11, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x10, 0x67, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x52, + 0x0a, 0x0a, 0x69, 0x62, 0x63, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x62, 0x63, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x62, 0x63, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x09, 0x69, 0x62, 0x63, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x5a, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x52, + 0x0a, 0x0a, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x66, 0x65, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x09, 0x66, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x7a, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x47, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x13, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xc3, + 0x01, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x53, 0x65, 0x74, 0x12, 0x53, 0x0a, 0x03, 0x6f, 0x6c, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x41, 0x70, 0x70, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x03, 0x6f, 0x6c, 0x64, 0x12, + 0x53, 0x0a, 0x03, 0x6e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x69, 0x6e, - 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x41, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xda, 0x01, - 0x0a, 0x23, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x57, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x64, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, + 0x03, 0x6e, 0x65, 0x77, 0x22, 0xac, 0x01, 0x0a, 0x21, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x77, 0x65, 0x72, 0x41, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, + 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x4b, 0x65, 0x79, 0x22, 0x47, 0x0a, 0x22, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x41, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x22, 0x68, 0x0a, 0x2a, + 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xc4, 0x01, 0x0a, 0x2b, 0x41, 0x6c, 0x6c, 0x54, 0x61, + 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, + 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x44, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x58, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, - 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6c, 0x6c, - 0x54, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x56, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0xa1, 0x01, 0x0a, 0x10, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x44, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x68, 0x61, 0x31, 0x2e, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x05, 0x74, 0x61, 0x6c, 0x6c, 0x79, + 0x12, 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, + 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x22, 0x32, 0x0a, + 0x15, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, + 0x64, 0x22, 0x42, 0x0a, 0x16, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x49, 0x64, 0x32, 0xcd, 0x0a, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x40, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x95, 0x01, 0x0a, + 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x40, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x45, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x93, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x82, - 0x03, 0x0a, 0x2f, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x42, 0x0f, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x6d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x2f, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, - 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, - 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x6f, - 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, 0x43, 0x43, 0x47, 0xaa, 0x02, 0x2b, 0x50, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, - 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x2b, 0x50, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x5c, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5c, 0x56, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x37, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x5c, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x2f, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, - 0x72, 0x65, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x47, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x99, 0x01, 0x0a, 0x0e, 0x4e, + 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x42, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x78, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x43, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, + 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x4e, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x0e, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x42, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0xbd, 0x01, 0x0a, 0x1a, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x77, 0x65, 0x72, 0x41, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x4e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x41, 0x74, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x4f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x41, 0x74, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xda, 0x01, 0x0a, 0x23, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x6c, 0x6c, + 0x69, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, + 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x57, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x61, + 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, + 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x58, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, + 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, + 0x01, 0x12, 0xa1, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x61, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x44, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x61, 0x74, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x45, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x82, 0x03, 0x0a, 0x2f, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0f, 0x47, 0x6f, 0x76, 0x65, 0x72, + 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x6d, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2f, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, 0x43, + 0x43, 0x47, 0xaa, 0x02, 0x2b, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, + 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x6f, 0x76, + 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0xca, 0x02, 0x2b, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, + 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5c, 0x47, 0x6f, 0x76, 0x65, 0x72, + 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, + 0x37, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5c, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x2f, 0x50, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, + 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -4216,9 +4225,9 @@ var file_penumbra_core_component_governance_v1alpha1_governance_proto_goTypes = (*DelegatorVoteBody)(nil), // 9: penumbra.core.component.governance.v1alpha1.DelegatorVoteBody (*DelegatorVoteView)(nil), // 10: penumbra.core.component.governance.v1alpha1.DelegatorVoteView (*DelegatorVotePlan)(nil), // 11: penumbra.core.component.governance.v1alpha1.DelegatorVotePlan - (*DaoDeposit)(nil), // 12: penumbra.core.component.governance.v1alpha1.DaoDeposit - (*DaoSpend)(nil), // 13: penumbra.core.component.governance.v1alpha1.DaoSpend - (*DaoOutput)(nil), // 14: penumbra.core.component.governance.v1alpha1.DaoOutput + (*CommunityPoolDeposit)(nil), // 12: penumbra.core.component.governance.v1alpha1.CommunityPoolDeposit + (*CommunityPoolSpend)(nil), // 13: penumbra.core.component.governance.v1alpha1.CommunityPoolSpend + (*CommunityPoolOutput)(nil), // 14: penumbra.core.component.governance.v1alpha1.CommunityPoolOutput (*Vote)(nil), // 15: penumbra.core.component.governance.v1alpha1.Vote (*ProposalState)(nil), // 16: penumbra.core.component.governance.v1alpha1.ProposalState (*ProposalOutcome)(nil), // 17: penumbra.core.component.governance.v1alpha1.ProposalOutcome @@ -4257,7 +4266,7 @@ var file_penumbra_core_component_governance_v1alpha1_governance_proto_goTypes = (*Proposal_Signaling)(nil), // 50: penumbra.core.component.governance.v1alpha1.Proposal.Signaling (*Proposal_Emergency)(nil), // 51: penumbra.core.component.governance.v1alpha1.Proposal.Emergency (*Proposal_ParameterChange)(nil), // 52: penumbra.core.component.governance.v1alpha1.Proposal.ParameterChange - (*Proposal_DaoSpend)(nil), // 53: penumbra.core.component.governance.v1alpha1.Proposal.DaoSpend + (*Proposal_CommunityPoolSpend)(nil), // 53: penumbra.core.component.governance.v1alpha1.Proposal.CommunityPoolSpend (*Proposal_UpgradePlan)(nil), // 54: penumbra.core.component.governance.v1alpha1.Proposal.UpgradePlan (*v1alpha1.Amount)(nil), // 55: penumbra.core.num.v1alpha1.Amount (*v1alpha11.SpendAuthSignature)(nil), // 56: penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature @@ -4270,7 +4279,7 @@ var file_penumbra_core_component_governance_v1alpha1_governance_proto_goTypes = (*v1alpha12.Address)(nil), // 63: penumbra.core.keys.v1alpha1.Address (*v1alpha16.RateData)(nil), // 64: penumbra.core.component.stake.v1alpha1.RateData (*v1alpha17.ChainParameters)(nil), // 65: penumbra.core.component.chain.v1alpha1.ChainParameters - (*v1alpha18.DaoParameters)(nil), // 66: penumbra.core.component.dao.v1alpha1.DaoParameters + (*v1alpha18.CommunityPoolParameters)(nil), // 66: penumbra.core.component.community_pool.v1alpha1.CommunityPoolParameters (*v1alpha19.IbcParameters)(nil), // 67: penumbra.core.component.ibc.v1alpha1.IbcParameters (*v1alpha16.StakeParameters)(nil), // 68: penumbra.core.component.stake.v1alpha1.StakeParameters (*v1alpha110.FeeParameters)(nil), // 69: penumbra.core.component.fee.v1alpha1.FeeParameters @@ -4302,10 +4311,10 @@ var file_penumbra_core_component_governance_v1alpha1_governance_proto_depIdxs = 15, // 20: penumbra.core.component.governance.v1alpha1.DelegatorVotePlan.vote:type_name -> penumbra.core.component.governance.v1alpha1.Vote 62, // 21: penumbra.core.component.governance.v1alpha1.DelegatorVotePlan.staked_note:type_name -> penumbra.core.component.shielded_pool.v1alpha1.Note 55, // 22: penumbra.core.component.governance.v1alpha1.DelegatorVotePlan.unbonded_amount:type_name -> penumbra.core.num.v1alpha1.Amount - 59, // 23: penumbra.core.component.governance.v1alpha1.DaoDeposit.value:type_name -> penumbra.core.asset.v1alpha1.Value - 59, // 24: penumbra.core.component.governance.v1alpha1.DaoSpend.value:type_name -> penumbra.core.asset.v1alpha1.Value - 59, // 25: penumbra.core.component.governance.v1alpha1.DaoOutput.value:type_name -> penumbra.core.asset.v1alpha1.Value - 63, // 26: penumbra.core.component.governance.v1alpha1.DaoOutput.address:type_name -> penumbra.core.keys.v1alpha1.Address + 59, // 23: penumbra.core.component.governance.v1alpha1.CommunityPoolDeposit.value:type_name -> penumbra.core.asset.v1alpha1.Value + 59, // 24: penumbra.core.component.governance.v1alpha1.CommunityPoolSpend.value:type_name -> penumbra.core.asset.v1alpha1.Value + 59, // 25: penumbra.core.component.governance.v1alpha1.CommunityPoolOutput.value:type_name -> penumbra.core.asset.v1alpha1.Value + 63, // 26: penumbra.core.component.governance.v1alpha1.CommunityPoolOutput.address:type_name -> penumbra.core.keys.v1alpha1.Address 0, // 27: penumbra.core.component.governance.v1alpha1.Vote.vote:type_name -> penumbra.core.component.governance.v1alpha1.Vote.Vote 42, // 28: penumbra.core.component.governance.v1alpha1.ProposalState.voting:type_name -> penumbra.core.component.governance.v1alpha1.ProposalState.Voting 43, // 29: penumbra.core.component.governance.v1alpha1.ProposalState.withdrawn:type_name -> penumbra.core.component.governance.v1alpha1.ProposalState.Withdrawn @@ -4317,7 +4326,7 @@ var file_penumbra_core_component_governance_v1alpha1_governance_proto_depIdxs = 50, // 35: penumbra.core.component.governance.v1alpha1.Proposal.signaling:type_name -> penumbra.core.component.governance.v1alpha1.Proposal.Signaling 51, // 36: penumbra.core.component.governance.v1alpha1.Proposal.emergency:type_name -> penumbra.core.component.governance.v1alpha1.Proposal.Emergency 52, // 37: penumbra.core.component.governance.v1alpha1.Proposal.parameter_change:type_name -> penumbra.core.component.governance.v1alpha1.Proposal.ParameterChange - 53, // 38: penumbra.core.component.governance.v1alpha1.Proposal.dao_spend:type_name -> penumbra.core.component.governance.v1alpha1.Proposal.DaoSpend + 53, // 38: penumbra.core.component.governance.v1alpha1.Proposal.community_pool_spend:type_name -> penumbra.core.component.governance.v1alpha1.Proposal.CommunityPoolSpend 54, // 39: penumbra.core.component.governance.v1alpha1.Proposal.upgrade_plan:type_name -> penumbra.core.component.governance.v1alpha1.Proposal.UpgradePlan 19, // 40: penumbra.core.component.governance.v1alpha1.ProposalDataResponse.proposal:type_name -> penumbra.core.component.governance.v1alpha1.Proposal 16, // 41: penumbra.core.component.governance.v1alpha1.ProposalDataResponse.state:type_name -> penumbra.core.component.governance.v1alpha1.ProposalState @@ -4330,7 +4339,7 @@ var file_penumbra_core_component_governance_v1alpha1_governance_proto_depIdxs = 55, // 48: penumbra.core.component.governance.v1alpha1.GovernanceParameters.proposal_deposit_amount:type_name -> penumbra.core.num.v1alpha1.Amount 30, // 49: penumbra.core.component.governance.v1alpha1.GenesisContent.governance_params:type_name -> penumbra.core.component.governance.v1alpha1.GovernanceParameters 65, // 50: penumbra.core.component.governance.v1alpha1.ChangedAppParameters.chain_params:type_name -> penumbra.core.component.chain.v1alpha1.ChainParameters - 66, // 51: penumbra.core.component.governance.v1alpha1.ChangedAppParameters.dao_params:type_name -> penumbra.core.component.dao.v1alpha1.DaoParameters + 66, // 51: penumbra.core.component.governance.v1alpha1.ChangedAppParameters.community_pool_params:type_name -> penumbra.core.component.community_pool.v1alpha1.CommunityPoolParameters 30, // 52: penumbra.core.component.governance.v1alpha1.ChangedAppParameters.governance_params:type_name -> penumbra.core.component.governance.v1alpha1.GovernanceParameters 67, // 53: penumbra.core.component.governance.v1alpha1.ChangedAppParameters.ibc_params:type_name -> penumbra.core.component.ibc.v1alpha1.IbcParameters 68, // 54: penumbra.core.component.governance.v1alpha1.ChangedAppParameters.stake_params:type_name -> penumbra.core.component.stake.v1alpha1.StakeParameters @@ -4350,7 +4359,7 @@ var file_penumbra_core_component_governance_v1alpha1_governance_proto_depIdxs = 46, // 68: penumbra.core.component.governance.v1alpha1.ProposalOutcome.Slashed.withdrawn:type_name -> penumbra.core.component.governance.v1alpha1.ProposalOutcome.Withdrawn 32, // 69: penumbra.core.component.governance.v1alpha1.Proposal.ParameterChange.old_parameters:type_name -> penumbra.core.component.governance.v1alpha1.ChangedAppParameters 32, // 70: penumbra.core.component.governance.v1alpha1.Proposal.ParameterChange.new_parameters:type_name -> penumbra.core.component.governance.v1alpha1.ChangedAppParameters - 72, // 71: penumbra.core.component.governance.v1alpha1.Proposal.DaoSpend.transaction_plan:type_name -> google.protobuf.Any + 72, // 71: penumbra.core.component.governance.v1alpha1.Proposal.CommunityPoolSpend.transaction_plan:type_name -> google.protobuf.Any 20, // 72: penumbra.core.component.governance.v1alpha1.QueryService.ProposalInfo:input_type -> penumbra.core.component.governance.v1alpha1.ProposalInfoRequest 26, // 73: penumbra.core.component.governance.v1alpha1.QueryService.ProposalList:input_type -> penumbra.core.component.governance.v1alpha1.ProposalListRequest 22, // 74: penumbra.core.component.governance.v1alpha1.QueryService.ProposalData:input_type -> penumbra.core.component.governance.v1alpha1.ProposalDataRequest @@ -4513,7 +4522,7 @@ func file_penumbra_core_component_governance_v1alpha1_governance_proto_init() { } } file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DaoDeposit); i { + switch v := v.(*CommunityPoolDeposit); i { case 0: return &v.state case 1: @@ -4525,7 +4534,7 @@ func file_penumbra_core_component_governance_v1alpha1_governance_proto_init() { } } file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DaoSpend); i { + switch v := v.(*CommunityPoolSpend); i { case 0: return &v.state case 1: @@ -4537,7 +4546,7 @@ func file_penumbra_core_component_governance_v1alpha1_governance_proto_init() { } } file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DaoOutput); i { + switch v := v.(*CommunityPoolOutput); i { case 0: return &v.state case 1: @@ -5005,7 +5014,7 @@ func file_penumbra_core_component_governance_v1alpha1_governance_proto_init() { } } file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Proposal_DaoSpend); i { + switch v := v.(*Proposal_CommunityPoolSpend); i { case 0: return &v.state case 1: diff --git a/proto/go/gen/penumbra/core/component/sct/v1alpha1/sct.pb.go b/proto/go/gen/penumbra/core/component/sct/v1alpha1/sct.pb.go index dc2b10a5aa..46e03501e9 100644 --- a/proto/go/gen/penumbra/core/component/sct/v1alpha1/sct.pb.go +++ b/proto/go/gen/penumbra/core/component/sct/v1alpha1/sct.pb.go @@ -35,7 +35,7 @@ type CommitmentSource struct { // *CommitmentSource_Transaction_ // *CommitmentSource_Ics_20Transfer // *CommitmentSource_FundingStreamReward_ - // *CommitmentSource_DaoOutput_ + // *CommitmentSource_CommunityPoolOutput_ // *CommitmentSource_Genesis_ Source isCommitmentSource_Source `protobuf_oneof:"source"` } @@ -100,9 +100,9 @@ func (x *CommitmentSource) GetFundingStreamReward() *CommitmentSource_FundingStr return nil } -func (x *CommitmentSource) GetDaoOutput() *CommitmentSource_DaoOutput { - if x, ok := x.GetSource().(*CommitmentSource_DaoOutput_); ok { - return x.DaoOutput +func (x *CommitmentSource) GetCommunityPoolOutput() *CommitmentSource_CommunityPoolOutput { + if x, ok := x.GetSource().(*CommitmentSource_CommunityPoolOutput_); ok { + return x.CommunityPoolOutput } return nil } @@ -130,8 +130,8 @@ type CommitmentSource_FundingStreamReward_ struct { FundingStreamReward *CommitmentSource_FundingStreamReward `protobuf:"bytes,20,opt,name=funding_stream_reward,json=fundingStreamReward,proto3,oneof"` } -type CommitmentSource_DaoOutput_ struct { - DaoOutput *CommitmentSource_DaoOutput `protobuf:"bytes,30,opt,name=dao_output,json=daoOutput,proto3,oneof"` +type CommitmentSource_CommunityPoolOutput_ struct { + CommunityPoolOutput *CommitmentSource_CommunityPoolOutput `protobuf:"bytes,30,opt,name=community_pool_output,json=communityPoolOutput,proto3,oneof"` } type CommitmentSource_Genesis_ struct { @@ -144,7 +144,7 @@ func (*CommitmentSource_Ics_20Transfer) isCommitmentSource_Source() {} func (*CommitmentSource_FundingStreamReward_) isCommitmentSource_Source() {} -func (*CommitmentSource_DaoOutput_) isCommitmentSource_Source() {} +func (*CommitmentSource_CommunityPoolOutput_) isCommitmentSource_Source() {} func (*CommitmentSource_Genesis_) isCommitmentSource_Source() {} @@ -627,15 +627,15 @@ func (x *CommitmentSource_FundingStreamReward) GetEpochIndex() uint64 { return 0 } -// The commitment was created through a `DaoOutput` in a governance-initated transaction. -type CommitmentSource_DaoOutput struct { +// The commitment was created through a `CommunityPoolOutput` in a governance-initated transaction. +type CommitmentSource_CommunityPoolOutput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *CommitmentSource_DaoOutput) Reset() { - *x = CommitmentSource_DaoOutput{} +func (x *CommitmentSource_CommunityPoolOutput) Reset() { + *x = CommitmentSource_CommunityPoolOutput{} if protoimpl.UnsafeEnabled { mi := &file_penumbra_core_component_sct_v1alpha1_sct_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -643,13 +643,13 @@ func (x *CommitmentSource_DaoOutput) Reset() { } } -func (x *CommitmentSource_DaoOutput) String() string { +func (x *CommitmentSource_CommunityPoolOutput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CommitmentSource_DaoOutput) ProtoMessage() {} +func (*CommitmentSource_CommunityPoolOutput) ProtoMessage() {} -func (x *CommitmentSource_DaoOutput) ProtoReflect() protoreflect.Message { +func (x *CommitmentSource_CommunityPoolOutput) ProtoReflect() protoreflect.Message { mi := &file_penumbra_core_component_sct_v1alpha1_sct_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -661,8 +661,8 @@ func (x *CommitmentSource_DaoOutput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CommitmentSource_DaoOutput.ProtoReflect.Descriptor instead. -func (*CommitmentSource_DaoOutput) Descriptor() ([]byte, []int) { +// Deprecated: Use CommitmentSource_CommunityPoolOutput.ProtoReflect.Descriptor instead. +func (*CommitmentSource_CommunityPoolOutput) Descriptor() ([]byte, []int) { return file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDescGZIP(), []int{0, 3} } @@ -743,7 +743,7 @@ var file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDesc = []byte{ 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x26, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x74, 0x63, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2f, 0x74, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x74, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb6, 0x06, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, @@ -766,13 +766,15 @@ var file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDesc = []byte{ 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x48, 0x00, 0x52, 0x13, 0x66, 0x75, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x61, - 0x0a, 0x0a, 0x64, 0x61, 0x6f, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x1e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x63, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x44, 0x61, 0x6f, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x09, 0x64, 0x61, 0x6f, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x80, + 0x01, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x13, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x5a, 0x0a, 0x07, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x63, 0x74, @@ -785,76 +787,76 @@ var file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDesc = []byte{ 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, - 0x0b, 0x0a, 0x09, 0x44, 0x61, 0x6f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x65, 0x0a, 0x0d, - 0x49, 0x63, 0x73, 0x32, 0x30, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x21, 0x0a, - 0x09, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x22, 0x46, 0x0a, 0x11, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x70, 0x65, - 0x6e, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0a, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, + 0x15, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x65, 0x0a, 0x0d, 0x49, 0x63, 0x73, 0x32, 0x30, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x53, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x42, 0x08, 0x0a, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x09, 0x4e, 0x75, 0x6c, 0x6c, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x46, 0x0a, 0x11, 0x4e, 0x75, + 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x21, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x4e, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x63, 0x74, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x22, 0x67, 0x0a, 0x0b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x12, 0x40, 0x0a, 0x06, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2e, 0x73, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x67, 0x0a, 0x0b, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x12, 0x40, 0x0a, 0x06, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, - 0x52, 0x06, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x22, 0x64, 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x6f, + 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x06, 0x61, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x64, 0x0a, 0x0e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x3c, 0x0a, 0x04, + 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, + 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x22, 0x66, 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x66, 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, - 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x32, 0x0e, - 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0xca, - 0x02, 0x0a, 0x28, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, - 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x08, 0x53, 0x63, 0x74, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2d, 0x7a, 0x6f, 0x6e, - 0x65, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, - 0x73, 0x63, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x73, 0x63, 0x74, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, 0x43, 0x43, 0x53, 0xaa, - 0x02, 0x24, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, - 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x74, 0x2e, 0x56, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x24, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x5c, 0x53, 0x63, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x30, - 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5c, 0x53, 0x63, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xea, 0x02, 0x28, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, 0x72, - 0x65, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x53, 0x63, - 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x32, 0x0e, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0xca, 0x02, 0x0a, 0x28, 0x63, 0x6f, 0x6d, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x08, 0x53, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x5f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, + 0x6e, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x74, 0x2f, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x73, 0x63, 0x74, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, 0x43, 0x43, 0x53, 0xaa, 0x02, 0x24, 0x50, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x74, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0xca, 0x02, 0x24, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, + 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5c, 0x53, 0x63, 0x74, 0x5c, 0x56, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x30, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x5c, 0x53, 0x63, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x28, 0x50, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x53, 0x63, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -881,7 +883,7 @@ var file_penumbra_core_component_sct_v1alpha1_sct_proto_goTypes = []interface{}{ (*CommitmentSource_Genesis)(nil), // 7: penumbra.core.component.sct.v1alpha1.CommitmentSource.Genesis (*CommitmentSource_Transaction)(nil), // 8: penumbra.core.component.sct.v1alpha1.CommitmentSource.Transaction (*CommitmentSource_FundingStreamReward)(nil), // 9: penumbra.core.component.sct.v1alpha1.CommitmentSource.FundingStreamReward - (*CommitmentSource_DaoOutput)(nil), // 10: penumbra.core.component.sct.v1alpha1.CommitmentSource.DaoOutput + (*CommitmentSource_CommunityPoolOutput)(nil), // 10: penumbra.core.component.sct.v1alpha1.CommitmentSource.CommunityPoolOutput (*CommitmentSource_Ics20Transfer)(nil), // 11: penumbra.core.component.sct.v1alpha1.CommitmentSource.Ics20Transfer (*v1alpha1.StateCommitment)(nil), // 12: penumbra.crypto.tct.v1alpha1.StateCommitment (*v1alpha1.MerkleRoot)(nil), // 13: penumbra.crypto.tct.v1alpha1.MerkleRoot @@ -890,7 +892,7 @@ var file_penumbra_core_component_sct_v1alpha1_sct_proto_depIdxs = []int32{ 8, // 0: penumbra.core.component.sct.v1alpha1.CommitmentSource.transaction:type_name -> penumbra.core.component.sct.v1alpha1.CommitmentSource.Transaction 11, // 1: penumbra.core.component.sct.v1alpha1.CommitmentSource.ics_20_transfer:type_name -> penumbra.core.component.sct.v1alpha1.CommitmentSource.Ics20Transfer 9, // 2: penumbra.core.component.sct.v1alpha1.CommitmentSource.funding_stream_reward:type_name -> penumbra.core.component.sct.v1alpha1.CommitmentSource.FundingStreamReward - 10, // 3: penumbra.core.component.sct.v1alpha1.CommitmentSource.dao_output:type_name -> penumbra.core.component.sct.v1alpha1.CommitmentSource.DaoOutput + 10, // 3: penumbra.core.component.sct.v1alpha1.CommitmentSource.community_pool_output:type_name -> penumbra.core.component.sct.v1alpha1.CommitmentSource.CommunityPoolOutput 7, // 4: penumbra.core.component.sct.v1alpha1.CommitmentSource.genesis:type_name -> penumbra.core.component.sct.v1alpha1.CommitmentSource.Genesis 12, // 5: penumbra.core.component.sct.v1alpha1.EventCommitment.commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment 0, // 6: penumbra.core.component.sct.v1alpha1.EventCommitment.source:type_name -> penumbra.core.component.sct.v1alpha1.CommitmentSource @@ -1031,7 +1033,7 @@ func file_penumbra_core_component_sct_v1alpha1_sct_proto_init() { } } file_penumbra_core_component_sct_v1alpha1_sct_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommitmentSource_DaoOutput); i { + switch v := v.(*CommitmentSource_CommunityPoolOutput); i { case 0: return &v.state case 1: @@ -1059,7 +1061,7 @@ func file_penumbra_core_component_sct_v1alpha1_sct_proto_init() { (*CommitmentSource_Transaction_)(nil), (*CommitmentSource_Ics_20Transfer)(nil), (*CommitmentSource_FundingStreamReward_)(nil), - (*CommitmentSource_DaoOutput_)(nil), + (*CommitmentSource_CommunityPoolOutput_)(nil), (*CommitmentSource_Genesis_)(nil), } type x struct{} diff --git a/proto/go/gen/penumbra/core/component/stake/v1alpha1/stake.pb.go b/proto/go/gen/penumbra/core/component/stake/v1alpha1/stake.pb.go index a44b11cbf5..cce5012900 100644 --- a/proto/go/gen/penumbra/core/component/stake/v1alpha1/stake.pb.go +++ b/proto/go/gen/penumbra/core/component/stake/v1alpha1/stake.pb.go @@ -365,7 +365,7 @@ type FundingStream struct { // Types that are assignable to Recipient: // // *FundingStream_ToAddress_ - // *FundingStream_ToDao_ + // *FundingStream_ToCommunityPool_ Recipient isFundingStream_Recipient `protobuf_oneof:"recipient"` } @@ -415,9 +415,9 @@ func (x *FundingStream) GetToAddress() *FundingStream_ToAddress { return nil } -func (x *FundingStream) GetToDao() *FundingStream_ToDao { - if x, ok := x.GetRecipient().(*FundingStream_ToDao_); ok { - return x.ToDao +func (x *FundingStream) GetToCommunityPool() *FundingStream_ToCommunityPool { + if x, ok := x.GetRecipient().(*FundingStream_ToCommunityPool_); ok { + return x.ToCommunityPool } return nil } @@ -430,13 +430,13 @@ type FundingStream_ToAddress_ struct { ToAddress *FundingStream_ToAddress `protobuf:"bytes,1,opt,name=to_address,json=toAddress,proto3,oneof"` } -type FundingStream_ToDao_ struct { - ToDao *FundingStream_ToDao `protobuf:"bytes,2,opt,name=to_dao,json=toDao,proto3,oneof"` +type FundingStream_ToCommunityPool_ struct { + ToCommunityPool *FundingStream_ToCommunityPool `protobuf:"bytes,2,opt,name=to_community_pool,json=toCommunityPool,proto3,oneof"` } func (*FundingStream_ToAddress_) isFundingStream_Recipient() {} -func (*FundingStream_ToDao_) isFundingStream_Recipient() {} +func (*FundingStream_ToCommunityPool_) isFundingStream_Recipient() {} // Describes the reward and exchange rates and voting power for a validator in some epoch. type RateData struct { @@ -2138,7 +2138,7 @@ func (x *FundingStream_ToAddress) GetRateBps() uint32 { return 0 } -type FundingStream_ToDao struct { +type FundingStream_ToCommunityPool struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2148,8 +2148,8 @@ type FundingStream_ToDao struct { RateBps uint32 `protobuf:"varint,2,opt,name=rate_bps,json=rateBps,proto3" json:"rate_bps,omitempty"` } -func (x *FundingStream_ToDao) Reset() { - *x = FundingStream_ToDao{} +func (x *FundingStream_ToCommunityPool) Reset() { + *x = FundingStream_ToCommunityPool{} if protoimpl.UnsafeEnabled { mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2157,13 +2157,13 @@ func (x *FundingStream_ToDao) Reset() { } } -func (x *FundingStream_ToDao) String() string { +func (x *FundingStream_ToCommunityPool) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FundingStream_ToDao) ProtoMessage() {} +func (*FundingStream_ToCommunityPool) ProtoMessage() {} -func (x *FundingStream_ToDao) ProtoReflect() protoreflect.Message { +func (x *FundingStream_ToCommunityPool) ProtoReflect() protoreflect.Message { mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2175,12 +2175,12 @@ func (x *FundingStream_ToDao) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FundingStream_ToDao.ProtoReflect.Descriptor instead. -func (*FundingStream_ToDao) Descriptor() ([]byte, []int) { +// Deprecated: Use FundingStream_ToCommunityPool.ProtoReflect.Descriptor instead. +func (*FundingStream_ToCommunityPool) Descriptor() ([]byte, []int) { return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{3, 1} } -func (x *FundingStream_ToDao) GetRateBps() uint32 { +func (x *FundingStream_ToCommunityPool) GetRateBps() uint32 { if x != nil { return x.RateBps } @@ -2240,7 +2240,7 @@ var file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDesc = []byte{ 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0d, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x22, 0xba, 0x02, 0x0a, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x0d, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x60, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, @@ -2248,408 +2248,411 @@ var file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDesc = []byte{ 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x54, 0x0a, 0x06, 0x74, 0x6f, 0x5f, 0x64, 0x61, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x54, 0x6f, 0x44, 0x61, 0x6f, 0x48, 0x00, 0x52, - 0x05, 0x74, 0x6f, 0x44, 0x61, 0x6f, 0x1a, 0x40, 0x0a, 0x09, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, - 0x08, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x72, 0x61, 0x74, 0x65, 0x42, 0x70, 0x73, 0x1a, 0x22, 0x0a, 0x05, 0x54, 0x6f, 0x44, 0x61, - 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x61, 0x74, 0x65, 0x42, 0x70, 0x73, 0x42, 0x0b, 0x0a, 0x09, - 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xe4, 0x01, 0x0a, 0x08, 0x52, 0x61, - 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, - 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, - 0x22, 0x87, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x12, 0x28, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x62, 0x61, - 0x73, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, - 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x22, 0xaa, 0x02, 0x0a, 0x0f, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4b, - 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x4c, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x74, - 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0b, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x0d, - 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, - 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x62, 0x6f, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xaf, 0x02, 0x0a, 0x0c, 0x42, 0x6f, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x6f, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, - 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x22, 0x98, - 0x01, 0x0a, 0x10, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x4f, 0x4e, 0x44, 0x49, - 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x42, 0x4f, - 0x4e, 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, - 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x42, - 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x4f, 0x4e, 0x44, - 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, - 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x03, 0x22, 0xdb, 0x02, 0x0a, 0x0e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5f, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x70, 0x65, + 0x12, 0x73, 0x0a, 0x11, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xe7, 0x01, - 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x20, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, - 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x56, 0x41, - 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, - 0x55, 0x4d, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, - 0x1b, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x1f, - 0x0a, 0x1b, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x4a, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, - 0x23, 0x0a, 0x1f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, - 0x45, 0x44, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, - 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x44, 0x49, 0x53, - 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x22, 0x80, 0x02, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4f, 0x0a, 0x09, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x54, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, + 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, 0x40, 0x0a, 0x09, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, + 0x72, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x72, 0x61, 0x74, 0x65, 0x42, 0x70, 0x73, 0x1a, 0x2c, 0x0a, 0x0f, 0x54, 0x6f, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x61, + 0x74, 0x65, 0x5f, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x61, + 0x74, 0x65, 0x42, 0x70, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x22, 0xe4, 0x01, 0x0a, 0x08, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, + 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0b, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, + 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, + 0x65, 0x12, 0x36, 0x0a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x45, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x0c, 0x42, 0x61, + 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x28, 0x0a, 0x10, 0x62, + 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x61, 0x74, 0x65, 0x22, 0xaa, 0x02, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, + 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x4b, 0x65, 0x79, 0x12, 0x4c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, + 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x77, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, + 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x72, - 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x72, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x81, 0x01, 0x0a, 0x13, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x0c, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x22, 0xaf, 0x02, 0x0a, 0x0c, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x5b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x45, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, + 0x0a, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x22, 0x98, 0x01, 0x0a, 0x10, 0x42, 0x6f, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x1e, + 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, + 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, + 0x20, 0x0a, 0x1c, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, + 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, + 0x10, 0x03, 0x22, 0xdb, 0x02, 0x0a, 0x0e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xe7, 0x01, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, + 0x20, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x49, 0x4e, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, + 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, + 0x4a, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, + 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x04, 0x12, 0x21, 0x0a, + 0x1d, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x05, + 0x22, 0x80, 0x02, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x4f, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x69, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x22, 0xa2, - 0x02, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x12, 0x76, + 0x74, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, + 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x72, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x22, 0x81, 0x01, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x09, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, + 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x61, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x22, 0xa2, 0x02, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, + 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4b, + 0x0a, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x75, 0x6e, 0x62, + 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x11, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xaf, 0x02, 0x0a, + 0x0a, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4b, 0x0a, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, - 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, - 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, - 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xaf, 0x02, 0x0a, 0x0a, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x12, 0x57, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, - 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4b, 0x0a, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, - 0x64, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x78, 0x0a, 0x0f, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x4f, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x74, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x4b, 0x0a, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x75, + 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4f, 0x0a, + 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x78, + 0x0a, 0x0f, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, + 0x6d, 0x12, 0x4f, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, + 0x64, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xc5, 0x02, 0x0a, 0x13, 0x55, 0x6e, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x42, 0x6f, 0x64, 0x79, + 0x12, 0x57, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, + 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x49, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x42, - 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, - 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, - 0xc5, 0x02, 0x0a, 0x13, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, - 0x61, 0x69, 0x6d, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x57, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x11, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x49, 0x0a, 0x07, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, 0x07, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x5e, 0x0a, 0x12, 0x62, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x11, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xb3, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x12, - 0x57, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x49, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, - 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, - 0x4d, 0x0a, 0x10, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x75, - 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, - 0x0a, 0x10, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x6f, - 0x6f, 0x66, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x52, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, 0x6c, 0x69, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, - 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x22, 0xc1, 0x01, - 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, - 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x0d, 0x75, 0x6e, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, + 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x12, 0x5e, 0x0a, 0x12, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x11, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0xb3, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, + 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x57, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x11, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x49, 0x0a, + 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x52, 0x0d, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x22, 0x6c, 0x0a, 0x06, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x61, - 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x73, 0x4f, 0x66, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x74, 0x76, 0x65, - 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x69, 0x74, 0x76, 0x65, 0x63, 0x22, - 0x68, 0x0a, 0x14, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x73, 0x75, 0x73, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x50, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x1f, 0x0a, 0x07, 0x50, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x56, 0x0a, 0x14, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, - 0x0d, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x22, 0x75, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, - 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x80, 0x01, 0x0a, 0x16, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, - 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, - 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x22, 0x6a, 0x0a, 0x17, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, + 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x10, 0x75, 0x6e, 0x62, 0x6f, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x6e, 0x75, 0x6d, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, 0x6c, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x72, + 0x6f, 0x6f, 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x28, 0x0a, 0x10, + 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x6c, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x22, 0xc1, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x0b, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x58, 0x0a, 0x0d, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd5, 0x01, 0x0a, 0x17, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, - 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, - 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x11, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x22, 0x65, 0x0a, 0x18, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x07, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, 0x07, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x22, 0x85, 0x01, 0x0a, 0x1b, 0x43, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x75, 0x6e, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x6c, 0x0a, 0x06, 0x55, 0x70, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0f, 0x61, 0x73, 0x4f, 0x66, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x6c, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4c, 0x65, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x74, 0x76, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x06, 0x62, 0x69, 0x74, 0x76, 0x65, 0x63, 0x22, 0x68, 0x0a, 0x14, 0x43, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4b, 0x65, 0x79, 0x73, + 0x12, 0x50, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, - 0x65, 0x79, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x22, - 0x64, 0x0a, 0x1c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x44, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x4b, 0x65, 0x79, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4b, 0x65, + 0x79, 0x73, 0x22, 0x1f, 0x0a, 0x07, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x22, 0x56, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x69, + 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, + 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x75, 0x0a, 0x15, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x80, 0x01, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, + 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x4b, 0x65, 0x79, 0x22, 0x6a, 0x0a, 0x17, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0xd5, 0x01, 0x0a, 0x17, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, + 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x65, 0x0a, 0x18, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x22, 0x85, 0x01, 0x0a, 0x1b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0c, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x22, 0x64, 0x0a, 0x1c, 0x43, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x87, + 0x03, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x75, 0x6e, + 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x12, 0x34, 0x0a, + 0x16, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x62, + 0x61, 0x73, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, + 0x1c, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x5f, 0x6d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x1a, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x4d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, + 0x3a, 0x0a, 0x19, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x17, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x4c, 0x65, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x13, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x22, 0xbf, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x6e, + 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x5a, 0x0a, 0x0c, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x51, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x32, 0xf0, 0x04, 0x0a, 0x0c, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x0d, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x87, 0x03, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x62, - 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x62, 0x61, - 0x73, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x52, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x1c, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, - 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x6d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, - 0x76, 0x69, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x4d, 0x69, 0x73, 0x62, 0x65, - 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x3a, 0x0a, 0x19, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x73, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x73, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x6d, - 0x69, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x6d, 0x69, 0x73, 0x73, - 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x22, - 0xbf, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x12, 0x5a, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, - 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x51, - 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x32, 0xf0, 0x04, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, - 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x30, 0x01, 0x12, 0x92, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x92, 0x01, 0x0a, + 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x95, 0x01, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x14, 0x43, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, + 0x74, 0x65, 0x12, 0x43, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x95, 0x01, 0x0a, 0x10, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x3f, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0xa1, 0x01, 0x0a, 0x14, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x43, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xda, 0x02, 0x0a, 0x2a, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x42, 0x0a, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x63, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, - 0x6e, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2f, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, 0x43, 0x43, 0x53, 0xaa, 0x02, 0x26, - 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x56, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x26, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, - 0x02, 0x32, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, + 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xda, 0x02, + 0x0a, 0x2a, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, + 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0a, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x63, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2d, + 0x7a, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, + 0x02, 0x04, 0x50, 0x43, 0x43, 0x53, 0xaa, 0x02, 0x26, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, + 0x02, 0x26, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x5c, - 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x2a, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, - 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x32, 0x50, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x2a, + 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -2700,7 +2703,7 @@ var file_penumbra_core_component_stake_v1alpha1_stake_proto_goTypes = []interfac (*StakeParameters)(nil), // 30: penumbra.core.component.stake.v1alpha1.StakeParameters (*GenesisContent)(nil), // 31: penumbra.core.component.stake.v1alpha1.GenesisContent (*FundingStream_ToAddress)(nil), // 32: penumbra.core.component.stake.v1alpha1.FundingStream.ToAddress - (*FundingStream_ToDao)(nil), // 33: penumbra.core.component.stake.v1alpha1.FundingStream.ToDao + (*FundingStream_ToCommunityPool)(nil), // 33: penumbra.core.component.stake.v1alpha1.FundingStream.ToCommunityPool (*v1alpha1.IdentityKey)(nil), // 34: penumbra.core.keys.v1alpha1.IdentityKey (*v1alpha1.GovernanceKey)(nil), // 35: penumbra.core.keys.v1alpha1.GovernanceKey (*v1alpha11.Amount)(nil), // 36: penumbra.core.num.v1alpha1.Amount @@ -2713,7 +2716,7 @@ var file_penumbra_core_component_stake_v1alpha1_stake_proto_depIdxs = []int32{ 35, // 2: penumbra.core.component.stake.v1alpha1.Validator.governance_key:type_name -> penumbra.core.keys.v1alpha1.GovernanceKey 34, // 3: penumbra.core.component.stake.v1alpha1.ValidatorList.validator_keys:type_name -> penumbra.core.keys.v1alpha1.IdentityKey 32, // 4: penumbra.core.component.stake.v1alpha1.FundingStream.to_address:type_name -> penumbra.core.component.stake.v1alpha1.FundingStream.ToAddress - 33, // 5: penumbra.core.component.stake.v1alpha1.FundingStream.to_dao:type_name -> penumbra.core.component.stake.v1alpha1.FundingStream.ToDao + 33, // 5: penumbra.core.component.stake.v1alpha1.FundingStream.to_community_pool:type_name -> penumbra.core.component.stake.v1alpha1.FundingStream.ToCommunityPool 34, // 6: penumbra.core.component.stake.v1alpha1.RateData.identity_key:type_name -> penumbra.core.keys.v1alpha1.IdentityKey 34, // 7: penumbra.core.component.stake.v1alpha1.ValidatorStatus.identity_key:type_name -> penumbra.core.keys.v1alpha1.IdentityKey 10, // 8: penumbra.core.component.stake.v1alpha1.ValidatorStatus.state:type_name -> penumbra.core.component.stake.v1alpha1.ValidatorState @@ -3143,7 +3146,7 @@ func file_penumbra_core_component_stake_v1alpha1_stake_proto_init() { } } file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FundingStream_ToDao); i { + switch v := v.(*FundingStream_ToCommunityPool); i { case 0: return &v.state case 1: @@ -3157,7 +3160,7 @@ func file_penumbra_core_component_stake_v1alpha1_stake_proto_init() { } file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[3].OneofWrappers = []interface{}{ (*FundingStream_ToAddress_)(nil), - (*FundingStream_ToDao_)(nil), + (*FundingStream_ToCommunityPool_)(nil), } type x struct{} out := protoimpl.TypeBuilder{ diff --git a/proto/go/gen/penumbra/core/transaction/v1alpha1/transaction.pb.go b/proto/go/gen/penumbra/core/transaction/v1alpha1/transaction.pb.go index efaf1da0a1..b6836b493c 100644 --- a/proto/go/gen/penumbra/core/transaction/v1alpha1/transaction.pb.go +++ b/proto/go/gen/penumbra/core/transaction/v1alpha1/transaction.pb.go @@ -371,9 +371,9 @@ type Action struct { // *Action_Delegate // *Action_Undelegate // *Action_UndelegateClaim - // *Action_DaoSpend - // *Action_DaoOutput - // *Action_DaoDeposit + // *Action_CommunityPoolSpend + // *Action_CommunityPoolOutput + // *Action_CommunityPoolDeposit // *Action_Ics20Withdrawal Action isAction_Action `protobuf_oneof:"action"` } @@ -543,23 +543,23 @@ func (x *Action) GetUndelegateClaim() *v1alpha16.UndelegateClaim { return nil } -func (x *Action) GetDaoSpend() *v1alpha18.DaoSpend { - if x, ok := x.GetAction().(*Action_DaoSpend); ok { - return x.DaoSpend +func (x *Action) GetCommunityPoolSpend() *v1alpha18.CommunityPoolSpend { + if x, ok := x.GetAction().(*Action_CommunityPoolSpend); ok { + return x.CommunityPoolSpend } return nil } -func (x *Action) GetDaoOutput() *v1alpha18.DaoOutput { - if x, ok := x.GetAction().(*Action_DaoOutput); ok { - return x.DaoOutput +func (x *Action) GetCommunityPoolOutput() *v1alpha18.CommunityPoolOutput { + if x, ok := x.GetAction().(*Action_CommunityPoolOutput); ok { + return x.CommunityPoolOutput } return nil } -func (x *Action) GetDaoDeposit() *v1alpha18.DaoDeposit { - if x, ok := x.GetAction().(*Action_DaoDeposit); ok { - return x.DaoDeposit +func (x *Action) GetCommunityPoolDeposit() *v1alpha18.CommunityPoolDeposit { + if x, ok := x.GetAction().(*Action_CommunityPoolDeposit); ok { + return x.CommunityPoolDeposit } return nil } @@ -651,17 +651,17 @@ type Action_UndelegateClaim struct { UndelegateClaim *v1alpha16.UndelegateClaim `protobuf:"bytes,42,opt,name=undelegate_claim,json=undelegateClaim,proto3,oneof"` } -type Action_DaoSpend struct { - // DAO - DaoSpend *v1alpha18.DaoSpend `protobuf:"bytes,50,opt,name=dao_spend,json=daoSpend,proto3,oneof"` +type Action_CommunityPoolSpend struct { + // Community Pool + CommunityPoolSpend *v1alpha18.CommunityPoolSpend `protobuf:"bytes,50,opt,name=community_pool_spend,json=communityPoolSpend,proto3,oneof"` } -type Action_DaoOutput struct { - DaoOutput *v1alpha18.DaoOutput `protobuf:"bytes,51,opt,name=dao_output,json=daoOutput,proto3,oneof"` +type Action_CommunityPoolOutput struct { + CommunityPoolOutput *v1alpha18.CommunityPoolOutput `protobuf:"bytes,51,opt,name=community_pool_output,json=communityPoolOutput,proto3,oneof"` } -type Action_DaoDeposit struct { - DaoDeposit *v1alpha18.DaoDeposit `protobuf:"bytes,52,opt,name=dao_deposit,json=daoDeposit,proto3,oneof"` +type Action_CommunityPoolDeposit struct { + CommunityPoolDeposit *v1alpha18.CommunityPoolDeposit `protobuf:"bytes,52,opt,name=community_pool_deposit,json=communityPoolDeposit,proto3,oneof"` } type Action_Ics20Withdrawal struct { @@ -704,11 +704,11 @@ func (*Action_Undelegate) isAction_Action() {} func (*Action_UndelegateClaim) isAction_Action() {} -func (*Action_DaoSpend) isAction_Action() {} +func (*Action_CommunityPoolSpend) isAction_Action() {} -func (*Action_DaoOutput) isAction_Action() {} +func (*Action_CommunityPoolOutput) isAction_Action() {} -func (*Action_DaoDeposit) isAction_Action() {} +func (*Action_CommunityPoolDeposit) isAction_Action() {} func (*Action_Ics20Withdrawal) isAction_Action() {} @@ -1086,9 +1086,9 @@ type ActionView struct { // *ActionView_PositionRewardClaim // *ActionView_Delegate // *ActionView_Undelegate - // *ActionView_DaoSpend - // *ActionView_DaoOutput - // *ActionView_DaoDeposit + // *ActionView_CommunityPoolSpend + // *ActionView_CommunityPoolOutput + // *ActionView_CommunityPoolDeposit // *ActionView_UndelegateClaim // *ActionView_Ics20Withdrawal ActionView isActionView_ActionView `protobuf_oneof:"action_view"` @@ -1252,23 +1252,23 @@ func (x *ActionView) GetUndelegate() *v1alpha16.Undelegate { return nil } -func (x *ActionView) GetDaoSpend() *v1alpha18.DaoSpend { - if x, ok := x.GetActionView().(*ActionView_DaoSpend); ok { - return x.DaoSpend +func (x *ActionView) GetCommunityPoolSpend() *v1alpha18.CommunityPoolSpend { + if x, ok := x.GetActionView().(*ActionView_CommunityPoolSpend); ok { + return x.CommunityPoolSpend } return nil } -func (x *ActionView) GetDaoOutput() *v1alpha18.DaoOutput { - if x, ok := x.GetActionView().(*ActionView_DaoOutput); ok { - return x.DaoOutput +func (x *ActionView) GetCommunityPoolOutput() *v1alpha18.CommunityPoolOutput { + if x, ok := x.GetActionView().(*ActionView_CommunityPoolOutput); ok { + return x.CommunityPoolOutput } return nil } -func (x *ActionView) GetDaoDeposit() *v1alpha18.DaoDeposit { - if x, ok := x.GetActionView().(*ActionView_DaoDeposit); ok { - return x.DaoDeposit +func (x *ActionView) GetCommunityPoolDeposit() *v1alpha18.CommunityPoolDeposit { + if x, ok := x.GetActionView().(*ActionView_CommunityPoolDeposit); ok { + return x.CommunityPoolDeposit } return nil } @@ -1362,17 +1362,17 @@ type ActionView_Undelegate struct { Undelegate *v1alpha16.Undelegate `protobuf:"bytes,42,opt,name=undelegate,proto3,oneof"` } -type ActionView_DaoSpend struct { - // DAO - DaoSpend *v1alpha18.DaoSpend `protobuf:"bytes,50,opt,name=dao_spend,json=daoSpend,proto3,oneof"` +type ActionView_CommunityPoolSpend struct { + // Community Pool + CommunityPoolSpend *v1alpha18.CommunityPoolSpend `protobuf:"bytes,50,opt,name=community_pool_spend,json=communityPoolSpend,proto3,oneof"` } -type ActionView_DaoOutput struct { - DaoOutput *v1alpha18.DaoOutput `protobuf:"bytes,51,opt,name=dao_output,json=daoOutput,proto3,oneof"` +type ActionView_CommunityPoolOutput struct { + CommunityPoolOutput *v1alpha18.CommunityPoolOutput `protobuf:"bytes,51,opt,name=community_pool_output,json=communityPoolOutput,proto3,oneof"` } -type ActionView_DaoDeposit struct { - DaoDeposit *v1alpha18.DaoDeposit `protobuf:"bytes,52,opt,name=dao_deposit,json=daoDeposit,proto3,oneof"` +type ActionView_CommunityPoolDeposit struct { + CommunityPoolDeposit *v1alpha18.CommunityPoolDeposit `protobuf:"bytes,52,opt,name=community_pool_deposit,json=communityPoolDeposit,proto3,oneof"` } type ActionView_UndelegateClaim struct { @@ -1420,11 +1420,11 @@ func (*ActionView_Delegate) isActionView_ActionView() {} func (*ActionView_Undelegate) isActionView_ActionView() {} -func (*ActionView_DaoSpend) isActionView_ActionView() {} +func (*ActionView_CommunityPoolSpend) isActionView_ActionView() {} -func (*ActionView_DaoOutput) isActionView_ActionView() {} +func (*ActionView_CommunityPoolOutput) isActionView_ActionView() {} -func (*ActionView_DaoDeposit) isActionView_ActionView() {} +func (*ActionView_CommunityPoolDeposit) isActionView_ActionView() {} func (*ActionView_UndelegateClaim) isActionView_ActionView() {} @@ -1715,9 +1715,9 @@ type ActionPlan struct { // *ActionPlan_Delegate // *ActionPlan_Undelegate // *ActionPlan_UndelegateClaim - // *ActionPlan_DaoSpend - // *ActionPlan_DaoOutput - // *ActionPlan_DaoDeposit + // *ActionPlan_CommunityPoolSpend + // *ActionPlan_CommunityPoolOutput + // *ActionPlan_CommunityPoolDeposit Action isActionPlan_Action `protobuf_oneof:"action"` } @@ -1893,23 +1893,23 @@ func (x *ActionPlan) GetUndelegateClaim() *v1alpha16.UndelegateClaimPlan { return nil } -func (x *ActionPlan) GetDaoSpend() *v1alpha18.DaoSpend { - if x, ok := x.GetAction().(*ActionPlan_DaoSpend); ok { - return x.DaoSpend +func (x *ActionPlan) GetCommunityPoolSpend() *v1alpha18.CommunityPoolSpend { + if x, ok := x.GetAction().(*ActionPlan_CommunityPoolSpend); ok { + return x.CommunityPoolSpend } return nil } -func (x *ActionPlan) GetDaoOutput() *v1alpha18.DaoOutput { - if x, ok := x.GetAction().(*ActionPlan_DaoOutput); ok { - return x.DaoOutput +func (x *ActionPlan) GetCommunityPoolOutput() *v1alpha18.CommunityPoolOutput { + if x, ok := x.GetAction().(*ActionPlan_CommunityPoolOutput); ok { + return x.CommunityPoolOutput } return nil } -func (x *ActionPlan) GetDaoDeposit() *v1alpha18.DaoDeposit { - if x, ok := x.GetAction().(*ActionPlan_DaoDeposit); ok { - return x.DaoDeposit +func (x *ActionPlan) GetCommunityPoolDeposit() *v1alpha18.CommunityPoolDeposit { + if x, ok := x.GetAction().(*ActionPlan_CommunityPoolDeposit); ok { + return x.CommunityPoolDeposit } return nil } @@ -2002,17 +2002,17 @@ type ActionPlan_UndelegateClaim struct { UndelegateClaim *v1alpha16.UndelegateClaimPlan `protobuf:"bytes,42,opt,name=undelegate_claim,json=undelegateClaim,proto3,oneof"` } -type ActionPlan_DaoSpend struct { - // DAO - DaoSpend *v1alpha18.DaoSpend `protobuf:"bytes,50,opt,name=dao_spend,json=daoSpend,proto3,oneof"` +type ActionPlan_CommunityPoolSpend struct { + // Community Pool + CommunityPoolSpend *v1alpha18.CommunityPoolSpend `protobuf:"bytes,50,opt,name=community_pool_spend,json=communityPoolSpend,proto3,oneof"` } -type ActionPlan_DaoOutput struct { - DaoOutput *v1alpha18.DaoOutput `protobuf:"bytes,51,opt,name=dao_output,json=daoOutput,proto3,oneof"` +type ActionPlan_CommunityPoolOutput struct { + CommunityPoolOutput *v1alpha18.CommunityPoolOutput `protobuf:"bytes,51,opt,name=community_pool_output,json=communityPoolOutput,proto3,oneof"` } -type ActionPlan_DaoDeposit struct { - DaoDeposit *v1alpha18.DaoDeposit `protobuf:"bytes,52,opt,name=dao_deposit,json=daoDeposit,proto3,oneof"` +type ActionPlan_CommunityPoolDeposit struct { + CommunityPoolDeposit *v1alpha18.CommunityPoolDeposit `protobuf:"bytes,52,opt,name=community_pool_deposit,json=communityPoolDeposit,proto3,oneof"` } func (*ActionPlan_Spend) isActionPlan_Action() {} @@ -2053,11 +2053,11 @@ func (*ActionPlan_Undelegate) isActionPlan_Action() {} func (*ActionPlan_UndelegateClaim) isActionPlan_Action() {} -func (*ActionPlan_DaoSpend) isActionPlan_Action() {} +func (*ActionPlan_CommunityPoolSpend) isActionPlan_Action() {} -func (*ActionPlan_DaoOutput) isActionPlan_Action() {} +func (*ActionPlan_CommunityPoolOutput) isActionPlan_Action() {} -func (*ActionPlan_DaoDeposit) isActionPlan_Action() {} +func (*ActionPlan_CommunityPoolDeposit) isActionPlan_Action() {} // Describes a plan for forming a `Clue`. type CluePlan struct { @@ -2637,7 +2637,7 @@ var file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDesc = []byte{ 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x66, 0x6d, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x66, 0x6d, 0x64, 0x43, - 0x6c, 0x75, 0x65, 0x73, 0x22, 0xbd, 0x10, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x6c, 0x75, 0x65, 0x73, 0x22, 0x9a, 0x11, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, @@ -2745,538 +2745,555 @@ var file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDesc = []byte{ 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x54, 0x0a, 0x09, 0x64, 0x61, - 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6f, 0x53, - 0x70, 0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x08, 0x64, 0x61, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x12, 0x57, 0x0a, 0x0a, 0x64, 0x61, 0x6f, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x33, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x09, - 0x64, 0x61, 0x6f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x5a, 0x0a, 0x0b, 0x64, 0x61, 0x6f, - 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x73, 0x0a, 0x14, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x70, 0x65, + 0x6e, 0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x12, 0x63, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, + 0x76, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, - 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6f, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x61, 0x6f, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x63, 0x0a, 0x10, 0x69, 0x63, 0x73, 0x32, 0x30, 0x5f, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x63, 0x73, 0x32, 0x30, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x63, 0x73, 0x32, 0x30, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x97, 0x04, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, - 0x5f, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x4b, 0x65, 0x79, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x73, - 0x12, 0x60, 0x0a, 0x10, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x74, - 0x65, 0x52, 0x0f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x73, 0x12, 0x57, 0x0a, 0x0c, 0x61, 0x64, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x74, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, - 0x6e, 0x74, 0x2e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x0b, - 0x61, 0x64, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0d, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0c, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x12, - 0x4d, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x52, - 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xb3, - 0x01, 0x0a, 0x18, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x57, 0x69, 0x74, - 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xac, 0x01, 0x0a, 0x11, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x6e, 0x75, - 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x09, - 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x04, 0x6e, 0x6f, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x48, 0x00, 0x52, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x79, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, - 0x6f, 0x74, 0x65, 0x22, 0x84, 0x02, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x54, 0x0a, 0x09, 0x62, 0x6f, 0x64, 0x79, 0x5f, - 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x56, - 0x69, 0x65, 0x77, 0x52, 0x08, 0x62, 0x6f, 0x64, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, 0x59, 0x0a, - 0x0b, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x72, 0x64, - 0x73, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x62, 0x69, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x06, 0x61, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, - 0x6f, 0x74, 0x52, 0x06, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x22, 0xff, 0x02, 0x0a, 0x13, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x56, 0x69, - 0x65, 0x77, 0x12, 0x51, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x69, 0x65, - 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x70, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x64, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x0d, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x49, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, + 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x48, 0x00, 0x52, 0x14, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x12, 0x63, 0x0a, 0x10, 0x69, 0x63, 0x73, 0x32, 0x30, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x63, 0x73, 0x32, 0x30, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x63, 0x73, 0x32, 0x30, 0x57, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x97, 0x04, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x5f, 0x0a, 0x0c, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4b, + 0x65, 0x79, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x60, 0x0a, + 0x10, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x75, 0x6c, + 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x0f, + 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, + 0x57, 0x0a, 0x0c, 0x61, 0x64, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, + 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x0b, 0x61, 0x64, 0x76, + 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x12, 0x4d, 0x0a, 0x0e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x56, 0x69, - 0x65, 0x77, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x56, 0x69, 0x65, 0x77, 0x22, 0xda, 0x10, 0x0a, - 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x51, 0x0a, 0x05, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x65, 0x6e, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x52, 0x0d, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xb3, 0x01, 0x0a, 0x18, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, + 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4b, + 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0xac, 0x01, 0x0a, 0x11, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x57, + 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, - 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, - 0x64, 0x56, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x54, - 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, - 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x56, 0x69, - 0x65, 0x77, 0x48, 0x00, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x12, 0x54, 0x0a, 0x0a, 0x73, 0x77, - 0x61, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x56, - 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, 0x09, 0x73, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x12, 0x70, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, + 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x09, 0x6e, 0x75, 0x6c, + 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, + 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, + 0x22, 0x84, 0x02, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x69, 0x65, 0x77, 0x12, 0x54, 0x0a, 0x09, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x76, 0x69, 0x65, + 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x56, 0x69, 0x65, 0x77, + 0x52, 0x08, 0x62, 0x6f, 0x64, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, 0x59, 0x0a, 0x0b, 0x62, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x38, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x6f, 0x2e, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x72, 0x64, 0x73, 0x61, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x62, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x53, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x06, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x52, + 0x06, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x22, 0xff, 0x02, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, + 0x51, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, + 0x77, 0x73, 0x12, 0x70, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x15, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x0d, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x49, + 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x56, 0x69, 0x65, 0x77, 0x52, + 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x56, 0x69, 0x65, 0x77, 0x22, 0xb7, 0x11, 0x0a, 0x0a, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x51, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x6e, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x2e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x56, 0x69, + 0x65, 0x77, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x54, 0x0a, 0x06, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x56, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x12, 0x44, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x56, 0x69, 0x65, 0x77, 0x48, + 0x00, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x12, 0x54, 0x0a, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x5f, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x56, 0x69, 0x65, 0x77, + 0x48, 0x00, 0x52, 0x09, 0x73, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x70, 0x0a, + 0x14, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x5a, 0x0a, 0x10, 0x69, 0x62, 0x63, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x49, 0x62, 0x63, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x62, 0x63, + 0x52, 0x65, 0x6c, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x0f, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, + 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x12, 0x6c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x48, 0x00, 0x52, + 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x12, 0x63, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, + 0x6f, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x10, 0x69, 0x62, 0x63, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x49, 0x62, 0x63, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x00, 0x52, 0x0e, - 0x69, 0x62, 0x63, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, - 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x75, - 0x62, 0x6d, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x6c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, - 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x12, 0x63, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x67, 0x0a, 0x0e, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, - 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x56, 0x69, 0x65, - 0x77, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, - 0x74, 0x65, 0x12, 0x79, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x64, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x48, 0x00, 0x52, 0x14, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x59, 0x0a, - 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x1e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, - 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x5c, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x20, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x72, 0x56, 0x6f, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x67, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x48, 0x00, + 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x12, + 0x79, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x48, 0x00, 0x52, 0x14, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x59, 0x0a, 0x0d, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x6f, 0x0a, - 0x15, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x48, 0x00, 0x52, 0x13, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x4e, - 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x54, - 0x0a, 0x0a, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x2a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x09, 0x64, 0x61, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x6e, - 0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x00, - 0x52, 0x08, 0x64, 0x61, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x57, 0x0a, 0x0a, 0x64, 0x61, - 0x6f, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, + 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x5c, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, + 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, + 0x6f, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, - 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6f, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x09, 0x64, 0x61, 0x6f, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x12, 0x5a, 0x0a, 0x0b, 0x64, 0x61, 0x6f, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, - 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6f, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x61, 0x6f, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, - 0x64, 0x0a, 0x10, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x6f, 0x0a, 0x15, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x63, 0x0a, 0x10, 0x69, 0x63, 0x73, 0x32, 0x30, 0x5f, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x63, 0x73, 0x32, 0x30, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x63, 0x73, 0x32, 0x30, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0xae, 0x02, 0x0a, 0x11, 0x41, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x4e, 0x0a, 0x0b, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x68, 0x61, 0x73, 0x68, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x48, - 0x61, 0x73, 0x68, 0x52, 0x0a, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x5b, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x73, 0x18, 0x02, + 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, + 0x6c, 0x61, 0x69, 0x6d, 0x48, 0x00, 0x52, 0x13, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x4e, 0x0a, 0x08, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x48, + 0x00, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x0a, 0x75, + 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x12, 0x73, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, + 0x48, 0x00, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x76, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, + 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, + 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x79, + 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, + 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x48, 0x00, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, + 0x6f, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x64, 0x0a, 0x10, 0x75, 0x6e, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x2b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, + 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x48, 0x00, 0x52, 0x0f, + 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, + 0x63, 0x0a, 0x10, 0x69, 0x63, 0x73, 0x32, 0x30, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x61, 0x6c, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x49, 0x63, 0x73, 0x32, 0x30, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, + 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x63, 0x73, 0x32, 0x30, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x61, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, + 0x69, 0x65, 0x77, 0x22, 0xae, 0x02, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a, 0x0b, 0x65, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x65, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x68, 0x61, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x48, 0x61, 0x73, 0x68, 0x52, 0x0a, 0x65, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x5b, 0x0a, 0x0b, 0x73, 0x70, 0x65, + 0x6e, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, + 0x2e, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x72, 0x64, 0x73, 0x61, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, + 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, + 0x64, 0x41, 0x75, 0x74, 0x68, 0x73, 0x12, 0x6c, 0x0a, 0x14, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x72, 0x64, 0x73, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x73, 0x12, 0x6c, 0x0a, 0x14, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x61, - 0x75, 0x74, 0x68, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x64, 0x65, 0x63, - 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x72, 0x64, 0x73, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x56, 0x6f, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x73, 0x22, 0xbb, 0x01, 0x0a, 0x0b, 0x57, - 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x06, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, - 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x06, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x12, 0x6a, 0x0a, 0x17, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, - 0x74, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, + 0x52, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x41, + 0x75, 0x74, 0x68, 0x73, 0x22, 0xbb, 0x01, 0x0a, 0x0b, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x06, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x06, + 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x12, 0x6a, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x74, 0x63, 0x74, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x15, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x52, 0x15, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x22, 0xed, 0x02, 0x0a, 0x0f, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x48, 0x0a, 0x07, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x07, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x70, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5c, 0x0a, 0x0e, 0x64, 0x65, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x66, 0x73, 0x22, 0xed, 0x02, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x48, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x70, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x39, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x0d, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, - 0x61, 0x6e, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x22, 0x60, 0x0a, 0x11, 0x44, 0x65, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x4b, 0x0a, - 0x0a, 0x63, 0x6c, 0x75, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, - 0x09, 0x63, 0x6c, 0x75, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x22, 0xd5, 0x10, 0x0a, 0x0a, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x51, 0x0a, 0x05, 0x73, 0x70, 0x65, - 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, - 0x6e, 0x74, 0x2e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, - 0x6c, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x54, 0x0a, 0x06, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, - 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x6e, - 0x48, 0x00, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x12, 0x54, 0x0a, 0x0a, 0x73, 0x77, 0x61, 0x70, - 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6c, 0x61, - 0x6e, 0x48, 0x00, 0x52, 0x09, 0x73, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x70, - 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x5a, 0x0a, 0x10, 0x69, 0x62, 0x63, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x15, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x5c, 0x0a, 0x0e, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6c, 0x61, + 0x6e, 0x52, 0x0d, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x40, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x6d, 0x65, + 0x6d, 0x6f, 0x22, 0x60, 0x0a, 0x11, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x4b, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x65, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x43, 0x6c, 0x75, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x65, 0x50, + 0x6c, 0x61, 0x6e, 0x73, 0x22, 0xb2, 0x11, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6c, 0x61, 0x6e, 0x12, 0x51, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x68, 0x69, + 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x6e, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x54, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x2e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x6c, + 0x61, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x44, 0x0a, 0x04, + 0x73, 0x77, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x49, 0x62, 0x63, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x62, - 0x63, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x0f, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, - 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x75, - 0x62, 0x6d, 0x69, 0x74, 0x12, 0x6c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x73, 0x77, + 0x61, 0x70, 0x12, 0x54, 0x0a, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, + 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x73, + 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x70, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x10, 0x69, 0x62, + 0x63, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x69, + 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x62, 0x63, 0x52, + 0x65, 0x6c, 0x61, 0x79, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x62, 0x63, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x48, 0x00, - 0x52, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x12, 0x63, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x76, 0x6f, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0e, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x6c, + 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x63, 0x0a, 0x0e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, + 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, + 0x48, 0x00, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, + 0x65, 0x12, 0x67, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, + 0x6f, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x56, 0x6f, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x79, 0x0a, 0x16, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x63, + 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x67, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, - 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x48, - 0x00, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, - 0x12, 0x79, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, - 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x43, 0x6c, - 0x61, 0x69, 0x6d, 0x48, 0x00, 0x52, 0x14, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x57, 0x0a, 0x0a, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x63, 0x73, 0x32, 0x30, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x61, 0x6c, 0x12, 0x59, 0x0a, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x48, 0x00, 0x52, + 0x14, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x57, 0x0a, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x61, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x49, 0x63, 0x73, 0x32, 0x30, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, + 0x48, 0x00, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x59, + 0x0a, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, + 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, + 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x5c, 0x0a, 0x0e, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x6c, 0x61, 0x6e, 0x48, 0x00, + 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x12, 0x73, 0x0a, 0x15, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x22, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6c, 0x61, 0x6e, + 0x48, 0x00, 0x52, 0x13, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x4e, 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x0a, 0x75, 0x6e, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x48, - 0x00, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x12, - 0x5c, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x6f, 0x73, - 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x48, + 0x00, 0x52, 0x0a, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x68, 0x0a, + 0x10, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, + 0x6d, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x69, 0x0a, - 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, - 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x50, 0x6c, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x73, 0x0a, 0x15, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x4e, 0x0a, - 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, - 0x0a, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x12, 0x68, 0x0a, 0x10, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x6e, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x54, 0x0a, - 0x09, 0x64, 0x61, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, - 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, - 0x61, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x08, 0x64, 0x61, 0x6f, 0x53, 0x70, - 0x65, 0x6e, 0x64, 0x12, 0x57, 0x0a, 0x0a, 0x64, 0x61, 0x6f, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, - 0x00, 0x52, 0x09, 0x64, 0x61, 0x6f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x5a, 0x0a, 0x0b, - 0x64, 0x61, 0x6f, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, - 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x44, 0x61, 0x6f, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x61, - 0x6f, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x08, 0x43, 0x6c, 0x75, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x12, - 0x3e, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x72, 0x73, 0x65, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, - 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x73, 0x22, 0x6d, 0x0a, 0x08, - 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x4f, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x69, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x09, - 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x26, 0x0a, 0x0e, 0x4d, - 0x65, 0x6d, 0x6f, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x0d, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x69, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x12, 0x4b, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, - 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x78, 0x0a, 0x11, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, - 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x4f, 0x0a, 0x0e, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0d, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, - 0xcb, 0x03, 0x0a, 0x08, 0x4d, 0x65, 0x6d, 0x6f, 0x56, 0x69, 0x65, 0x77, 0x12, 0x50, 0x0a, 0x07, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x56, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x4d, - 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x4f, 0x70, 0x61, - 0x71, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x1a, 0xb2, 0x01, - 0x0a, 0x07, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x52, 0x0a, 0x0a, 0x63, 0x69, 0x70, - 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, - 0x74, 0x52, 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x12, 0x53, 0x0a, - 0x09, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x1a, 0x5c, 0x0a, 0x06, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x52, 0x0a, 0x0a, - 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, - 0x74, 0x65, 0x78, 0x74, 0x52, 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, - 0x42, 0x0b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x42, 0xcc, 0x02, - 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x65, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x54, 0xaa, 0x02, 0x22, 0x50, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, - 0x22, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2e, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, - 0x6f, 0x72, 0x65, 0x5c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5c, - 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x25, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, - 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, + 0x50, 0x6c, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x73, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, + 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, + 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x76, 0x0a, 0x15, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, + 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x12, 0x79, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x34, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x67, + 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, + 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x48, 0x00, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x42, + 0x08, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x08, 0x43, 0x6c, + 0x75, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, + 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, + 0x69, 0x74, 0x73, 0x22, 0x6d, 0x0a, 0x08, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x6e, 0x12, + 0x4f, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x69, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x22, 0x26, 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x0d, 0x4d, 0x65, + 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x4b, 0x0a, 0x0e, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x78, 0x0a, 0x11, + 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, + 0x77, 0x12, 0x4f, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, + 0x69, 0x65, 0x77, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0xcb, 0x03, 0x0a, 0x08, 0x4d, 0x65, 0x6d, 0x6f, 0x56, + 0x69, 0x65, 0x77, 0x12, 0x50, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x56, 0x69, + 0x65, 0x77, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x56, + 0x69, 0x65, 0x77, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, + 0x61, 0x71, 0x75, 0x65, 0x1a, 0xb2, 0x01, 0x0a, 0x07, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x12, 0x52, 0x0a, 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x69, + 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x74, 0x12, 0x53, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, + 0x6f, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x52, 0x09, + 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x1a, 0x5c, 0x0a, 0x06, 0x4f, 0x70, 0x61, + 0x71, 0x75, 0x65, 0x12, 0x52, 0x0a, 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, + 0x6f, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0a, 0x63, 0x69, 0x70, + 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, + 0x76, 0x69, 0x65, 0x77, 0x42, 0xcc, 0x02, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, + 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x65, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, + 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, + 0x65, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x54, + 0xaa, 0x02, 0x22, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x22, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2e, 0x50, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x25, 0x50, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3340,9 +3357,9 @@ var file_penumbra_core_transaction_v1alpha1_transaction_proto_goTypes = []interf (*v1alpha16.Delegate)(nil), // 44: penumbra.core.component.stake.v1alpha1.Delegate (*v1alpha16.Undelegate)(nil), // 45: penumbra.core.component.stake.v1alpha1.Undelegate (*v1alpha16.UndelegateClaim)(nil), // 46: penumbra.core.component.stake.v1alpha1.UndelegateClaim - (*v1alpha18.DaoSpend)(nil), // 47: penumbra.core.component.governance.v1alpha1.DaoSpend - (*v1alpha18.DaoOutput)(nil), // 48: penumbra.core.component.governance.v1alpha1.DaoOutput - (*v1alpha18.DaoDeposit)(nil), // 49: penumbra.core.component.governance.v1alpha1.DaoDeposit + (*v1alpha18.CommunityPoolSpend)(nil), // 47: penumbra.core.component.governance.v1alpha1.CommunityPoolSpend + (*v1alpha18.CommunityPoolOutput)(nil), // 48: penumbra.core.component.governance.v1alpha1.CommunityPoolOutput + (*v1alpha18.CommunityPoolDeposit)(nil), // 49: penumbra.core.component.governance.v1alpha1.CommunityPoolDeposit (*v1alpha17.Ics20Withdrawal)(nil), // 50: penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal (*v1alpha14.Note)(nil), // 51: penumbra.core.component.shielded_pool.v1alpha1.Note (*v1alpha19.AddressView)(nil), // 52: penumbra.core.keys.v1alpha1.AddressView @@ -3396,9 +3413,9 @@ var file_penumbra_core_transaction_v1alpha1_transaction_proto_depIdxs = []int32{ 44, // 24: penumbra.core.transaction.v1alpha1.Action.delegate:type_name -> penumbra.core.component.stake.v1alpha1.Delegate 45, // 25: penumbra.core.transaction.v1alpha1.Action.undelegate:type_name -> penumbra.core.component.stake.v1alpha1.Undelegate 46, // 26: penumbra.core.transaction.v1alpha1.Action.undelegate_claim:type_name -> penumbra.core.component.stake.v1alpha1.UndelegateClaim - 47, // 27: penumbra.core.transaction.v1alpha1.Action.dao_spend:type_name -> penumbra.core.component.governance.v1alpha1.DaoSpend - 48, // 28: penumbra.core.transaction.v1alpha1.Action.dao_output:type_name -> penumbra.core.component.governance.v1alpha1.DaoOutput - 49, // 29: penumbra.core.transaction.v1alpha1.Action.dao_deposit:type_name -> penumbra.core.component.governance.v1alpha1.DaoDeposit + 47, // 27: penumbra.core.transaction.v1alpha1.Action.community_pool_spend:type_name -> penumbra.core.component.governance.v1alpha1.CommunityPoolSpend + 48, // 28: penumbra.core.transaction.v1alpha1.Action.community_pool_output:type_name -> penumbra.core.component.governance.v1alpha1.CommunityPoolOutput + 49, // 29: penumbra.core.transaction.v1alpha1.Action.community_pool_deposit:type_name -> penumbra.core.component.governance.v1alpha1.CommunityPoolDeposit 50, // 30: penumbra.core.transaction.v1alpha1.Action.ics20_withdrawal:type_name -> penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal 7, // 31: penumbra.core.transaction.v1alpha1.TransactionPerspective.payload_keys:type_name -> penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment 8, // 32: penumbra.core.transaction.v1alpha1.TransactionPerspective.spend_nullifiers:type_name -> penumbra.core.transaction.v1alpha1.NullifierWithNote @@ -3434,9 +3451,9 @@ var file_penumbra_core_transaction_v1alpha1_transaction_proto_depIdxs = []int32{ 43, // 62: penumbra.core.transaction.v1alpha1.ActionView.position_reward_claim:type_name -> penumbra.core.component.dex.v1alpha1.PositionRewardClaim 44, // 63: penumbra.core.transaction.v1alpha1.ActionView.delegate:type_name -> penumbra.core.component.stake.v1alpha1.Delegate 45, // 64: penumbra.core.transaction.v1alpha1.ActionView.undelegate:type_name -> penumbra.core.component.stake.v1alpha1.Undelegate - 47, // 65: penumbra.core.transaction.v1alpha1.ActionView.dao_spend:type_name -> penumbra.core.component.governance.v1alpha1.DaoSpend - 48, // 66: penumbra.core.transaction.v1alpha1.ActionView.dao_output:type_name -> penumbra.core.component.governance.v1alpha1.DaoOutput - 49, // 67: penumbra.core.transaction.v1alpha1.ActionView.dao_deposit:type_name -> penumbra.core.component.governance.v1alpha1.DaoDeposit + 47, // 65: penumbra.core.transaction.v1alpha1.ActionView.community_pool_spend:type_name -> penumbra.core.component.governance.v1alpha1.CommunityPoolSpend + 48, // 66: penumbra.core.transaction.v1alpha1.ActionView.community_pool_output:type_name -> penumbra.core.component.governance.v1alpha1.CommunityPoolOutput + 49, // 67: penumbra.core.transaction.v1alpha1.ActionView.community_pool_deposit:type_name -> penumbra.core.component.governance.v1alpha1.CommunityPoolDeposit 46, // 68: penumbra.core.transaction.v1alpha1.ActionView.undelegate_claim:type_name -> penumbra.core.component.stake.v1alpha1.UndelegateClaim 50, // 69: penumbra.core.transaction.v1alpha1.ActionView.ics20_withdrawal:type_name -> penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal 62, // 70: penumbra.core.transaction.v1alpha1.AuthorizationData.effect_hash:type_name -> penumbra.core.effecthash.v1alpha1.EffectHash @@ -3468,9 +3485,9 @@ var file_penumbra_core_transaction_v1alpha1_transaction_proto_depIdxs = []int32{ 44, // 96: penumbra.core.transaction.v1alpha1.ActionPlan.delegate:type_name -> penumbra.core.component.stake.v1alpha1.Delegate 45, // 97: penumbra.core.transaction.v1alpha1.ActionPlan.undelegate:type_name -> penumbra.core.component.stake.v1alpha1.Undelegate 72, // 98: penumbra.core.transaction.v1alpha1.ActionPlan.undelegate_claim:type_name -> penumbra.core.component.stake.v1alpha1.UndelegateClaimPlan - 47, // 99: penumbra.core.transaction.v1alpha1.ActionPlan.dao_spend:type_name -> penumbra.core.component.governance.v1alpha1.DaoSpend - 48, // 100: penumbra.core.transaction.v1alpha1.ActionPlan.dao_output:type_name -> penumbra.core.component.governance.v1alpha1.DaoOutput - 49, // 101: penumbra.core.transaction.v1alpha1.ActionPlan.dao_deposit:type_name -> penumbra.core.component.governance.v1alpha1.DaoDeposit + 47, // 99: penumbra.core.transaction.v1alpha1.ActionPlan.community_pool_spend:type_name -> penumbra.core.component.governance.v1alpha1.CommunityPoolSpend + 48, // 100: penumbra.core.transaction.v1alpha1.ActionPlan.community_pool_output:type_name -> penumbra.core.component.governance.v1alpha1.CommunityPoolOutput + 49, // 101: penumbra.core.transaction.v1alpha1.ActionPlan.community_pool_deposit:type_name -> penumbra.core.component.governance.v1alpha1.CommunityPoolDeposit 73, // 102: penumbra.core.transaction.v1alpha1.CluePlan.address:type_name -> penumbra.core.keys.v1alpha1.Address 20, // 103: penumbra.core.transaction.v1alpha1.MemoPlan.plaintext:type_name -> penumbra.core.transaction.v1alpha1.MemoPlaintext 73, // 104: penumbra.core.transaction.v1alpha1.MemoPlaintext.return_address:type_name -> penumbra.core.keys.v1alpha1.Address @@ -3813,9 +3830,9 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { (*Action_Delegate)(nil), (*Action_Undelegate)(nil), (*Action_UndelegateClaim)(nil), - (*Action_DaoSpend)(nil), - (*Action_DaoOutput)(nil), - (*Action_DaoDeposit)(nil), + (*Action_CommunityPoolSpend)(nil), + (*Action_CommunityPoolOutput)(nil), + (*Action_CommunityPoolDeposit)(nil), (*Action_Ics20Withdrawal)(nil), } file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[11].OneofWrappers = []interface{}{ @@ -3836,9 +3853,9 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { (*ActionView_PositionRewardClaim)(nil), (*ActionView_Delegate)(nil), (*ActionView_Undelegate)(nil), - (*ActionView_DaoSpend)(nil), - (*ActionView_DaoOutput)(nil), - (*ActionView_DaoDeposit)(nil), + (*ActionView_CommunityPoolSpend)(nil), + (*ActionView_CommunityPoolOutput)(nil), + (*ActionView_CommunityPoolDeposit)(nil), (*ActionView_UndelegateClaim)(nil), (*ActionView_Ics20Withdrawal)(nil), } @@ -3862,9 +3879,9 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { (*ActionPlan_Delegate)(nil), (*ActionPlan_Undelegate)(nil), (*ActionPlan_UndelegateClaim)(nil), - (*ActionPlan_DaoSpend)(nil), - (*ActionPlan_DaoOutput)(nil), - (*ActionPlan_DaoDeposit)(nil), + (*ActionPlan_CommunityPoolSpend)(nil), + (*ActionPlan_CommunityPoolOutput)(nil), + (*ActionPlan_CommunityPoolDeposit)(nil), } file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[22].OneofWrappers = []interface{}{ (*MemoView_Visible_)(nil), diff --git a/proto/penumbra/penumbra/core/app/v1alpha1/app.proto b/proto/penumbra/penumbra/core/app/v1alpha1/app.proto index f85c3ff19f..dc58eee45a 100644 --- a/proto/penumbra/penumbra/core/app/v1alpha1/app.proto +++ b/proto/penumbra/penumbra/core/app/v1alpha1/app.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package penumbra.core.app.v1alpha1; import "penumbra/core/component/chain/v1alpha1/chain.proto"; -import "penumbra/core/component/dao/v1alpha1/dao.proto"; +import "penumbra/core/component/community_pool/v1alpha1/community_pool.proto"; import "penumbra/core/component/distributions/v1alpha1/distributions.proto"; import "penumbra/core/component/fee/v1alpha1/fee.proto"; import "penumbra/core/component/governance/v1alpha1/governance.proto"; @@ -38,8 +38,8 @@ message TransactionsByHeightResponse { message AppParameters { // Chain module parameters. core.component.chain.v1alpha1.ChainParameters chain_params = 1; - // DAO module parameters. - core.component.dao.v1alpha1.DaoParameters dao_params = 2; + // Community Pool module parameters. + core.component.community_pool.v1alpha1.CommunityPoolParameters community_pool_params = 2; // Governance module parameters. core.component.governance.v1alpha1.GovernanceParameters governance_params = 3; // IBC module parameters. @@ -80,8 +80,8 @@ message GenesisContent { core.component.ibc.v1alpha1.GenesisContent ibc_content = 4; // Chain module genesis state. core.component.chain.v1alpha1.GenesisContent chain_content = 5; - // DAO module genesis state. - core.component.dao.v1alpha1.GenesisContent dao_content = 6; + // Community Pool module genesis state. + core.component.community_pool.v1alpha1.GenesisContent community_pool_content = 6; // Fee module genesis state. core.component.fee.v1alpha1.GenesisContent fee_content = 7; // Distributions module genesis state. diff --git a/proto/penumbra/penumbra/core/component/community_pool/v1alpha1/community_pool.proto b/proto/penumbra/penumbra/core/component/community_pool/v1alpha1/community_pool.proto new file mode 100644 index 0000000000..19c39b7a8c --- /dev/null +++ b/proto/penumbra/penumbra/core/component/community_pool/v1alpha1/community_pool.proto @@ -0,0 +1,35 @@ +syntax = "proto3"; +package penumbra.core.component.community_pool.v1alpha1; + +import "penumbra/core/asset/v1alpha1/asset.proto"; + +// CommunityPool parameter data. +message CommunityPoolParameters { + // Whether Community Pool spend proposals are enabled. + bool community_pool_spend_proposals_enabled = 1; +} + +// CommunityPool genesis state. +message GenesisContent { + // CommunityPool parameters. + CommunityPoolParameters community_pool_params = 1; +} + +// Query operations for the community_pool component. +service QueryService { + rpc CommunityPoolAssetBalances(CommunityPoolAssetBalancesRequest) returns (stream CommunityPoolAssetBalancesResponse); +} + +// Requests the list of all asset balances associated with the Community Pool. +message CommunityPoolAssetBalancesRequest { + // The expected chain id (empty string if no expectation). + string chain_id = 1; + // (Optional): The specific asset balances to retrieve, if excluded all will be returned. + repeated asset.v1alpha1.AssetId asset_ids = 2; +} + +// The Community Pool's balance of a single asset. +message CommunityPoolAssetBalancesResponse { + // The balance for a single asset. + core.asset.v1alpha1.Value balance = 1; +} diff --git a/proto/penumbra/penumbra/core/component/dao/v1alpha1/dao.proto b/proto/penumbra/penumbra/core/component/dao/v1alpha1/dao.proto deleted file mode 100644 index 39f3d3d953..0000000000 --- a/proto/penumbra/penumbra/core/component/dao/v1alpha1/dao.proto +++ /dev/null @@ -1,35 +0,0 @@ -syntax = "proto3"; -package penumbra.core.component.dao.v1alpha1; - -import "penumbra/core/asset/v1alpha1/asset.proto"; - -// Dao parameter data. -message DaoParameters { - // Whether DAO spend proposals are enabled. - bool dao_spend_proposals_enabled = 1; -} - -// Dao genesis state. -message GenesisContent { - // Dao parameters. - DaoParameters dao_params = 1; -} - -// Query operations for the dao component. -service QueryService { - rpc DaoAssetBalances(DaoAssetBalancesRequest) returns (stream DaoAssetBalancesResponse); -} - -// Requests the list of all asset balances associated with the DAO. -message DaoAssetBalancesRequest { - // The expected chain id (empty string if no expectation). - string chain_id = 1; - // (Optional): The specific asset balances to retrieve, if excluded all will be returned. - repeated asset.v1alpha1.AssetId asset_ids = 2; -} - -// The DAO's balance of a single asset. -message DaoAssetBalancesResponse { - // The balance for a single asset. - core.asset.v1alpha1.Value balance = 1; -} diff --git a/proto/penumbra/penumbra/core/component/governance/v1alpha1/governance.proto b/proto/penumbra/penumbra/core/component/governance/v1alpha1/governance.proto index 2f2b3c35d1..790c69e3d7 100644 --- a/proto/penumbra/penumbra/core/component/governance/v1alpha1/governance.proto +++ b/proto/penumbra/penumbra/core/component/governance/v1alpha1/governance.proto @@ -4,7 +4,7 @@ package penumbra.core.component.governance.v1alpha1; import "google/protobuf/any.proto"; import "penumbra/core/asset/v1alpha1/asset.proto"; import "penumbra/core/component/chain/v1alpha1/chain.proto"; -import "penumbra/core/component/dao/v1alpha1/dao.proto"; +import "penumbra/core/component/community_pool/v1alpha1/community_pool.proto"; import "penumbra/core/component/distributions/v1alpha1/distributions.proto"; import "penumbra/core/component/fee/v1alpha1/fee.proto"; import "penumbra/core/component/ibc/v1alpha1/ibc.proto"; @@ -128,18 +128,18 @@ message DelegatorVotePlan { bytes proof_blinding_s = 9; } -message DaoDeposit { - // The value to deposit into the DAO. +message CommunityPoolDeposit { + // The value to deposit into the Community Pool. asset.v1alpha1.Value value = 1; } -message DaoSpend { - // The value to spend from the DAO. +message CommunityPoolSpend { + // The value to spend from the Community Pool. asset.v1alpha1.Value value = 1; } -message DaoOutput { - // The value to output from the DAO. +message CommunityPoolOutput { + // The value to output from the Community Pool. asset.v1alpha1.Value value = 1; // The address to send the output to. keys.v1alpha1.Address address = 2; @@ -244,7 +244,7 @@ message Proposal { Signaling signaling = 5; Emergency emergency = 6; ParameterChange parameter_change = 7; - DaoSpend dao_spend = 8; + CommunityPoolSpend community_pool_spend = 8; UpgradePlan upgrade_plan = 9; // A signaling proposal is meant to register a vote on-chain, but does not have an automatic @@ -280,13 +280,13 @@ message Proposal { ChangedAppParameters new_parameters = 2; } - // A DAO spend proposal describes zero or more transactions to execute on behalf of the DAO, with + // 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. - message DaoSpend { + message CommunityPoolSpend { // The transaction plan to be executed at the time the proposal is passed. This must be a - // transaction plan which can be executed by the DAO, which means it can't require any witness - // data or authorization signatures, but it may use the `DaoSpend` action. + // transaction plan which can be executed by the Community Pool, which means it can't require any witness + // data or authorization signatures, but it may use the `CommunityPoolSpend` action. google.protobuf.Any transaction_plan = 2; } @@ -425,8 +425,8 @@ message GenesisContent { message ChangedAppParameters { // Chain module parameters. core.component.chain.v1alpha1.ChainParameters chain_params = 1; - // DAO module parameters. - core.component.dao.v1alpha1.DaoParameters dao_params = 2; + // Community Pool module parameters. + core.component.community_pool.v1alpha1.CommunityPoolParameters community_pool_params = 2; // Governance module parameters. core.component.governance.v1alpha1.GovernanceParameters governance_params = 3; // IBC module parameters. diff --git a/proto/penumbra/penumbra/core/component/sct/v1alpha1/sct.proto b/proto/penumbra/penumbra/core/component/sct/v1alpha1/sct.proto index 32f5ed9202..42b1376798 100644 --- a/proto/penumbra/penumbra/core/component/sct/v1alpha1/sct.proto +++ b/proto/penumbra/penumbra/core/component/sct/v1alpha1/sct.proto @@ -27,8 +27,8 @@ message CommitmentSource { // The epoch index the rewards were issued in. uint64 epoch_index = 1; } - // The commitment was created through a `DaoOutput` in a governance-initated transaction. - message DaoOutput { } + // The commitment was created through a `CommunityPoolOutput` in a governance-initated transaction. + message CommunityPoolOutput { } // The commitment was created by an inbound ICS20 transfer. message Ics20Transfer { // The sequence number of the packet that triggered the transfer @@ -42,7 +42,7 @@ message CommitmentSource { Transaction transaction = 1; Ics20Transfer ics_20_transfer = 2; FundingStreamReward funding_stream_reward = 20; - DaoOutput dao_output = 30; + CommunityPoolOutput community_pool_output = 30; Genesis genesis = 40; } } diff --git a/proto/penumbra/penumbra/core/component/stake/v1alpha1/stake.proto b/proto/penumbra/penumbra/core/component/stake/v1alpha1/stake.proto index 29a1410c58..6e0b57f594 100644 --- a/proto/penumbra/penumbra/core/component/stake/v1alpha1/stake.proto +++ b/proto/penumbra/penumbra/core/component/stake/v1alpha1/stake.proto @@ -51,7 +51,7 @@ message FundingStream { uint32 rate_bps = 2; } - message ToDao { + message ToCommunityPool { // The portion of the staking reward for the entire delegation pool // allocated to this funding stream, specified in basis points. uint32 rate_bps = 2; @@ -60,7 +60,7 @@ message FundingStream { // The recipient of the funding stream. oneof recipient { ToAddress to_address = 1; - ToDao to_dao = 2; + ToCommunityPool to_community_pool = 2; } } diff --git a/proto/penumbra/penumbra/core/transaction/v1alpha1/transaction.proto b/proto/penumbra/penumbra/core/transaction/v1alpha1/transaction.proto index b77170adbb..fe455d4e27 100644 --- a/proto/penumbra/penumbra/core/transaction/v1alpha1/transaction.proto +++ b/proto/penumbra/penumbra/core/transaction/v1alpha1/transaction.proto @@ -95,10 +95,10 @@ message Action { component.stake.v1alpha1.Undelegate undelegate = 41; component.stake.v1alpha1.UndelegateClaim undelegate_claim = 42; - // DAO - component.governance.v1alpha1.DaoSpend dao_spend = 50; - component.governance.v1alpha1.DaoOutput dao_output = 51; - component.governance.v1alpha1.DaoDeposit dao_deposit = 52; + // Community Pool + component.governance.v1alpha1.CommunityPoolSpend community_pool_spend = 50; + component.governance.v1alpha1.CommunityPoolOutput community_pool_output = 51; + component.governance.v1alpha1.CommunityPoolDeposit community_pool_deposit = 52; component.ibc.v1alpha1.Ics20Withdrawal ics20_withdrawal = 200; } @@ -181,10 +181,10 @@ message ActionView { component.stake.v1alpha1.Delegate delegate = 41; component.stake.v1alpha1.Undelegate undelegate = 42; - // DAO - component.governance.v1alpha1.DaoSpend dao_spend = 50; - component.governance.v1alpha1.DaoOutput dao_output = 51; - component.governance.v1alpha1.DaoDeposit dao_deposit = 52; + // Community Pool + component.governance.v1alpha1.CommunityPoolSpend community_pool_spend = 50; + component.governance.v1alpha1.CommunityPoolOutput community_pool_output = 51; + component.governance.v1alpha1.CommunityPoolDeposit community_pool_deposit = 52; // TODO: we have no way to recover the opening of the undelegate_claim's // balance commitment, and can only infer the value from looking at the rest @@ -274,10 +274,10 @@ message ActionPlan { component.stake.v1alpha1.Undelegate undelegate = 41; component.stake.v1alpha1.UndelegateClaimPlan undelegate_claim = 42; - // DAO - component.governance.v1alpha1.DaoSpend dao_spend = 50; - component.governance.v1alpha1.DaoOutput dao_output = 51; - component.governance.v1alpha1.DaoDeposit dao_deposit = 52; + // Community Pool + component.governance.v1alpha1.CommunityPoolSpend community_pool_spend = 50; + component.governance.v1alpha1.CommunityPoolOutput community_pool_output = 51; + component.governance.v1alpha1.CommunityPoolDeposit community_pool_deposit = 52; } } diff --git a/tools/parameter-setup/Cargo.toml b/tools/parameter-setup/Cargo.toml index a171161f3e..111c48e07e 100644 --- a/tools/parameter-setup/Cargo.toml +++ b/tools/parameter-setup/Cargo.toml @@ -6,12 +6,20 @@ publish = false [dependencies] penumbra-proof-params = { path = "../../crates/crypto/proof-params" } -penumbra-proof-setup = { path = "../../crates/crypto/proof-setup", features = ["parallel"] } +penumbra-proof-setup = { path = "../../crates/crypto/proof-setup", features = [ + "parallel", +] } penumbra-dex = { path = "../../crates/core/component/dex/" } -penumbra-dao = { path = "../../crates/core/component/dao/", features = ["component"] } +penumbra-community-pool = { path = "../../crates/core/component/community-pool/", features = [ + "component", +] } penumbra-governance = { path = "../../crates/core/component/governance/" } -penumbra-shielded-pool = { path = "../../crates/core/component/shielded-pool/", features = ["parallel"] } -penumbra-stake = { path = "../../crates/core/component/stake/", features = ["component"] } +penumbra-shielded-pool = { path = "../../crates/core/component/shielded-pool/", features = [ + "parallel", +] } +penumbra-stake = { path = "../../crates/core/component/stake/", features = [ + "component", +] } ark-groth16 = "0.4" ark-serialize = "0.4" decaf377 = { version = "0.5", features = ["r1cs"] } diff --git a/tools/proto-compiler/src/main.rs b/tools/proto-compiler/src/main.rs index 442b0e5ef0..4c2289ce5c 100644 --- a/tools/proto-compiler/src/main.rs +++ b/tools/proto-compiler/src/main.rs @@ -92,7 +92,7 @@ fn main() -> anyhow::Result<()> { "../../proto/penumbra/penumbra/core/effecthash/v1alpha1/effecthash.proto", "../../proto/penumbra/penumbra/core/component/chain/v1alpha1/chain.proto", "../../proto/penumbra/penumbra/core/component/compact_block/v1alpha1/compact_block.proto", - "../../proto/penumbra/penumbra/core/component/dao/v1alpha1/dao.proto", + "../../proto/penumbra/penumbra/core/component/community_pool/v1alpha1/community_pool.proto", "../../proto/penumbra/penumbra/core/component/dex/v1alpha1/dex.proto", "../../proto/penumbra/penumbra/core/component/distributions/v1alpha1/distributions.proto", "../../proto/penumbra/penumbra/core/component/fee/v1alpha1/fee.proto",